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