diff options
-rw-r--r-- | test/python/environment/wsgi.py | 13 | ||||
-rw-r--r-- | test/test_python_environment.py | 128 |
2 files changed, 141 insertions, 0 deletions
diff --git a/test/python/environment/wsgi.py b/test/python/environment/wsgi.py new file mode 100644 index 00000000..fa3a1d2b --- /dev/null +++ b/test/python/environment/wsgi.py @@ -0,0 +1,13 @@ +import os + +def application(env, start_response): + body = '' + vars = env.get('HTTP_X_VARIABLES').split(',') + + for var in vars: + if var in os.environ: + body += str(os.environ[var]) + ',' + + body = body.encode() + start_response('200', [('Content-Length', str(len(body)))]) + return body diff --git a/test/test_python_environment.py b/test/test_python_environment.py new file mode 100644 index 00000000..278f7952 --- /dev/null +++ b/test/test_python_environment.py @@ -0,0 +1,128 @@ +import unittest +import unit + +class TestUnitPythonEnvironment(unit.TestUnitApplicationPython): + + def setUpClass(): + unit.TestUnit().check_modules('python') + + def test_python_environment_name_null(self): + self.load('environment') + + self.assertIn('error', self.conf({ + "va\0r": "val1" + }, '/applications/environment/environment'), 'name null') + + def test_python_environment_name_equals(self): + self.load('environment') + + self.assertIn('error', self.conf({ + "var=": "val1" + }, '/applications/environment/environment'), 'name equals') + + def test_python_environment_value_null(self): + self.load('environment') + + self.assertIn('error', self.conf({ + "var": "\0val" + }, '/applications/environment/environment'), 'value null') + + def test_python_environment_update(self): + self.load('environment') + + self.conf({ + "var": "val1" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var', + 'Connection': 'close' + })['body'], 'val1,', 'set') + + self.conf({ + "var": "val2" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var', + 'Connection': 'close' + })['body'], 'val2,', 'update') + + def test_python_environment_replace(self): + self.load('environment') + + self.conf({ + "var1": "val1" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var1', + 'Connection': 'close' + })['body'], 'val1,', 'set') + + self.conf({ + "var2": "val2" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var1,var2', + 'Connection': 'close' + })['body'], 'val2,', 'replace') + + def test_python_environment_clear(self): + self.load('environment') + + self.conf({ + "var1": "val1", + "var2": "val2" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var1,var2', + 'Connection': 'close' + })['body'], 'val1,val2,', 'set') + + self.conf({}, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'var1,var2', + 'Connection': 'close' + })['body'], '', 'clear') + + def test_python_environment_replace_default(self): + self.load('environment') + + pwd_default = self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'PWD', + 'Connection': 'close' + })['body'] + + self.assertGreater(len(pwd_default), 1, 'get default') + + self.conf({ + "PWD": "new/pwd" + }, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'PWD', + 'Connection': 'close' + })['body'], 'new/pwd,', 'replace default') + + self.conf({}, '/applications/environment/environment') + + self.assertEqual(self.get(headers={ + 'Host': 'localhost', + 'X-Variables': 'PWD', + 'Connection': 'close' + })['body'], pwd_default, 'restore default') + +if __name__ == '__main__': + unittest.main() |