示例#1
0
    def test_expr(self):
        v = base.TokValueLiteral("foo")
        assert v.expr()
        assert v.val == b"foo"

        v = base.TokValueLiteral("foo\n")
        assert v.expr()
        assert v.val == b"foo\n"
        assert repr(v)
    def test_spec(self):
        v = base.TokValueLiteral("foo")
        assert v.spec() == r"'foo'"

        v = base.TokValueLiteral("f\x00oo")
        assert v.spec() == repr(v) == r"'f\x00oo'"

        v = base.TokValueLiteral("\"")
        assert v.spec() == repr(v) == '\'"\''
示例#3
0
    def test_spec(self):
        v = base.TokValueLiteral("foo")
        assert v.spec() == r"'foo'"

        v = base.TokValueLiteral("f\x00oo")
        assert v.spec() == repr(v) == r"'f\x00oo'"

        v = base.TokValueLiteral('"')
        assert v.spec() == repr(v) == """  '"'  """.strip()

        # While pyparsing has a escChar argument for QuotedString,
        # escChar only performs scapes single-character escapes and does not work for e.g. r"\x02".
        # Thus, we cannot use that option, which means we cannot have single quotes in strings.
        # To fix this, we represent single quotes as r"\x07".
        v = base.TokValueLiteral("'")
        assert v.spec() == r"'\x27'"
示例#4
0
def test_nested_response_freeze():
    e = http.NestedResponse(
        base.TokValueLiteral(
            r"200:b\'foo\':i10,\'\\x27\'"
        )
    )
    assert e.freeze({})
    assert e.values({})
示例#5
0
 def roundtrip(self, spec):
     e = base.TokValueLiteral.expr()
     v = base.TokValueLiteral(spec)
     v2 = e.parseString(v.spec())
     assert v.val == v2[0].val
     assert v.spec() == v2[0].spec()
示例#6
0
def test_nested_response_freeze():
    e = http.NestedResponse(
        base.TokValueLiteral("200:b'foo':i10,'\\x27'".encode("string_escape")))
    assert e.freeze({})
    assert e.values({})