diff options
| author | Michael Merickel <michael@merickel.org> | 2012-10-13 17:11:26 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2012-10-13 17:15:06 -0500 |
| commit | b1d2a373d74a433b247ea2f1186f1e314244490c (patch) | |
| tree | b46ff5967445ca0b630fa629b80efdce8b1b5c94 | |
| parent | 4b8cf2d4e9711189e800dcb470a29773e4269f92 (diff) | |
| download | pyramid-b1d2a373d74a433b247ea2f1186f1e314244490c.tar.gz pyramid-b1d2a373d74a433b247ea2f1186f1e314244490c.tar.bz2 pyramid-b1d2a373d74a433b247ea2f1186f1e314244490c.zip | |
added tests for header predicate and standardized the text property
| -rw-r--r-- | pyramid/config/predicates.py | 6 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_predicates.py | 64 |
2 files changed, 67 insertions, 3 deletions
diff --git a/pyramid/config/predicates.py b/pyramid/config/predicates.py index 08299e4bd..2b2b57bc3 100644 --- a/pyramid/config/predicates.py +++ b/pyramid/config/predicates.py @@ -97,15 +97,15 @@ class HeaderPredicate(object): name = val v = None if ':' in name: - name, v = name.split(':', 1) + name, val_str = name.split(':', 1) try: - v = re.compile(v) + v = re.compile(val_str) except re.error as why: raise ConfigurationError(why.args[0]) if v is None: self._text = 'header %s' % (name,) else: - self._text = 'header %s = %s' % (name, v) + self._text = 'header %s=%s' % (name, val_str) self.name = name self.val = v diff --git a/pyramid/tests/test_config/test_predicates.py b/pyramid/tests/test_config/test_predicates.py index 3be3ef156..2f0ef4132 100644 --- a/pyramid/tests/test_config/test_predicates.py +++ b/pyramid/tests/test_config/test_predicates.py @@ -317,6 +317,70 @@ class Test_CheckCSRFTokenPredicate(unittest.TestCase): result = inst(None, request) self.assertEqual(result, True) +class TestHeaderPredicate(unittest.TestCase): + def _makeOne(self, val): + from pyramid.config.predicates import HeaderPredicate + return HeaderPredicate(val, None) + + def test___call___true_exists(self): + inst = self._makeOne('abc') + request = Dummy() + request.headers = {'abc':1} + result = inst(None, request) + self.assertTrue(result) + + def test___call___true_withval(self): + inst = self._makeOne('abc:1') + request = Dummy() + request.headers = {'abc':'1'} + result = inst(None, request) + self.assertTrue(result) + + def test___call___true_withregex(self): + inst = self._makeOne(r'abc:\d+') + request = Dummy() + request.headers = {'abc':'1'} + result = inst(None, request) + self.assertTrue(result) + + def test___call___false_withregex(self): + inst = self._makeOne(r'abc:\d+') + request = Dummy() + request.headers = {'abc':'a'} + result = inst(None, request) + self.assertFalse(result) + + def test___call___false(self): + inst = self._makeOne('abc') + request = Dummy() + request.headers = {} + result = inst(None, request) + self.assertFalse(result) + + def test_text_exists(self): + inst = self._makeOne('abc') + self.assertEqual(inst.text(), 'header abc') + + def test_text_withval(self): + inst = self._makeOne('abc:1') + self.assertEqual(inst.text(), 'header abc=1') + + def test_text_withregex(self): + inst = self._makeOne(r'abc:\d+') + self.assertEqual(inst.text(), r'header abc=\d+') + + def test_phash_exists(self): + inst = self._makeOne('abc') + self.assertEqual(inst.phash(), 'header abc') + + def test_phash_withval(self): + inst = self._makeOne('abc:1') + self.assertEqual(inst.phash(), "header abc=1") + + def test_phash_withregex(self): + inst = self._makeOne(r'abc:\d+') + self.assertEqual(inst.phash(), r'header abc=\d+') + class predicate(object): def __repr__(self): return 'predicate' |
