Mercurial > hg > expressionparser
annotate test.py @ 13:ec0e83ec329f
allow both kinds of strings
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Fri, 03 Jun 2011 11:15:40 -0700 |
| parents | 4b07bb71c218 |
| children | facdc089ffbc |
| rev | line source |
|---|---|
| 5 | 1 #!/usr/bin/env python |
| 2 | |
| 3 from expr import parse | |
| 4 import unittest | |
| 5 | |
| 6 class ExpressionParserUnittest(unittest.TestCase): | |
| 6 | 7 """test the expression parser""" |
| 5 | 8 |
| 9 def test_BasicValues(self): | |
| 10 self.assertEqual(1, parse("1")) | |
| 11 self.assertEqual(100, parse("100")) | |
| 12 self.assertEqual(True, parse("true")) | |
| 13 self.assertEqual(False, parse("false")) | |
| 14 self.assertEqual("", parse('""')) | |
| 15 self.assertEqual("foo bar", parse('"foo bar"')) | |
|
13
ec0e83ec329f
allow both kinds of strings
Jeff Hammel <jhammel@mozilla.com>
parents:
6
diff
changeset
|
16 self.assertEqual("foo bar", parse("'foo bar'")) |
| 5 | 17 self.assertEqual(1, parse("foo", foo=1)) |
| 18 self.assertEqual(True, parse("bar", bar=True)) | |
| 19 self.assertEqual("xyz", parse("abc123", abc123="xyz")) | |
| 20 | |
| 21 def test_Equality(self): | |
| 22 self.assertTrue(parse("true == true")) | |
| 23 self.assertTrue(parse("false == false")) | |
| 24 self.assertTrue(parse("false == false")) | |
| 25 self.assertTrue(parse("1 == 1")) | |
| 26 self.assertTrue(parse("100 == 100")) | |
| 27 self.assertTrue(parse('"some text" == "some text"')) | |
| 28 self.assertTrue(parse("true != false")) | |
| 29 self.assertTrue(parse("1 != 2")) | |
| 30 self.assertTrue(parse('"text" != "other text"')) | |
| 31 self.assertTrue(parse("foo == true", foo=True)) | |
| 32 self.assertTrue(parse("foo == 1", foo=1)) | |
| 33 self.assertTrue(parse('foo == "bar"', foo='bar')) | |
| 34 self.assertTrue(parse("foo == bar", foo=True, bar=True)) | |
| 35 self.assertTrue(parse("true == foo", foo=True)) | |
| 36 self.assertTrue(parse("foo != true", foo=False)) | |
| 37 self.assertTrue(parse("foo != 2", foo=1)) | |
| 38 self.assertTrue(parse('foo != "bar"', foo='abc')) | |
| 39 self.assertTrue(parse("foo != bar", foo=True, bar=False)) | |
| 40 self.assertTrue(parse("true != foo", foo=False)) | |
| 41 | |
| 42 def test_Conjunctions(self): | |
| 43 self.assertTrue(parse("true && true")) | |
| 44 self.assertTrue(parse("true || false")) | |
| 45 self.assertFalse(parse("false || false")) | |
| 46 self.assertFalse(parse("true && false")) | |
| 47 self.assertTrue(parse("true || false && false")) | |
| 48 | |
| 49 def test_Parens(self): | |
| 50 self.assertTrue(parse("(true)")) | |
| 51 self.assertEquals(10, parse("(10)")) | |
| 52 self.assertEquals('foo', parse('("foo")')) | |
| 53 self.assertEquals(1, parse("(foo)", foo=1)) | |
| 54 self.assertTrue(parse("(true == true)")) | |
| 55 self.assertTrue(parse("(true != false)")) | |
| 56 self.assertTrue(parse("(true && true)")) | |
| 57 self.assertTrue(parse("(true || false)")) | |
| 58 self.assertTrue(parse("(true && true || false)")) | |
| 59 self.assertFalse(parse("(true || false) && false")) | |
| 60 self.assertTrue(parse("(true || false) && true")) | |
| 61 self.assertTrue(parse("true && (true || false)")) | |
| 62 self.assertTrue(parse("true && (true || false)")) | |
| 63 | |
| 64 if __name__ == '__main__': | |
| 65 unittest.main() |
