Install from PyPI:
$ pip install swiftmock
You can use swiftmock directly in your code:
from swiftmock.swift import MockConnection
with MockConnection() as conn:
conn.put_container("fake-container")
conn.put_object("fake-container", "path/to/object", b"contents")
header, contents = conn.get_object("fake-container", "path/to/object")
assert contents == b"contents"
Using with Pytest
You can also use this library as a pytest plugin.
def my_test_using_swift(mock_swift):
# optional, the mock automatically replaces *swiftclient.client.Connection*
# so that it automatically returns the mocked instance
mock_swift.put_container("fake-container")
with pytest.assert_raises(swiftclient.exceptions.ClientException):
mock_swift.get_object("fake-container", "non/existent/object")