diff options
Diffstat (limited to 'test/pathod/language/test_generators.py')
-rw-r--r-- | test/pathod/language/test_generators.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/pathod/language/test_generators.py b/test/pathod/language/test_generators.py new file mode 100644 index 00000000..b3ce0335 --- /dev/null +++ b/test/pathod/language/test_generators.py @@ -0,0 +1,45 @@ +import os + +from pathod.language import generators +from mitmproxy.test import tutils + + +def test_randomgenerator(): + g = generators.RandomGenerator("bytes", 100) + assert repr(g) + assert g[0] + assert len(g[0]) == 1 + assert len(g[:10]) == 10 + assert len(g[1:10]) == 9 + assert len(g[:1000]) == 100 + assert len(g[1000:1001]) == 0 + + +def test_filegenerator(): + with tutils.tmpdir() as t: + path = os.path.join(t, "foo") + f = open(path, "wb") + f.write(b"x" * 10000) + f.close() + g = generators.FileGenerator(path) + assert len(g) == 10000 + assert g[0] == b"x" + assert g[-1] == b"x" + assert g[0:5] == b"xxxxx" + assert len(g[1:10]) == 9 + assert len(g[10000:10001]) == 0 + assert repr(g) + # remove all references to FileGenerator instance to close the file + # handle. + del g + + +def test_transform_generator(): + def trans(offset, data): + return "a" * len(data) + g = "one" + t = generators.TransformGenerator(g, trans) + assert len(t) == len(g) + assert t[0] == "a" + assert t[:] == "a" * len(g) + assert repr(t) |