UT: Move relevant tests from test_agent_signals.py to test_terminate_all_agents.py

This commit is contained in:
Shreya Malviya 2022-09-23 18:01:12 +05:30 committed by Mike Salvatore
parent 645e03e46f
commit 066f106882
2 changed files with 59 additions and 36 deletions

View File

@ -5,10 +5,8 @@ from uuid import UUID
import pytest
from tests.common import StubDIContainer
from monkey_island.cc.event_queue import IIslandEventQueue
from monkey_island.cc.models import AgentSignals as Signals
from monkey_island.cc.repository import RetrievalError, StorageError
from monkey_island.cc.resources import AgentSignals
from monkey_island.cc.services import AgentSignalsService
TIMESTAMP_1 = 123456789
@ -30,11 +28,6 @@ def mock_agent_signals_service():
def flask_client_builder(build_flask_client, mock_agent_signals_service):
def inner(side_effect=None):
container = StubDIContainer()
mock_island_event_queue = MagicMock(spec=IIslandEventQueue)
mock_island_event_queue.publish.side_effect = side_effect
container.register_instance(IIslandEventQueue, mock_island_event_queue)
container.register_instance(AgentSignalsService, mock_agent_signals_service)
with build_flask_client(container) as flask_client:
@ -48,35 +41,6 @@ def flask_client(flask_client_builder):
return flask_client_builder()
def test_agent_signals_terminate_all_post(flask_client):
resp = flask_client.post(
AgentSignals.urls[0],
json={"terminate_time": TIMESTAMP_1},
follow_redirects=True,
)
assert resp.status_code == HTTPStatus.NO_CONTENT
@pytest.mark.parametrize(
"bad_data",
[
"bad timestamp",
{},
{"wrong_key": TIMESTAMP_1},
TIMESTAMP_1,
{"terminate_time": 0},
{"terminate_time": -1},
],
)
def test_agent_signals_terminate_all_post__invalid_timestamp(flask_client, bad_data):
resp = flask_client.post(
AgentSignals.urls[0],
json=bad_data,
follow_redirects=True,
)
assert resp.status_code == HTTPStatus.BAD_REQUEST
@pytest.mark.parametrize(
"url, signals",
[

View File

@ -0,0 +1,59 @@
from http import HTTPStatus
from unittest.mock import MagicMock
import pytest
from tests.common import StubDIContainer
from monkey_island.cc.event_queue import IIslandEventQueue
from monkey_island.cc.resources import TerminateAllAgents
TIMESTAMP = 123456789
@pytest.fixture
def flask_client_builder(build_flask_client):
def inner(side_effect=None):
container = StubDIContainer()
mock_island_event_queue = MagicMock(spec=IIslandEventQueue)
mock_island_event_queue.publish.side_effect = side_effect
container.register_instance(IIslandEventQueue, mock_island_event_queue)
with build_flask_client(container) as flask_client:
return flask_client
return inner
@pytest.fixture
def flask_client(flask_client_builder):
return flask_client_builder()
def test_terminate_all_agents_post(flask_client):
resp = flask_client.post(
TerminateAllAgents.urls[0],
json={"terminate_time": TIMESTAMP},
follow_redirects=True,
)
assert resp.status_code == HTTPStatus.NO_CONTENT
@pytest.mark.parametrize(
"bad_data",
[
"bad timestamp",
{},
{"wrong_key": TIMESTAMP},
TIMESTAMP,
{"terminate_time": 0},
{"terminate_time": -1},
],
)
def test_terminate_all_agents_post__invalid_timestamp(flask_client, bad_data):
resp = flask_client.post(
TerminateAllAgents.urls[0],
json=bad_data,
follow_redirects=True,
)
assert resp.status_code == HTTPStatus.BAD_REQUEST