fix windows compatibility

This commit is contained in:
Maximilian Hils 2013-12-16 04:47:29 +01:00
parent 34f5f5a5c1
commit e0d376381e
3 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/mitmproxy/pathod.png)](https://travis-ci.org/mitmproxy/pathod) [![Coverage Status](https://coveralls.io/repos/mitmproxy/pathod/badge.png)](https://coveralls.io/r/mitmproxy/pathod)
__pathod__ is a collection of pathological tools for testing and torturing HTTP __pathod__ is a collection of pathological tools for testing and torturing HTTP
clients and servers. The project has three components: clients and servers. The project has three components:

View File

@ -182,7 +182,7 @@ class FileGenerator:
def __init__(self, path): def __init__(self, path):
self.path = path self.path = path
self.fp = file(path, "rb") self.fp = file(path, "rb")
self.map = mmap.mmap(self.fp.fileno(), 0, prot=mmap.PROT_READ) self.map = mmap.mmap(self.fp.fileno(), 0, access=mmap.ACCESS_READ)
def __len__(self): def __len__(self):
return len(self.map) return len(self.map)

View File

@ -95,9 +95,8 @@ class TestValueFile:
v = language.Value.parseString("<path")[0] v = language.Value.parseString("<path")[0]
with tutils.tmpdir() as t: with tutils.tmpdir() as t:
p = os.path.join(t, "path") p = os.path.join(t, "path")
f = open(p, "wb") with open(p, "wb") as f:
f.write("x" * 10000) f.write("x" * 10000)
f.close()
assert v.get_generator(dict(staticdir=t)) assert v.get_generator(dict(staticdir=t))
@ -152,6 +151,7 @@ class TestMisc:
assert g[-1] == "x" assert g[-1] == "x"
assert g[0:5] == "xxxxx" assert g[0:5] == "xxxxx"
assert repr(g) assert repr(g)
del g # remove all references to FileGenerator instance to close the file handle.
def test_value(self): def test_value(self):
assert language.Value.parseString("'val'")[0].val == "val" assert language.Value.parseString("'val'")[0].val == "val"
@ -697,7 +697,10 @@ class TestResponse:
assert r.actions[0].spec() == "pr,10" assert r.actions[0].spec() == "pr,10"
def test_parse_stress(self): def test_parse_stress(self):
r = language.parse_response({}, "400:b@100g") # While larger values are known to work on linux,
# len() technically returns an int and a python 2.7 int on windows has 32bit precision.
# Therefore, we should keep the body length < 2147483647 bytes in our tests.
r = language.parse_response({}, "400:b@1g")
assert r.length({}) assert r.length({})
def test_spec(self): def test_spec(self):