Skip to content
Snippets Groups Projects
Commit c6288e2e authored by Karel van Klink's avatar Karel van Klink :smiley_cat: Committed by Neda Moeini
Browse files

add unit test for iptrunk termination, kicking us over the limit of 80% coverage

From now on, the CI pipeline will fail if it drops below this percentage
parent 459af11f
Branches
Tags
1 merge request!83Clean up the repo a bit, and add some unit tests
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
......@@ -29,8 +29,7 @@ commands =
mypy .
flake8
coverage erase
coverage run --source gso -m pytest {posargs}
coverage run --source gso --omit="gso/migrations/*" -m pytest {posargs}
coverage xml
coverage html
# coverage report --fail-under 80
coverage report
coverage report --fail-under 80
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment