Block socket creation by host/port.
Project description
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.
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
sockfilter-1.0.tar.gz
(1.8 kB
view hashes)