diff options
| author | Éric Araujo <merwok@netwok.org> | 2020-04-23 18:11:55 -0400 |
|---|---|---|
| committer | Éric Araujo <merwok@netwok.org> | 2020-05-04 17:43:39 -0400 |
| commit | 254efda1456a707afd36ec8ee505dc1bb76f8a77 (patch) | |
| tree | 8558e494b4325b1a324c49977c4b9341dedeffc2 /tests/test_config/test_predicates.py | |
| parent | 7dd166b158594dec3e222bf041cdfd806f633f88 (diff) | |
| download | pyramid-254efda1456a707afd36ec8ee505dc1bb76f8a77.tar.gz pyramid-254efda1456a707afd36ec8ee505dc1bb76f8a77.tar.bz2 pyramid-254efda1456a707afd36ec8ee505dc1bb76f8a77.zip | |
support multiple values for header predicate
Diffstat (limited to 'tests/test_config/test_predicates.py')
| -rw-r--r-- | tests/test_config/test_predicates.py | 69 |
1 files changed, 65 insertions, 4 deletions
diff --git a/tests/test_config/test_predicates.py b/tests/test_config/test_predicates.py index 31e7a38e7..c0185340f 100644 --- a/tests/test_config/test_predicates.py +++ b/tests/test_config/test_predicates.py @@ -315,14 +315,14 @@ class TestPredicateList(unittest.TestCase): def test_predicate_text_is_correct_when_multiple(self): _, predicates, _ = self._callFUT( request_method=('one', 'two'), - request_param=('param1', 'param2=on'), - header='header:text/*', + request_param=('par2=on', 'par1'), + header=('header2', 'header1:val.*'), accept=('accept1', 'accept2'), match_param=('foo=bar', 'baz=bim'), ) self.assertEqual(predicates[0].text(), "request_method = one,two") - self.assertEqual(predicates[1].text(), 'request_param param1,param2=on') - self.assertEqual(predicates[2].text(), 'header header=text/*') + self.assertEqual(predicates[1].text(), 'request_param par1,par2=on') + self.assertEqual(predicates[2].text(), 'header header1=val.*, header2') self.assertEqual(predicates[3].text(), 'accept = accept1, accept2') self.assertEqual(predicates[4].text(), "match_param baz=bim,foo=bar") @@ -368,6 +368,66 @@ class TestPredicateList(unittest.TestCase): hash2, _, __ = self._callFUT(request_method='GET') self.assertEqual(hash1, hash2) + def test_header_simple(self): + _, predicates, _ = self._callFUT(header='foo') + request = DummyRequest() + request.headers = {'foo': 'bars', 'baz': 'foo'} + self.assertTrue(predicates[0](Dummy(), request)) + + def test_header_simple_fails(self): + _, predicates, _ = self._callFUT(header='content-length') + request = DummyRequest() + request.headers = {'foo': 'bars', 'baz': 'foo'} + self.assertFalse(predicates[0](Dummy(), request)) + + def test_header_with_value(self): + _, predicates, _ = self._callFUT(header='foo:bar') + request = DummyRequest() + request.headers = {'foo': 'bars', 'baz': 'foo'} + self.assertTrue(predicates[0](Dummy(), request)) + + def test_header_with_value_fails(self): + _, predicates, _ = self._callFUT(header='foo:bar') + request = DummyRequest() + request.headers = {'foo': 'nobar', 'baz': 'foo'} + self.assertFalse(predicates[0](Dummy(), request)) + + def test_header_multiple(self): + _, predicates, _ = self._callFUT(header=('foo', 'content-length')) + request = DummyRequest() + request.headers = {'foo': 'bars', 'content-length': '42'} + self.assertTrue(predicates[0](Dummy(), request)) + + def test_header_multiple_fails(self): + _, predicates, _ = self._callFUT(header=('foo', 'content-encoding')) + request = DummyRequest() + request.headers = {'foo': 'bars', 'content-length': '42'} + self.assertFalse(predicates[0](Dummy(), request)) + + def test_header_multiple_with_values(self): + _, predicates, _ = self._callFUT(header=('foo:bar', 'spam:egg')) + request = DummyRequest() + request.headers = {'foo': 'bars', 'spam': 'eggs'} + self.assertTrue(predicates[0](Dummy(), request)) + + def test_header_multiple_with_values_fails(self): + _, predicates, _ = self._callFUT(header=('foo:bar', 'spam:egg$')) + request = DummyRequest() + request.headers = {'foo': 'bars', 'spam': 'eggs'} + self.assertFalse(predicates[0](Dummy(), request)) + + def test_header_multiple_mixed(self): + _, predicates, _ = self._callFUT(header=('foo:bar', 'spam')) + request = DummyRequest() + request.headers = {'foo': 'bars', 'spam': 'ham'} + self.assertTrue(predicates[0](Dummy(), request)) + + def test_header_multiple_mixed_fails(self): + _, predicates, _ = self._callFUT(header=('foo:bar', 'spam')) + request = DummyRequest() + request.headers = {'foo': 'nobar', 'spamme': 'ham'} + self.assertFalse(predicates[0](Dummy(), request)) + def test_unknown_predicate(self): from pyramid.exceptions import ConfigurationError @@ -486,6 +546,7 @@ class DummyRequest: environ = {} self.environ = environ self.params = {} + self.headers = {} self.cookies = {} |
