Usage
The intended use is for making sure your unit tests don’t make network connections. Activate sockfilter with a predicate like:
# only allow http connections to localhost
def socket_address_allowed(address):
return (address.host in ['localhost', '127.0.0.1'] and
address.port == 80)
sockfilter.enable(socket_address_allowed)
Any subsequent attempts to open a connection at an address not satisfying the predicate will raise sockfilter.SockFilterError.
with_sockfiltering decorator
from sockfilter import with_sockfiltering
@with_sockfiltering(socket_address_allowed)
def test_foo():
foo()
sockfiltering context manager
from sockfilter import sockfiltering
def test_foo():
with sockfiltering(socket_address_allowed):
foo()
enable and disable
import sockfilter
from unittest import TestCase
class FooTest(TestCase):
def setUp(self):
sockfilter.enable(socket_address_allowed)
def tearDown(self):
sockfilter.disable()
def test_foo(self):
foo()
Under the hood
Sockfilter works by monkey-patching Python’s socket library, inspired by HTTPretty.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sockfilter-1.4.tar.gz
(5.5 kB
view details)
File details
Details for the file sockfilter-1.4.tar.gz.
File metadata
- Download URL: sockfilter-1.4.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0aef68d7d76a5842d32174a8a20c5e480f91ed015d535a57d2192b12e152b05a
|
|
| MD5 |
414cfc42f8779c4ca880e64b97634967
|
|
| BLAKE2b-256 |
0f99e6a1f75d6d6069c96cbedffb23b11f673492c3b4daebf2367aa52bc79b5e
|