unit/test/test_python_environment.py
Tiago Natel 19b974674c Tests: fixed tests to run as root.
- The mode of testdir was changed to allow reading from other users/groups.
- The java multipart test now uploads the file into an app writable dir.
- The build directory was made readable for other users.
- The python environment test now uses the HOME env var instead of PWD
  because the latter is not set by the root shell (/bin/sh) by default.
- The node `node_modules` directory now is copied into the `testdir` instead
  of using symlinks.
2019-11-09 20:14:52 +00:00

179 lines
4.6 KiB
Python

from unit.applications.lang.python import TestApplicationPython
class TestPythonEnvironment(TestApplicationPython):
prerequisites = {'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')
home_default = self.get(
headers={
'Host': 'localhost',
'X-Variables': 'HOME',
'Connection': 'close',
}
)['body']
self.assertGreater(len(home_default), 1, 'get default')
self.conf({"HOME": "/"}, 'applications/environment/environment')
self.assertEqual(
self.get(
headers={
'Host': 'localhost',
'X-Variables': 'HOME',
'Connection': 'close',
}
)['body'],
'/,',
'replace default',
)
self.conf({}, 'applications/environment/environment')
self.assertEqual(
self.get(
headers={
'Host': 'localhost',
'X-Variables': 'HOME',
'Connection': 'close',
}
)['body'],
home_default,
'restore default',
)
if __name__ == '__main__':
TestPythonEnvironment.main()