test_routing.py (1243:eef4e1868bef) test_routing.py (1249:b7cb7b34241e)
1import unittest
2from unit.applications.proto import TestApplicationProto
3
4
5class TestRouting(TestApplicationProto):
6 prerequisites = {'modules': ['python']}
7
8 def setUp(self):

--- 887 unchanged lines hidden (view full) ---

896 )
897 self.assertEqual(self.get()['status'], 404, 'match host empty 3')
898
899 def test_routes_match_uri_positive(self):
900 self.assertIn(
901 'success',
902 self.route(
903 {
1import unittest
2from unit.applications.proto import TestApplicationProto
3
4
5class TestRouting(TestApplicationProto):
6 prerequisites = {'modules': ['python']}
7
8 def setUp(self):

--- 887 unchanged lines hidden (view full) ---

896 )
897 self.assertEqual(self.get()['status'], 404, 'match host empty 3')
898
899 def test_routes_match_uri_positive(self):
900 self.assertIn(
901 'success',
902 self.route(
903 {
904 "match": {"uri": "/"},
904 "match": {"uri": ["/blah", "/slash/"]},
905 "action": {"pass": "applications/empty"},
906 }
907 ),
908 'match uri positive configure',
909 )
910
905 "action": {"pass": "applications/empty"},
906 }
907 ),
908 'match uri positive configure',
909 )
910
911 self.assertEqual(self.get()['status'], 200, 'match uri positive')
911 self.assertEqual(self.get()['status'], 404, 'match uri positive')
912 self.assertEqual(
912 self.assertEqual(
913 self.get(url='/blah')['status'], 404, 'match uri positive blah'
913 self.get(url='/blah')['status'], 200, 'match uri positive blah'
914 )
915 self.assertEqual(
914 )
915 self.assertEqual(
916 self.get(url='/#blah')['status'], 200, 'match uri positive #blah'
916 self.get(url='/blah#foo')['status'],
917 200,
918 'match uri positive #foo',
917 )
918 self.assertEqual(
919 )
920 self.assertEqual(
919 self.get(url='/?var')['status'], 200, 'match uri params'
921 self.get(url='/blah?var')['status'], 200, 'match uri args'
920 )
921 self.assertEqual(
922 )
923 self.assertEqual(
922 self.get(url='//')['status'], 200, 'match uri adjacent slashes'
924 self.get(url='//blah')['status'], 200, 'match uri adjacent slashes'
923 )
924 self.assertEqual(
925 )
926 self.assertEqual(
925 self.get(url='/blah/../')['status'], 200, 'match uri relative path'
927 self.get(url='/slash/foo/../')['status'],
928 200,
929 'match uri relative path',
926 )
927 self.assertEqual(
930 )
931 self.assertEqual(
928 self.get(url='/./')['status'], 200, 'match uri relative path'
932 self.get(url='/slash/./')['status'],
933 200,
934 'match uri relative path 2',
929 )
935 )
936 self.assertEqual(
937 self.get(url='/slash//.//')['status'],
938 200,
939 'match uri adjacent slashes 2',
940 )
941 self.assertEqual(
942 self.get(url='/%')['status'], 400, 'match uri percent'
943 )
944 self.assertEqual(
945 self.get(url='/%1')['status'], 400, 'match uri percent digit'
946 )
947 self.assertEqual(
948 self.get(url='/%A')['status'], 400, 'match uri percent letter'
949 )
950 self.assertEqual(
951 self.get(url='/slash/.?args')['status'], 200, 'match uri dot args'
952 )
953 self.assertEqual(
954 self.get(url='/slash/.#frag')['status'], 200, 'match uri dot frag'
955 )
956 self.assertEqual(
957 self.get(url='/slash/foo/..?args')['status'],
958 200,
959 'match uri dot dot args',
960 )
961 self.assertEqual(
962 self.get(url='/slash/foo/..#frag')['status'],
963 200,
964 'match uri dot dot frag',
965 )
966 self.assertEqual(
967 self.get(url='/slash/.')['status'], 200, 'match uri trailing dot'
968 )
969 self.assertEqual(
970 self.get(url='/slash/foo/..')['status'],
971 200,
972 'match uri trailing dot dot',
973 )
930
931 def test_routes_match_uri_case_sensitive(self):
932 self.assertIn(
933 'success',
934 self.route(
935 {
936 "match": {"uri": "/BLAH"},
937 "action": {"pass": "applications/empty"},

--- 1806 unchanged lines hidden ---
974
975 def test_routes_match_uri_case_sensitive(self):
976 self.assertIn(
977 'success',
978 self.route(
979 {
980 "match": {"uri": "/BLAH"},
981 "action": {"pass": "applications/empty"},

--- 1806 unchanged lines hidden ---