Skip to content
Snippets Groups Projects

Clean up the repo a bit, and add some unit tests

Merged Karel van Klink requested to merge feature/add-unit-tests into develop
All threads resolved!
2 files
+ 67
3
Compare changes
  • Side-by-side
  • Inline
Files
2
from unittest.mock import patch
import pytest
from gso.products import Iptrunk
from test.workflows import (
assert_complete,
assert_suspended,
extract_state,
resume_workflow,
run_workflow,
user_accept_and_assert_suspended,
)
@pytest.mark.workflow
@patch("gso.workflows.iptrunk.terminate_iptrunk.provisioning_proxy.provision_ip_trunk")
@patch("gso.workflows.iptrunk.terminate_iptrunk.provisioning_proxy.deprovision_ip_trunk")
@patch("gso.workflows.iptrunk.terminate_iptrunk.infoblox.delete_network")
def test_iptrunk_modify_isis_metric_success(
mock_infoblox_delete_network,
mock_deprovision_ip_trunk,
mock_provision_ip_trunk,
iptrunk_subscription_factory,
faker,
):
# Set up mock return values
product_id = iptrunk_subscription_factory()
# Run workflow
initial_iptrunk_data = [
{"subscription_id": product_id},
{"tt_number": faker.tt_number(), "remove_configuration": True, "clean_up_ipam": True},
]
result, process_stat, step_log = run_workflow("terminate_iptrunk", initial_iptrunk_data)
assert_suspended(result)
lso_return = {
"pp_run_results": {
"status": "ok",
"job_id": faker.uuid4(),
"output": "parsed_output",
"return_code": 0,
},
"confirm": "ACCEPTED",
}
for _ in range(2):
result, step_log = user_accept_and_assert_suspended(process_stat, step_log, lso_return)
result, step_log = user_accept_and_assert_suspended(process_stat, step_log, [{}, {}])
result, step_log = user_accept_and_assert_suspended(process_stat, step_log, lso_return)
result, step_log = resume_workflow(process_stat, step_log, [{}, {}])
assert_complete(result)
state = extract_state(result)
subscription_id = state["subscription_id"]
subscription = Iptrunk.from_subscription(subscription_id)
assert "terminated" == subscription.status
assert mock_provision_ip_trunk.call_count == 1
assert mock_deprovision_ip_trunk.call_count == 2
assert mock_infoblox_delete_network.call_count == 2
assert subscription.iptrunk.iptrunk_isis_metric == 90000
Loading