Fine-tuning for injection: docs, bugfixes.
This commit is contained in:
parent
d7841898e3
commit
8e0c01ae39
|
@ -421,7 +421,8 @@ class InjectAt:
|
|||
e = e + pp.MatchFirst(
|
||||
[
|
||||
v_integer,
|
||||
pp.Literal("r")
|
||||
pp.Literal("r"),
|
||||
pp.Literal("a")
|
||||
]
|
||||
)
|
||||
e += pp.Literal(",").suppress()
|
||||
|
@ -429,7 +430,13 @@ class InjectAt:
|
|||
return e.setParseAction(lambda x: klass(*x))
|
||||
|
||||
def accept(self, settings, r):
|
||||
r.actions.append((self.offset, "inject", self.value))
|
||||
r.actions.append(
|
||||
(
|
||||
self.offset,
|
||||
"inject",
|
||||
self.value.get_generator(settings)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class Header:
|
||||
|
|
|
@ -157,6 +157,17 @@ various other goodies. Try it by visiting the server root:</p>
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
iOFFSET,VALUE
|
||||
</td>
|
||||
<td>
|
||||
Inject the specified value at the offset. OFFSET can be an
|
||||
integer, or "r" to generate a random offset or "a" for an
|
||||
offset just after all data has been sent.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
lVALUE
|
||||
|
|
|
@ -175,6 +175,10 @@ class TestInject:
|
|||
assert a[0] == "r"
|
||||
assert a[1] == "inject"
|
||||
|
||||
a = rparse.parse_response({}, "400:ia,@100").actions[0]
|
||||
assert a[0] == "a"
|
||||
assert a[1] == "inject"
|
||||
|
||||
def test_at(self):
|
||||
e = rparse.InjectAt.expr()
|
||||
v = e.parseString("i0,'foo'")[0]
|
||||
|
@ -185,6 +189,11 @@ class TestInject:
|
|||
v = e.parseString("ir,'foo'")[0]
|
||||
assert v.offset == "r"
|
||||
|
||||
def test_serve(self):
|
||||
s = cStringIO.StringIO()
|
||||
r = rparse.parse_response({}, "400:i0,'foo'")
|
||||
assert r.serve(s)
|
||||
|
||||
|
||||
class TestShortcuts:
|
||||
def test_parse_response(self):
|
||||
|
|
Loading…
Reference in New Issue