Skip to content
Snippets Groups Projects
Verified Commit 9d42ecd9 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
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 0a858f0b
No related branches found
No related tags found
No related merge requests found
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 = ...@@ -29,8 +29,7 @@ commands =
mypy . mypy .
flake8 flake8
coverage erase coverage erase
coverage run --source gso -m pytest {posargs} coverage run --source gso --omit="gso/migrations/*" -m pytest {posargs}
coverage xml coverage xml
coverage html coverage html
# coverage report --fail-under 80 coverage report --fail-under 80
coverage report
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment