Skip to content

Commit

Permalink
add tag validation tests
Browse files Browse the repository at this point in the history
  • Loading branch information
garyp committed May 17, 2011
1 parent 6acc6e2 commit dcbb4fb
Showing 1 changed file with 34 additions and 6 deletions.
40 changes: 34 additions & 6 deletions sifter/t/test_validators.py
Expand Up @@ -13,25 +13,53 @@ def __init__(self, arguments=None, tests=None):

class TestArgValidator(unittest.TestCase):

def setUp(self):
self.mock_rule = MockRule([ sifter.grammar.Tag('IS'), 13, ])

def test_too_many_args(self):
mock_rule = MockRule([ sifter.grammar.Tag('IS'), 13, ])
self.assertRaises(
sifter.grammar.RuleSyntaxError,
self.mock_rule.validate_arguments,
mock_rule.validate_arguments,
)

def test_not_enough_args(self):
mock_rule = MockRule([ 13, ])
self.assertRaises(
sifter.grammar.RuleSyntaxError,
self.mock_rule.validate_arguments,
{ 'match_type' : sifter.validators.MatchType(), },
mock_rule.validate_arguments,
[
sifter.validators.Number(),
sifter.validators.StringList(),
],
)

def test_allowed_tag(self):
mock_rule = MockRule([ sifter.grammar.Tag('IS'), ])
tag_args, pos_args = mock_rule.validate_arguments(
{ 'mock_tag' : sifter.validators.Tag(['MOCK', 'IS',]), },
)
self.assertTrue('mock_tag' in tag_args)
self.assertEqual(len(pos_args), 0)
# test the case for a non-list single tag name
tag_args, pos_args = mock_rule.validate_arguments(
{ 'mock_tag' : sifter.validators.Tag('IS'), },
)
self.assertTrue('mock_tag' in tag_args)
self.assertEqual(len(pos_args), 0)

def test_not_allowed_tag(self):
mock_rule = MockRule([ sifter.grammar.Tag('IS'), ])
self.assertRaises(
sifter.grammar.RuleSyntaxError,
mock_rule.validate_arguments,
{ 'mock_tag' : sifter.validators.Tag(['MOCK', 'FOO',]), },
)
# test the case for a non-list single tag name. test when the tag is a
# substring of the allowed tag.
self.assertRaises(
sifter.grammar.RuleSyntaxError,
mock_rule.validate_arguments,
{ 'mock_tag' : sifter.validators.Tag('ISFOO'), },
)


if __name__ == '__main__':
unittest.main()

0 comments on commit dcbb4fb

Please sign in to comment.