From d66dedc6e7bdc201cd4d3fa5f04c9636a8ad57f4 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 16 May 2015 09:42:47 +1200 Subject: websockets: mask specification - Add a FixedLengthValue - Use it to implement a 4-byte mask specifier - Adjust docs --- test/test_language_base.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'test/test_language_base.py') diff --git a/test/test_language_base.py b/test/test_language_base.py index c6cee7b3..bd67c010 100644 --- a/test/test_language_base.py +++ b/test/test_language_base.py @@ -168,7 +168,7 @@ class TestMisc: assert base.TokValue.parseString('"val"')[0].val == "val" assert base.TokValue.parseString('"\'val\'"')[0].val == "'val'" - def test_prevalue(self): + def test_value(self): class TT(base.Value): preamble = "m" e = TT.expr() @@ -183,6 +183,30 @@ class TestMisc: v3 = v2.freeze({}) assert v2.value.val == v3.value.val + def test_fixedlengthvalue(self): + class TT(base.FixedLengthValue): + preamble = "m" + length = 4 + + e = TT.expr() + assert e.parseString("m@4") + tutils.raises("invalid value length", e.parseString, "m@100") + tutils.raises("invalid value length", e.parseString, "m@1") + + with tutils.tmpdir() as t: + p = os.path.join(t, "path") + s = base.Settings(staticdir=t) + with open(p, "wb") as f: + f.write("a" * 20) + v = e.parseString("m