Skip to content
Snippets Groups Projects
Commit 0832e046 authored by Neda Moeini's avatar Neda Moeini
Browse files

Add unittests modify VRF WF

parent 9c502a20
No related branches found
No related tags found
1 merge request!314Feature/vrf
......@@ -15,6 +15,7 @@ from test.fixtures.router_fixtures import router_subscription_factory
from test.fixtures.site_fixtures import site_subscription_factory
from test.fixtures.super_pop_switch_fixtures import super_pop_switch_subscription_factory
from test.fixtures.switch_fixtures import switch_subscription_factory
from test.fixtures.vrf_fixtures import vrf_subscription_factory
__all__ = [
"access_port_factory",
......@@ -33,4 +34,5 @@ __all__ = [
"site_subscription_factory",
"super_pop_switch_subscription_factory",
"switch_subscription_factory",
"vrf_subscription_factory",
]
import pytest
from orchestrator.db import db
from orchestrator.domain import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle
from pydantic_forms.types import UUIDstr
from gso.products import ProductName
from gso.products.product_types.vrf import VRFInactive
from gso.services.subscriptions import get_product_id_by_name
@pytest.fixture()
def vrf_subscription_factory(faker, geant_partner):
def subscription_create(
partner: dict | None = None,
description: str | None = None,
start_date: str | None = "2024-01-01T10:20:30+01:02",
vrf_name: str | None = None,
route_distinguisher: str | None = None,
route_target: str | None = None,
vrf_as_number: int | None = None,
status: SubscriptionLifecycle | None = None,
) -> UUIDstr:
if partner is None:
partner = geant_partner
product_id = get_product_id_by_name(ProductName.VRF)
vrf_subscription = VRFInactive.from_product_id(product_id, customer_id=partner["partner_id"], insync=True)
vrf_subscription.vrf.vrf_name = vrf_name or faker.pystr()
vrf_subscription.vrf.route_distinguisher = route_distinguisher or faker.pystr()
vrf_subscription.vrf.route_target = route_target or faker.pystr()
vrf_subscription.vrf.vrf_as_number = vrf_as_number or faker.pyint()
vrf_subscription = SubscriptionModel.from_other_lifecycle(vrf_subscription, SubscriptionLifecycle.ACTIVE)
vrf_subscription.description = description or f"VRF {vrf_subscription.vrf.vrf_name}"
vrf_subscription.start_date = start_date
if status:
vrf_subscription.status = status
vrf_subscription.save()
db.session.commit()
return str(vrf_subscription.subscription_id)
return subscription_create
import uuid
import pytest
from pydantic_forms.exceptions import FormValidationError
from gso.products.product_types.vrf import VRF
from test.workflows import assert_complete, extract_state, run_workflow
@pytest.mark.workflow()
def test_modify_vrf_router_list(vrf_subscription_factory, router_subscription_factory, faker):
subscription_id = vrf_subscription_factory()
initial_vrf_data = [
{"subscription_id": subscription_id},
{
"router_list": [{"router_id": router_subscription_factory()}, {"router_id": router_subscription_factory()}],
},
]
result, _, _ = run_workflow("modify_vrf_router_list", initial_vrf_data)
assert_complete(result)
state = extract_state(result)
subscription_id = state["subscription_id"]
subscription = VRF.from_subscription(subscription_id)
assert subscription.status == "active"
assert len(subscription.vrf.vrf_router_list) == 2
@pytest.mark.workflow()
def test_modify_vrf_router_list_with_invalid_router_id(vrf_subscription_factory, router_subscription_factory, faker):
subscription_id = vrf_subscription_factory()
initial_vrf_data = [
{"subscription_id": subscription_id},
{
"router_list": [{"router_id": uuid.uuid4()}],
},
]
with pytest.raises(FormValidationError, match="Input should be an instance of Select a router"):
run_workflow("modify_vrf_router_list", initial_vrf_data)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment