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) == '\'"\''
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'"
def test_nested_response_freeze(): e = http.NestedResponse( base.TokValueLiteral( r"200:b\'foo\':i10,\'\\x27\'" ) ) assert e.freeze({}) assert e.values({})
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()
def test_nested_response_freeze(): e = http.NestedResponse( base.TokValueLiteral("200:b'foo':i10,'\\x27'".encode("string_escape"))) assert e.freeze({}) assert e.values({})