51854975834e0267bb6bec637a8a484bf7a76c47
[debianmemberportfolio.git] / debianmemberportfolio / tests / __init__.py
1 # -*- python -*-
2 # -*- coding: utf-8 -*-
3 #
4 # Debian Member Portfolio Service tests package
5 # Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
6 #
7 # This file is part of Debian Member Portfolio Service.
8 #
9 # Debian Member Portfolio Service is free software: you can redistribute it
10 # and/or modify it under the terms of the GNU Affero General Public License as
11 # published by the Free Software Foundation, either version 3 of the License,
12 # or (at your option) any later version.
13 #
14 # Debian Member Portfolio Service is distributed in the hope that it will be
15 # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU Affero General Public License
20 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
21 #
22 """Pylons application test package
23
24 When the test runner finds and executes tests within this directory,
25 this file will be loaded to setup the test environment.
26
27 It registers the root directory of the project in sys.path and
28 pkg_resources, in case the project hasn't been installed with
29 setuptools. It also initializes the application via websetup (paster
30 setup-app) with the project's test.ini configuration file.
31 """
32 from unittest import TestCase
33
34 from paste.script.appinstall import SetupCommand
35 from pylons import url
36 from routes.util import URLGenerator
37 from webtest import TestApp
38
39 import pylons.test
40
41 __all__ = ['environ', 'url', 'TestController']
42
43 # Invoke websetup with the current config file
44 SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
45
46 environ = {}
47
48
49 class TestController(TestCase):
50
51     def __init__(self, *args, **kwargs):
52         wsgiapp = pylons.test.pylonsapp
53         config = wsgiapp.config
54         self.app = TestApp(wsgiapp)
55         url._push_object(URLGenerator(config['routes.map'], environ))
56         TestCase.__init__(self, *args, **kwargs)