diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4669ee4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.egg-info +*.pyc + +/.tox diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..bb3ec5f --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cc2146 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# pytest-httpretty - A thin wrapper of HTTPretty for pytest + +```python +import requests + +def test_httpretty(httpretty): + httpretty.register_uri(httpretty.GET, 'http://example.com/', body='Hello') + assert requests.get('http://example.com').text == 'Hello' + +def test_stub_get(stub_get): + stub_get('http://example.com/', body='World!') + assert requests.get('http://example.com').text == 'World!' +``` diff --git a/pytest_httpretty.py b/pytest_httpretty.py new file mode 100644 index 0000000..46b1291 --- /dev/null +++ b/pytest_httpretty.py @@ -0,0 +1,21 @@ +import httpretty as _httpretty +import pytest + + +__version__ = '0.1.dev' + + +@pytest.fixture +def httpretty(request): + _httpretty.httpretty.reset() + _httpretty.httpretty.enable() + request.addfinalizer(_httpretty.httpretty.disable) + return _httpretty + + +@pytest.fixture +def stub_get(request, httpretty): + def wrapper(*args, **kwargs): + httpretty.register_uri(httpretty.GET, *args, **kwargs) + return httpretty + return wrapper diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..86ac3f9 --- /dev/null +++ b/setup.py @@ -0,0 +1,48 @@ +import os.path +import re + +from setuptools import setup + + +def read(filename): + path = os.path.join(os.path.dirname(os.path.abspath(__file__)), + filename) + return open(path).read() + + +__version__ = re.search("^__version__ = '(.+)'", + read('pytest_httpretty.py'), re.M).group(1) + + +setup(name='pytest-httpretty', + version=__version__, + description='A thin wrapper of HTTPretty for pytest', + author='papaeye', + author_email='papaeye@gmail.com', + url='http://github.com/papaeye/pytest-httpretty', + py_modules=['pytest_httpretty'], + include_package_data=True, + install_requires=[ + 'httpretty', + 'pytest', + ], + tests_require=[ + 'requests' + ], + zip_safe=False, + keywords='pytest httpretty http stub mock', + classifiers=[ + 'Development Status :: 3 - Alpha', + 'License :: OSI Approved :: BSD License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + ], + platforms='any', + license='BSD License', + entry_points={ + 'pytest11': ['httpretty = pytest_httpretty'] + }) diff --git a/test_pytest_httpretty.py b/test_pytest_httpretty.py new file mode 100644 index 0000000..c3bf1f2 --- /dev/null +++ b/test_pytest_httpretty.py @@ -0,0 +1,13 @@ +import requests + + +def test_httpretty(httpretty): + httpretty.register_uri(httpretty.GET, 'http://example.com/', body='Hello') + + assert requests.get('http://example.com').text == 'Hello' + + +def test_stub_get(stub_get): + stub_get('http://example.com/', body='World!') + + assert requests.get('http://example.com').text == 'World!' diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..2457cbb --- /dev/null +++ b/tox.ini @@ -0,0 +1,9 @@ +[tox] +envlist = py27, py33 + +[testenv] +deps = + httpretty + pytest + requests +commands = py.test