diff options
-rw-r--r-- | libpathod/language/__init__.py | 2 | ||||
-rw-r--r-- | libpathod/language/base.py | 2 | ||||
-rw-r--r-- | libpathod/language/message.py | 5 | ||||
-rw-r--r-- | libpathod/language/websockets.py | 4 | ||||
-rw-r--r-- | test/test_language_base.py | 6 |
5 files changed, 13 insertions, 6 deletions
diff --git a/libpathod/language/__init__.py b/libpathod/language/__init__.py index 3b7529f0..2444d532 100644 --- a/libpathod/language/__init__.py +++ b/libpathod/language/__init__.py @@ -45,7 +45,7 @@ def parse_requests(s): for i in reqs: if i.times: for j in range(int(i.times.value)): - expanded.append(i.copy()) + expanded.append(i.strike_token("times")) else: expanded.append(i) return expanded diff --git a/libpathod/language/base.py b/libpathod/language/base.py index bf139d48..a957442e 100644 --- a/libpathod/language/base.py +++ b/libpathod/language/base.py @@ -84,7 +84,7 @@ class Token(object): same name will be allowed. If no uniquness should be applied, this should be None. """ - return self.__class__.__name__ + return self.__class__.__name__.lower() def resolve(self, settings, msg): """ diff --git a/libpathod/language/message.py b/libpathod/language/message.py index e3c7ed9e..2ff40825 100644 --- a/libpathod/language/message.py +++ b/libpathod/language/message.py @@ -22,8 +22,9 @@ class Message(object): track.add(i.unique_name) self.tokens = tokens - def copy(self): - return self.__class__(self.tokens[:]) + def strike_token(self, name): + toks = [i for i in self.tokens if i.unique_name != name] + return self.__class__(toks) def toks(self, klass): """ diff --git a/libpathod/language/websockets.py b/libpathod/language/websockets.py index ed5596ce..036d4ea5 100644 --- a/libpathod/language/websockets.py +++ b/libpathod/language/websockets.py @@ -36,7 +36,7 @@ class Body(base.Value): class RawBody(base.Value): - unique_name = "Body" + unique_name = "body" preamble = "r" @@ -66,7 +66,7 @@ class Key(base.FixedLengthValue): class KeyNone(base.CaselessLiteral): - unique_name = "Key" + unique_name = "key" TOK = "knone" diff --git a/test/test_language_base.py b/test/test_language_base.py index 192ad727..329778a9 100644 --- a/test/test_language_base.py +++ b/test/test_language_base.py @@ -9,6 +9,12 @@ def parse_request(s): return language.parse_requests(s)[0] +def test_times(): + reqs = language.parse_requests("get:/:x5") + assert len(reqs) == 5 + assert not reqs[0].times + + def test_caseless_literal(): class CL(base.CaselessLiteral): TOK = "foo" |