aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libpathod/language/__init__.py2
-rw-r--r--libpathod/language/base.py2
-rw-r--r--libpathod/language/message.py5
-rw-r--r--libpathod/language/websockets.py4
-rw-r--r--test/test_language_base.py6
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"