Skip to content
Snippets Groups Projects
Verified Commit 63f9ba4b 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 dc24f4f8
No related branches found
No related tags found
1 merge request!84Rework the IPtrunk model
Pipeline #84222 passed
This commit is part of merge request !83. Comments created here will be created in the context of that merge request.
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