Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
requests-testadapter
Advanced tools
.. image:: https://secure.travis-ci.org/ambv/requests-testadapter.png :target: https://secure.travis-ci.org/ambv/requests-testadapter
Currently a very basic module that provides an adapter for requests <http://pypi.python.org/pypi/requests>
_ that mocks network activity for unit
test purposes.
This code assumes your HTTP client is written in a way that enables passing
a custom Session <http://www.python-requests.org/en/latest/user/advanced/#session-objects>
_
object. When that's the case, all you have to do is to mount the adapter to
answer for a specific prefix::
import requests from requests_testadapter import TestAdapter s = requests.Session() s.mount('http://', TestAdapter(b'Mock!', status=404)) r = s.get('http://mocked.com') r.status_code 404 r.text 'Mock!'
You can also specify a headers
dictionary as a keyword argument to
TestAdapter
.
TestSession
In ``requests`` 1.2.0 and older, the order of mounted adapters is
unpredictable. To make sure you can mount arbitrary paths with their own
respective adapters, use ``TestSession`` which always matches the longest
prefix::
>>> from requests_testadapter import TestAdapter, TestSession
>>> s = TestSession()
>>> s.mount('http://git', TestAdapter(b'git'))
>>> s.mount('http://github', TestAdapter(b'github'))
>>> s.mount('http://github.com', TestAdapter(b'github.com'))
>>> s.mount('http://github.com/about/', TestAdapter(b'github.com/about'))
>>> r = s.get('http://github.com/about/')
>>> r.text
u'github.com/about'
>>> r = s.get('http://github.com')
>>> r.text
u'github.com'
>>> r = s.get('http://gittip.com')
>>> r.text
u'git'
``TestSession`` doesn't connect the default handlers for HTTP and HTTPS so you
will be notified if your requests unintentionally try to reach external
websites in your unit tests::
>>> r = s.get('http://bitbucket.org')
Traceback (most recent call last):
...
requests.exceptions.InvalidSchema: No connection adapters were found for
'http://bitbucket.org/'
How do I run the tests?
-----------------------
The easiest way would be to extract the source tarball and run::
$ python test/test_testadapter.py
If you have all compatible Python implementations available on your system, you
can run tests on all of them by using tox::
$ pip install tox
$ tox
GLOB sdist-make: setup.py
py26 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py26 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.014s
OK
py27 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py27 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.014s
OK
py32 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py32 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.024s
OK
py33 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py33 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s
OK
_______________________________ summary ______________________________
py26: commands succeeded
py27: commands succeeded
py32: commands succeeded
py33: commands succeeded
congratulations :)
Change Log
----------
0.3.0
~~~~~
* fixed a compatibility problem with ``requests`` 1.2.1+
0.2.0
~~~~~
* introduced ``TestSession`` to make adapter order predictable in ``requests``
1.2 and older
* ``TestAdapter`` doesn't prefetch ``response.content`` anymore if
``stream=True`` is passed to a request. This lets the user read
``response.raw`` herself.
0.1.0
~~~~~
* initial published version
Authors
-------
Glued together by `Łukasz Langa <mailto:lukasz@langa.pl>`_. Additional fixes by
Luke Sneeringer.
FAQs
Provides an adapter for mocking HTTP requests for unit test purposes.
We found that requests-testadapter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.