UT: Use mock encryptor
This commit is contained in:
parent
875a54aa8f
commit
e0cebd144a
|
@ -1,10 +1,26 @@
|
||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from tests.unit_tests.monkey_island.cc.mongomock_fixtures import * # noqa: F401,F403,E402
|
from tests.unit_tests.monkey_island.cc.mongomock_fixtures import * # noqa: F401,F403,E402
|
||||||
|
|
||||||
from monkey_island.cc.server_utils.encryption import unlock_datastore_encryptor
|
from monkey_island.cc.server_utils.encryption import ILockableEncryptor, unlock_datastore_encryptor
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def uses_encryptor(data_for_tests_dir):
|
def uses_encryptor(data_for_tests_dir):
|
||||||
secret = "m0nk3y_u53r:3cr3t_p455w0rd"
|
secret = "m0nk3y_u53r:3cr3t_p455w0rd"
|
||||||
unlock_datastore_encryptor(data_for_tests_dir, secret)
|
unlock_datastore_encryptor(data_for_tests_dir, secret)
|
||||||
|
|
||||||
|
|
||||||
|
def reverse(data: bytes) -> bytes:
|
||||||
|
return bytes(reversed(data))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def repository_encryptor():
|
||||||
|
# NOTE: Tests will fail if any inputs to this mock encryptor are palindromes.
|
||||||
|
repository_encryptor = MagicMock(spec=ILockableEncryptor)
|
||||||
|
repository_encryptor.encrypt = MagicMock(side_effect=reverse)
|
||||||
|
repository_encryptor.decrypt = MagicMock(side_effect=reverse)
|
||||||
|
|
||||||
|
return repository_encryptor
|
||||||
|
|
|
@ -18,7 +18,6 @@ from monkey_island.cc.repository import (
|
||||||
RetrievalError,
|
RetrievalError,
|
||||||
StorageError,
|
StorageError,
|
||||||
)
|
)
|
||||||
from monkey_island.cc.server_utils.encryption import RepositoryEncryptor
|
|
||||||
|
|
||||||
|
|
||||||
class FakeAgentEvent(AbstractAgentEvent):
|
class FakeAgentEvent(AbstractAgentEvent):
|
||||||
|
@ -60,15 +59,10 @@ def key_file(tmp_path):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def encryptor(key_file):
|
def mongo_repository(
|
||||||
encryptor = RepositoryEncryptor(key_file)
|
mongo_client, event_serializer_registry, repository_encryptor
|
||||||
encryptor.unlock(b"password")
|
) -> IAgentEventRepository:
|
||||||
return encryptor
|
return MongoAgentEventRepository(mongo_client, event_serializer_registry, repository_encryptor)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mongo_repository(mongo_client, event_serializer_registry, encryptor) -> IAgentEventRepository:
|
|
||||||
return MongoAgentEventRepository(mongo_client, event_serializer_registry, encryptor)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -88,10 +82,10 @@ def error_raising_mongo_client(mongo_client) -> mongomock.MongoClient:
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def error_raising_mongo_repository(
|
def error_raising_mongo_repository(
|
||||||
error_raising_mongo_client, event_serializer_registry
|
error_raising_mongo_client, event_serializer_registry, repository_encryptor
|
||||||
) -> IAgentEventRepository:
|
) -> IAgentEventRepository:
|
||||||
return MongoAgentEventRepository(
|
return MongoAgentEventRepository(
|
||||||
error_raising_mongo_client, event_serializer_registry, encryptor
|
error_raising_mongo_client, event_serializer_registry, repository_encryptor
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,20 +22,6 @@ CONFIGURED_CREDENTIALS = CREDENTIALS[0:3]
|
||||||
STOLEN_CREDENTIALS = CREDENTIALS[3:]
|
STOLEN_CREDENTIALS = CREDENTIALS[3:]
|
||||||
|
|
||||||
|
|
||||||
def reverse(data: bytes) -> bytes:
|
|
||||||
return bytes(reversed(data))
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def repository_encryptor():
|
|
||||||
# NOTE: Tests will fail if any inputs to this mock encryptor are palindromes.
|
|
||||||
repository_encryptor = MagicMock(spec=ILockableEncryptor)
|
|
||||||
repository_encryptor.encrypt = MagicMock(side_effect=reverse)
|
|
||||||
repository_encryptor.decrypt = MagicMock(side_effect=reverse)
|
|
||||||
|
|
||||||
return repository_encryptor
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mongo_client():
|
def mongo_client():
|
||||||
return mongomock.MongoClient()
|
return mongomock.MongoClient()
|
||||||
|
|
Loading…
Reference in New Issue