summaryrefslogtreecommitdiffhomepage
path: root/test/test_basic.py
diff options
context:
space:
mode:
authorAndrey Zelenkov <zelenkov@nginx.com>2017-11-21 20:51:21 +0300
committerAndrey Zelenkov <zelenkov@nginx.com>2017-11-21 20:51:21 +0300
commit863377441bdc70885d1bad80bbbd9c6a9a3646a7 (patch)
tree45ef80dbb99f3eef08bd5b41a8559f3d548a830f /test/test_basic.py
parent78a77c3e38593a5dd1ba0970d036ed5f5100f88d (diff)
downloadunit-863377441bdc70885d1bad80bbbd9c6a9a3646a7.tar.gz
unit-863377441bdc70885d1bad80bbbd9c6a9a3646a7.tar.bz2
Tests: added basic infrastructure.
Diffstat (limited to 'test/test_basic.py')
-rw-r--r--test/test_basic.py163
1 files changed, 163 insertions, 0 deletions
diff --git a/test/test_basic.py b/test/test_basic.py
new file mode 100644
index 00000000..6be3801b
--- /dev/null
+++ b/test/test_basic.py
@@ -0,0 +1,163 @@
+import unit
+import unittest
+
+class TestUnitBasic(unit.TestUnitControl):
+
+ def test_get(self):
+ resp = self.get()
+ self.assertEqual(resp, {'listeners': {}, 'applications': {}}, 'empty')
+ self.assertEqual(self.get('/listeners'), {}, 'empty listeners prefix')
+ self.assertEqual(self.get('/applications'), {},
+ 'empty applications prefix')
+
+ self.put('/applications', """
+ {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ }
+ }
+ """)
+
+ resp = self.get()
+
+ self.assertEqual(resp['listeners'], {}, 'python empty listeners')
+ self.assertEqual(resp['applications'],
+ {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ }
+ },
+ 'python applications')
+
+ self.assertEqual(self.get('/applications'),
+ {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module":"wsgi"
+ }
+ },
+ 'python applications prefix')
+
+ self.assertEqual(self.get('/applications/app'),
+ {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ },
+ 'python applications prefix 2')
+
+ self.assertEqual(self.get('/applications/app/type'), 'python',
+ 'python applications type')
+ self.assertEqual(self.get('/applications/app/workers'), 1,
+ 'python applications workers')
+
+ self.put('/listeners', '{"*:8080":{"application":"app"}}')
+
+ self.assertEqual(self.get()['listeners'],
+ {"*:8080":{"application":"app"}}, 'python listeners')
+ self.assertEqual(self.get('/listeners'),
+ {"*:8080":{"application":"app"}}, 'python listeners prefix')
+ self.assertEqual(self.get('/listeners/*:8080'),
+ {"application":"app"}, 'python listeners prefix 2')
+ self.assertEqual(self.get('/listeners/*:8080/application'), 'app',
+ 'python listeners application')
+
+ def test_put(self):
+ self.put('/', """
+ {
+ "listeners": {
+ "*:8080": {
+ "application": "app"
+ }
+ },
+ "applications": {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ }
+ }
+ }
+ """)
+
+ resp = self.get()
+
+ self.assertEqual(resp['listeners'], {"*:8080":{"application":"app"}},
+ 'put listeners')
+
+ self.assertEqual(resp['applications'],
+ {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ }
+ },
+ 'put applications')
+
+ self.put('/listeners', '{"*:8081":{"application":"app"}}')
+ self.assertEqual(self.get('/listeners'),
+ {"*:8081": {"application":"app"}}, 'put listeners prefix')
+
+ self.put('/listeners/*:8080', '{"application":"app"}')
+
+ self.assertEqual(self.get('/listeners'),
+ {
+ "*:8080": {
+ "application": "app"
+ },
+ "*:8081": {
+ "application": "app"
+ }
+ },
+ 'put listeners prefix 3')
+
+ self.put('/applications/app/workers', '30')
+ self.assertEqual(self.get('/applications/app/workers'), 30,
+ 'put applications workers')
+
+ self.put('/applications/app/path', '"/www"')
+ self.assertEqual(self.get('/applications/app/path'), '/www',
+ 'put applications path')
+
+ def test_delete(self):
+ self.put('/', """
+ {
+ "listeners": {
+ "*:8080": {
+ "application": "app"
+ }
+ },
+ "applications": {
+ "app": {
+ "type": "python",
+ "workers": 1,
+ "path": "/app",
+ "module": "wsgi"
+ }
+ }
+ }
+ """)
+
+ self.assertIn('error', self.delete('/applications/app'),
+ 'delete app before listener')
+ self.assertIn('success', self.delete('/listeners/*:8080'),
+ 'delete listener')
+ self.assertIn('success', self.delete('/applications/app'),
+ 'delete app after listener')
+ self.assertIn('error', self.delete('/applications/app'),
+ 'delete app again')
+
+if __name__ == '__main__':
+ unittest.main()