xref: /unit/test/test_python_basic.py (revision 1119)
11019Szelenkov@nginx.comfrom unit.control import TestControl
2484Szelenkov@nginx.com
31017Szelenkov@nginx.com
41019Szelenkov@nginx.comclass TestPythonBasic(TestControl):
51025Szelenkov@nginx.com    prerequisites = ['python']
6484Szelenkov@nginx.com
7504Szelenkov@nginx.com    conf_app = {
8504Szelenkov@nginx.com        "app": {
9504Szelenkov@nginx.com            "type": "python",
101017Szelenkov@nginx.com            "processes": {"spare": 0},
11504Szelenkov@nginx.com            "path": "/app",
121017Szelenkov@nginx.com            "module": "wsgi",
13495Szelenkov@nginx.com        }
14504Szelenkov@nginx.com    }
15484Szelenkov@nginx.com
16504Szelenkov@nginx.com    conf_basic = {
171041Svbart@nginx.com        "listeners": {"*:7080": {"pass": "applications/app"}},
181017Szelenkov@nginx.com        "applications": conf_app,
19504Szelenkov@nginx.com    }
20495Szelenkov@nginx.com
21495Szelenkov@nginx.com    def test_python_get_empty(self):
221017Szelenkov@nginx.com        self.assertEqual(
231017Szelenkov@nginx.com            self.conf_get(), {'listeners': {}, 'applications': {}}, 'empty'
241017Szelenkov@nginx.com        )
25495Szelenkov@nginx.com
26495Szelenkov@nginx.com    def test_python_get_prefix_listeners(self):
27760Szelenkov@nginx.com        self.assertEqual(self.conf_get('listeners'), {}, 'listeners prefix')
28495Szelenkov@nginx.com
29495Szelenkov@nginx.com    def test_python_get_prefix_applications(self):
301017Szelenkov@nginx.com        self.assertEqual(
311017Szelenkov@nginx.com            self.conf_get('applications'), {}, 'applications prefix'
321017Szelenkov@nginx.com        )
33495Szelenkov@nginx.com
34495Szelenkov@nginx.com    def test_python_get_applications(self):
35760Szelenkov@nginx.com        self.conf(self.conf_app, 'applications')
36484Szelenkov@nginx.com
37504Szelenkov@nginx.com        conf = self.conf_get()
38484Szelenkov@nginx.com
39504Szelenkov@nginx.com        self.assertEqual(conf['listeners'], {}, 'listeners')
401017Szelenkov@nginx.com        self.assertEqual(
411017Szelenkov@nginx.com            conf['applications'],
42484Szelenkov@nginx.com            {
43484Szelenkov@nginx.com                "app": {
44484Szelenkov@nginx.com                    "type": "python",
451017Szelenkov@nginx.com                    "processes": {"spare": 0},
46484Szelenkov@nginx.com                    "path": "/app",
471017Szelenkov@nginx.com                    "module": "wsgi",
48484Szelenkov@nginx.com                }
49504Szelenkov@nginx.com            },
501017Szelenkov@nginx.com            'applications',
511017Szelenkov@nginx.com        )
52495Szelenkov@nginx.com
53495Szelenkov@nginx.com    def test_python_get_applications_prefix(self):
54760Szelenkov@nginx.com        self.conf(self.conf_app, 'applications')
55484Szelenkov@nginx.com
561017Szelenkov@nginx.com        self.assertEqual(
571017Szelenkov@nginx.com            self.conf_get('applications'),
58484Szelenkov@nginx.com            {
59484Szelenkov@nginx.com                "app": {
60484Szelenkov@nginx.com                    "type": "python",
611017Szelenkov@nginx.com                    "processes": {"spare": 0},
62484Szelenkov@nginx.com                    "path": "/app",
631017Szelenkov@nginx.com                    "module": "wsgi",
64484Szelenkov@nginx.com                }
65484Szelenkov@nginx.com            },
661017Szelenkov@nginx.com            'applications prefix',
671017Szelenkov@nginx.com        )
68495Szelenkov@nginx.com
69495Szelenkov@nginx.com    def test_python_get_applications_prefix_2(self):
70760Szelenkov@nginx.com        self.conf(self.conf_app, 'applications')
71484Szelenkov@nginx.com
721017Szelenkov@nginx.com        self.assertEqual(
731017Szelenkov@nginx.com            self.conf_get('applications/app'),
74484Szelenkov@nginx.com            {
75484Szelenkov@nginx.com                "type": "python",
761017Szelenkov@nginx.com                "processes": {"spare": 0},
77484Szelenkov@nginx.com                "path": "/app",
781017Szelenkov@nginx.com                "module": "wsgi",
79484Szelenkov@nginx.com            },
801017Szelenkov@nginx.com            'applications prefix 2',
811017Szelenkov@nginx.com        )
82495Szelenkov@nginx.com
83495Szelenkov@nginx.com    def test_python_get_applications_prefix_3(self):
84760Szelenkov@nginx.com        self.conf(self.conf_app, 'applications')
85484Szelenkov@nginx.com
861017Szelenkov@nginx.com        self.assertEqual(
871017Szelenkov@nginx.com            self.conf_get('applications/app/type'), 'python', 'type'
881017Szelenkov@nginx.com        )
891017Szelenkov@nginx.com        self.assertEqual(
901017Szelenkov@nginx.com            self.conf_get('applications/app/processes/spare'), 0, 'spare'
911017Szelenkov@nginx.com        )
92484Szelenkov@nginx.com
93495Szelenkov@nginx.com    def test_python_get_listeners(self):
94504Szelenkov@nginx.com        self.conf(self.conf_basic)
95484Szelenkov@nginx.com
961017Szelenkov@nginx.com        self.assertEqual(
971017Szelenkov@nginx.com            self.conf_get()['listeners'],
981041Svbart@nginx.com            {"*:7080": {"pass": "applications/app"}},
991017Szelenkov@nginx.com            'listeners',
1001017Szelenkov@nginx.com        )
101495Szelenkov@nginx.com
102495Szelenkov@nginx.com    def test_python_get_listeners_prefix(self):
103504Szelenkov@nginx.com        self.conf(self.conf_basic)
104495Szelenkov@nginx.com
1051017Szelenkov@nginx.com        self.assertEqual(
1061017Szelenkov@nginx.com            self.conf_get('listeners'),
1071041Svbart@nginx.com            {"*:7080": {"pass": "applications/app"}},
1081017Szelenkov@nginx.com            'listeners prefix',
1091017Szelenkov@nginx.com        )
110495Szelenkov@nginx.com
111495Szelenkov@nginx.com    def test_python_get_listeners_prefix_2(self):
112504Szelenkov@nginx.com        self.conf(self.conf_basic)
113484Szelenkov@nginx.com
1141017Szelenkov@nginx.com        self.assertEqual(
1151017Szelenkov@nginx.com            self.conf_get('listeners/*:7080'),
1161041Svbart@nginx.com            {"pass": "applications/app"},
1171017Szelenkov@nginx.com            'listeners prefix 2',
1181017Szelenkov@nginx.com        )
119484Szelenkov@nginx.com
120495Szelenkov@nginx.com    def test_python_change_listener(self):
121504Szelenkov@nginx.com        self.conf(self.conf_basic)
1221041Svbart@nginx.com        self.conf({"*:7081": {"pass": "applications/app"}}, 'listeners')
123484Szelenkov@nginx.com
1241017Szelenkov@nginx.com        self.assertEqual(
1251017Szelenkov@nginx.com            self.conf_get('listeners'),
1261041Svbart@nginx.com            {"*:7081": {"pass": "applications/app"}},
1271017Szelenkov@nginx.com            'change listener',
1281017Szelenkov@nginx.com        )
129484Szelenkov@nginx.com
130495Szelenkov@nginx.com    def test_python_add_listener(self):
131504Szelenkov@nginx.com        self.conf(self.conf_basic)
1321041Svbart@nginx.com        self.conf({"pass": "applications/app"}, 'listeners/*:7082')
133484Szelenkov@nginx.com
1341017Szelenkov@nginx.com        self.assertEqual(
1351017Szelenkov@nginx.com            self.conf_get('listeners'),
136484Szelenkov@nginx.com            {
1371041Svbart@nginx.com                "*:7080": {"pass": "applications/app"},
1381041Svbart@nginx.com                "*:7082": {"pass": "applications/app"},
139484Szelenkov@nginx.com            },
1401017Szelenkov@nginx.com            'add listener',
1411017Szelenkov@nginx.com        )
142495Szelenkov@nginx.com
143495Szelenkov@nginx.com    def test_python_change_application(self):
144504Szelenkov@nginx.com        self.conf(self.conf_basic)
145484Szelenkov@nginx.com
146760Szelenkov@nginx.com        self.conf('30', 'applications/app/processes/max')
1471017Szelenkov@nginx.com        self.assertEqual(
1481017Szelenkov@nginx.com            self.conf_get('applications/app/processes/max'),
1491017Szelenkov@nginx.com            30,
1501017Szelenkov@nginx.com            'change application max',
1511017Szelenkov@nginx.com        )
152484Szelenkov@nginx.com
153760Szelenkov@nginx.com        self.conf('"/www"', 'applications/app/path')
1541017Szelenkov@nginx.com        self.assertEqual(
1551017Szelenkov@nginx.com            self.conf_get('applications/app/path'),
1561017Szelenkov@nginx.com            '/www',
1571017Szelenkov@nginx.com            'change application path',
1581017Szelenkov@nginx.com        )
159484Szelenkov@nginx.com
160484Szelenkov@nginx.com    def test_python_delete(self):
161504Szelenkov@nginx.com        self.conf(self.conf_basic)
162484Szelenkov@nginx.com
1631017Szelenkov@nginx.com        self.assertIn(
1641017Szelenkov@nginx.com            'error',
1651017Szelenkov@nginx.com            self.conf_delete('applications/app'),
1661017Szelenkov@nginx.com            'delete app before listener',
1671017Szelenkov@nginx.com        )
1681017Szelenkov@nginx.com        self.assertIn(
1691017Szelenkov@nginx.com            'success', self.conf_delete('listeners/*:7080'), 'delete listener'
1701017Szelenkov@nginx.com        )
1711017Szelenkov@nginx.com        self.assertIn(
1721017Szelenkov@nginx.com            'success',
1731017Szelenkov@nginx.com            self.conf_delete('applications/app'),
1741017Szelenkov@nginx.com            'delete app after listener',
1751017Szelenkov@nginx.com        )
1761017Szelenkov@nginx.com        self.assertIn(
1771017Szelenkov@nginx.com            'error', self.conf_delete('applications/app'), 'delete app again'
1781017Szelenkov@nginx.com        )
1791017Szelenkov@nginx.com
180*1119Szelenkov@nginx.com    def test_python_delete_blocks(self):
181*1119Szelenkov@nginx.com        self.conf(self.conf_basic)
182*1119Szelenkov@nginx.com
183*1119Szelenkov@nginx.com        self.assertIn(
184*1119Szelenkov@nginx.com            'success',
185*1119Szelenkov@nginx.com            self.conf_delete('listeners'),
186*1119Szelenkov@nginx.com            'listeners delete',
187*1119Szelenkov@nginx.com        )
188*1119Szelenkov@nginx.com
189*1119Szelenkov@nginx.com        self.assertIn(
190*1119Szelenkov@nginx.com            'success',
191*1119Szelenkov@nginx.com            self.conf_delete('applications'),
192*1119Szelenkov@nginx.com            'applications delete',
193*1119Szelenkov@nginx.com        )
194*1119Szelenkov@nginx.com
195*1119Szelenkov@nginx.com        self.assertIn(
196*1119Szelenkov@nginx.com            'success',
197*1119Szelenkov@nginx.com            self.conf(self.conf_app, 'applications'),
198*1119Szelenkov@nginx.com            'listeners restore',
199*1119Szelenkov@nginx.com        )
200*1119Szelenkov@nginx.com
201*1119Szelenkov@nginx.com        self.assertIn(
202*1119Szelenkov@nginx.com            'success',
203*1119Szelenkov@nginx.com            self.conf({"*:7080": {"pass": "applications/app"}}, 'listeners'),
204*1119Szelenkov@nginx.com            'applications restore',
205*1119Szelenkov@nginx.com        )
206*1119Szelenkov@nginx.com
207484Szelenkov@nginx.com
208484Szelenkov@nginx.comif __name__ == '__main__':
2091019Szelenkov@nginx.com    TestPythonBasic.main()
210