Skip to content

Commit

Permalink
added tests for header predicate and standardized the text property
Browse files Browse the repository at this point in the history
  • Loading branch information
mmerickel committed Oct 13, 2012
1 parent 4b8cf2d commit b1d2a37
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 3 deletions.
6 changes: 3 additions & 3 deletions pyramid/config/predicates.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -97,15 +97,15 @@ def __init__(self, val, config):
name = val name = val
v = None v = None
if ':' in name: if ':' in name:
name, v = name.split(':', 1) name, val_str = name.split(':', 1)
try: try:
v = re.compile(v) v = re.compile(val_str)
except re.error as why: except re.error as why:
raise ConfigurationError(why.args[0]) raise ConfigurationError(why.args[0])
if v is None: if v is None:
self._text = 'header %s' % (name,) self._text = 'header %s' % (name,)
else: else:
self._text = 'header %s = %s' % (name, v) self._text = 'header %s=%s' % (name, val_str)
self.name = name self.name = name
self.val = v self.val = v


Expand Down
64 changes: 64 additions & 0 deletions pyramid/tests/test_config/test_predicates.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -317,6 +317,70 @@ def test_it_call_val_False(self):
result = inst(None, request) result = inst(None, request)
self.assertEqual(result, True) 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): class predicate(object):
def __repr__(self): def __repr__(self):
return 'predicate' return 'predicate'
Expand Down

0 comments on commit b1d2a37

Please sign in to comment.