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
Branches
Tags
1 merge request!314Feature/vrf
...@@ -15,6 +15,7 @@ from test.fixtures.router_fixtures import router_subscription_factory ...@@ -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.site_fixtures import site_subscription_factory
from test.fixtures.super_pop_switch_fixtures import super_pop_switch_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.switch_fixtures import switch_subscription_factory
from test.fixtures.vrf_fixtures import vrf_subscription_factory
__all__ = [ __all__ = [
"access_port_factory", "access_port_factory",
...@@ -33,4 +34,5 @@ __all__ = [ ...@@ -33,4 +34,5 @@ __all__ = [
"site_subscription_factory", "site_subscription_factory",
"super_pop_switch_subscription_factory", "super_pop_switch_subscription_factory",
"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