aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-12-17 14:32:56 +1300
committerAldo Cortesi <aldo@nullcube.com>2013-12-17 14:32:56 +1300
commit467ef0c02a6351539abdc81e4c9f15b7c583d5dc (patch)
tree2827ccf692515fee5139f558e83b0ac2eb197960
parent8229c3884f88b140240694f9d714c179d5561b17 (diff)
parente0d376381efa3394e23ed60283dc45b7893e8e1e (diff)
downloadmitmproxy-467ef0c02a6351539abdc81e4c9f15b7c583d5dc.tar.gz
mitmproxy-467ef0c02a6351539abdc81e4c9f15b7c583d5dc.tar.bz2
mitmproxy-467ef0c02a6351539abdc81e4c9f15b7c583d5dc.zip
Merge branch 'master' of ssh.github.com:mitmproxy/pathod
-rw-r--r--.travis.yml14
-rw-r--r--README.mkd2
-rw-r--r--libpathod/language.py2
-rw-r--r--requirements.txt10
-rw-r--r--test/test_language.py11
5 files changed, 34 insertions, 5 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..920563f5
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,14 @@
+language: python
+python:
+ - "2.7"
+# command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
+install:
+ - "pip install coveralls --use-mirrors"
+ - "pip install nose-cov --use-mirrors"
+ - "pip install -r requirements.txt --use-mirrors"
+ - "pip install --upgrade git+https://github.com/mitmproxy/netlib.git"
+# command to run tests, e.g. python setup.py test
+script:
+ - "nosetests --with-cov --cov-report term-missing"
+after_success:
+ - coveralls \ No newline at end of file
diff --git a/README.mkd b/README.mkd
index 471ff106..01b92fcf 100644
--- a/README.mkd
+++ b/README.mkd
@@ -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
clients and servers. The project has three components:
diff --git a/libpathod/language.py b/libpathod/language.py
index 5cce6fde..4c1a4977 100644
--- a/libpathod/language.py
+++ b/libpathod/language.py
@@ -182,7 +182,7 @@ class FileGenerator:
def __init__(self, path):
self.path = path
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):
return len(self.map)
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 00000000..73ed126b
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,10 @@
+Flask>=0.10.1
+Jinja2>=2.7.1
+MarkupSafe>=0.18
+Werkzeug>=0.9.4
+itsdangerous>=0.23
+nose>=1.3.0
+pyOpenSSL>=0.13.1
+pyasn1>=0.1.7
+requests>=2.1.0
+netlib>=0.9.2 \ No newline at end of file
diff --git a/test/test_language.py b/test/test_language.py
index 18865761..5e9176ab 100644
--- a/test/test_language.py
+++ b/test/test_language.py
@@ -95,9 +95,8 @@ class TestValueFile:
v = language.Value.parseString("<path")[0]
with tutils.tmpdir() as t:
p = os.path.join(t, "path")
- f = open(p, "wb")
- f.write("x"*10000)
- f.close()
+ with open(p, "wb") as f:
+ f.write("x" * 10000)
assert v.get_generator(dict(staticdir=t))
@@ -152,6 +151,7 @@ class TestMisc:
assert g[-1] == "x"
assert g[0:5] == "xxxxx"
assert repr(g)
+ del g # remove all references to FileGenerator instance to close the file handle.
def test_value(self):
assert language.Value.parseString("'val'")[0].val == "val"
@@ -697,7 +697,10 @@ class TestResponse:
assert r.actions[0].spec() == "pr,10"
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({})
def test_spec(self):