summaryrefslogtreecommitdiffhomepage
path: root/test/test_php_targets.py
diff options
context:
space:
mode:
authorAndrei Zeliankou <zelenkov@nginx.com>2020-05-15 04:21:25 +0100
committerAndrei Zeliankou <zelenkov@nginx.com>2020-05-15 04:21:25 +0100
commit82471c1dd33fc13a18a334113b2c220cc06f3d5b (patch)
tree8a2af0ab16a1a932b93e518e449545fe5e1d7604 /test/test_php_targets.py
parentea841400f543fa4139adca926fefdd8565c227d2 (diff)
downloadunit-82471c1dd33fc13a18a334113b2c220cc06f3d5b.tar.gz
unit-82471c1dd33fc13a18a334113b2c220cc06f3d5b.tar.bz2
Tests: added tests for "targets" option.
Diffstat (limited to 'test/test_php_targets.py')
-rw-r--r--test/test_php_targets.py129
1 files changed, 129 insertions, 0 deletions
diff --git a/test/test_php_targets.py b/test/test_php_targets.py
new file mode 100644
index 00000000..9c1ba2a6
--- /dev/null
+++ b/test/test_php_targets.py
@@ -0,0 +1,129 @@
+import unittest
+from unit.applications.lang.php import TestApplicationPHP
+
+class TestPHPTargets(TestApplicationPHP):
+ prerequisites = {'modules': {'php': 'any'}}
+
+ def test_php_application_targets(self):
+ self.assertIn(
+ 'success',
+ self.conf(
+ {
+ "listeners": {"*:7080": {"pass": "routes"}},
+ "routes": [
+ {
+ "match": {"uri": "/1"},
+ "action": {"pass": "applications/targets/1"},
+ },
+ {
+ "match": {"uri": "/2"},
+ "action": {"pass": "applications/targets/2"},
+ },
+ {"action": {"pass": "applications/targets/default"}},
+ ],
+ "applications": {
+ "targets": {
+ "type": "php",
+ "processes": {"spare": 0},
+ "targets": {
+ "1": {
+ "script": "1.php",
+ "root": self.current_dir + "/php/targets",
+ },
+ "2": {
+ "script": "2.php",
+ "root": self.current_dir
+ + "/php/targets/2",
+ },
+ "default": {
+ "index": "index.php",
+ "root": self.current_dir + "/php/targets",
+ },
+ },
+ }
+ },
+ }
+ ),
+ )
+
+ self.assertEqual(self.get(url='/1')['body'], '1')
+ self.assertEqual(self.get(url='/2')['body'], '2')
+ self.assertEqual(self.get(url='/blah')['status'], 503) # TODO 404
+ self.assertEqual(self.get(url='/')['body'], 'index')
+
+ self.assertIn(
+ 'success',
+ self.conf(
+ "\"1.php\"", 'applications/targets/targets/default/index'
+ ),
+ 'change targets index',
+ )
+ self.assertEqual(self.get(url='/')['body'], '1')
+
+ self.assertIn(
+ 'success',
+ self.conf_delete('applications/targets/targets/default/index'),
+ 'remove targets index',
+ )
+ self.assertEqual(self.get(url='/')['body'], 'index')
+
+ def test_php_application_targets_error(self):
+ self.assertIn(
+ 'success',
+ self.conf(
+ {
+ "listeners": {
+ "*:7080": {"pass": "applications/targets/default"}
+ },
+ "applications": {
+ "targets": {
+ "type": "php",
+ "processes": {"spare": 0},
+ "targets": {
+ "default": {
+ "index": "index.php",
+ "root": self.current_dir + "/php/targets",
+ },
+ },
+ }
+ },
+ }
+ ),
+ 'initial configuration',
+ )
+ self.assertEqual(self.get()['status'], 200)
+
+ self.assertIn(
+ 'error',
+ self.conf(
+ {"pass": "applications/targets/blah"}, 'listeners/*:7080'
+ ),
+ 'invalid targets pass',
+ )
+ self.assertIn(
+ 'error',
+ self.conf(
+ '"' + self.current_dir + '/php/targets\"',
+ 'applications/targets/root',
+ ),
+ 'invalid root',
+ )
+ self.assertIn(
+ 'error',
+ self.conf('"index.php"', 'applications/targets/index'),
+ 'invalid index',
+ )
+ self.assertIn(
+ 'error',
+ self.conf('"index.php"', 'applications/targets/script'),
+ 'invalid script',
+ )
+ self.assertIn(
+ 'error',
+ self.conf_delete('applications/targets/default/root'),
+ 'root remove',
+ )
+
+
+if __name__ == '__main__':
+ TestPHPTargets.main()