A nose plugin to detect tests making http calls.
Project description
[not actively supported outside of internal Venmo usage]
A nose and pytest plugin that can detect tests making external http calls. With nose, it adds a single artificial failure with all the results:
$ nosetests -v --with-detecthttp example.py
test_that_makes_request (example.ExampleTests) ... ok
test_with_no_request (example.ExampleTests) ... ok
======================================================================
FAIL: Tests made external http calls
----------------------------------------------------------------------
- example.ExampleTests:
test_that_makes_request:
GET http://example.com/
----------------------------------------------------------------------
Ran 2 tests in 0.063s
FAILED (failures=1)
With pytest, failures are added to individual tests:
$ pytest --with-detecthttp example.py
...
item = <TestCaseFunction 'test_that_makes_request'>
def pytest_runtest_teardown(item):
# Note unmocked interactions collected during runtest_call.
# This is raised here so that pytest doesn't mark it as an internal error.
report = item.config._detecthttp_reports.pop(item.nodeid, None)
if item.config._detecthttp_enabled and report:
> raise report
E UnmockedRequestsDetected: detecthttp noticed the following requests during this test:
E GET http://example.com/
detecthttp/pytest.py:82: UnmockedRequestsDetected
...2 passed, 1 error in 0.35 seconds
Localhost is automatically ignored. To ignore other hosts, use the –vcr-ignore-host option, which takes a comma-delimited list:
$ nosetests -v --with-detecthttp --vcr-ignore-host=example.com example.py test_that_makes_request (example.ExampleTests) ... ok test_with_no_request (example.ExampleTests) ... ok ---------------------------------------------------------------------- Ran 2 tests in 0.110s OK
Under the hood, this wraps every test in a separate VCR.py cassette. Since VCR.py’s hooks are in the stdlib, this approach won’t detect requests made with clients like PycURL.
History
1.2.1
Add Python 3 support
1.1.0
released 2018-12-18
add pytest support
1.0.0
released 2018-09-12
breaking: ignore host flag now accepts comma-separated values rather than being provided multiple times
0.2.0
released 2017-08-15
add –vcr-ignore-host option to ignore custom hosts
0.1.3
released 2015-10-16
python 3 support
0.1.1
released 2014-11-24
initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nose-detecthttp-1.2.1.tar.gz.
File metadata
- Download URL: nose-detecthttp-1.2.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.2.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b0c39b7e23666ecd8a87c6fbdddb247c58ba96dec29317cac9ccc9fddb3a97f
|
|
| MD5 |
0d04171b9e17c6b43818d79bd3d39398
|
|
| BLAKE2b-256 |
be530023e928569bf992a165ae9f6e0f8c71732b9bc1f4802e8ff9bc3bd6b5cf
|
File details
Details for the file nose_detecthttp-1.2.1-py2.py3-none-any.whl.
File metadata
- Download URL: nose_detecthttp-1.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.2.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea55241f47af6fd94ea3c8bef56602516dde980015341d337c5fbec901bdc0af
|
|
| MD5 |
0ac9e134842560dd8d11bde7db9c9fd4
|
|
| BLAKE2b-256 |
c3d7a77446331145149cf9ac749ce5fe750e7925bac85c162546faa66b7bf081
|