diff options
author | Rafael H. Schloming <rhs@apache.org> | 2010-11-11 15:59:45 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2010-11-11 15:59:45 +0000 |
commit | a37b99ed25f36665b5e8604352e059720a25758d (patch) | |
tree | f2ea5754785bb4ca93abcf9cfb979d8d73354679 /python | |
parent | 72897efdcb587221bd8bec5af6ffa57092e8cab7 (diff) | |
download | qpid-python-a37b99ed25f36665b5e8604352e059720a25758d.tar.gz |
added address parser support for None
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1033975 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
-rw-r--r-- | python/qpid/messaging/address.py | 5 | ||||
-rw-r--r-- | python/qpid/tests/messaging/address.py | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/python/qpid/messaging/address.py b/python/qpid/messaging/address.py index bf494433e4..bcf45f6698 100644 --- a/python/qpid/messaging/address.py +++ b/python/qpid/messaging/address.py @@ -33,6 +33,7 @@ COMMA = l.define("COMMA", r",") NUMBER = l.define("NUMBER", r'[+-]?[0-9]*\.?[0-9]+') TRUE = l.define("TRUE", r'True') FALSE = l.define("FALSE", r'False') +NONE = l.define("NONE", r'None') ID = l.define("ID", r'[a-zA-Z_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?') STRING = l.define("STRING", r""""(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'""") ESC = l.define("ESC", r"\\[^ux]|\\x[0-9a-fA-F][0-9a-fA-F]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]") @@ -65,6 +66,8 @@ def tok2obj(tok): return True elif tok.type == FALSE: return False + elif tok.type == NONE: + return None else: return tok.value @@ -133,7 +136,7 @@ class AddressParser(Parser): return (key, val) def value(self): - if self.matches(NUMBER, STRING, ID, TRUE, FALSE): + if self.matches(NUMBER, STRING, ID, TRUE, FALSE, NONE): return tok2obj(self.eat()) elif self.matches(LBRACE): return self.map() diff --git a/python/qpid/tests/messaging/address.py b/python/qpid/tests/messaging/address.py index 7adbc0c6f7..869cf55cba 100644 --- a/python/qpid/tests/messaging/address.py +++ b/python/qpid/tests/messaging/address.py @@ -19,8 +19,8 @@ from qpid.tests import Test -from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NUMBER, SYM, WSPACE, \ - LEXER +from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NONE, \ + NUMBER, SYM, WSPACE, LEXER from qpid.lexer import Token from qpid.harness import Skipped from qpid.tests.parser import ParserBase @@ -149,6 +149,9 @@ class AddressTests(ParserBase, Test): def testNegativeNum(self): self.lex("-3", NUMBER) + def testNone(self): + self.lex("None", NONE) + def testHash(self): self.valid("foo/bar.#", "foo", "bar.#") @@ -166,6 +169,10 @@ class AddressTests(ParserBase, Test): self.valid("name/subject; {key: value,}", "name", "subject", {"key": "value"}) + def testOptionsNone(self): + self.valid("name/subject; {key: None}", "name", "subject", + {"key": None}) + def testSemiSubject(self): self.valid("foo.bar/'baz.qux;moo:arf'; {key: value}", "foo.bar", "baz.qux;moo:arf", {"key": "value"}) |