Skip to content
Snippets Groups Projects
Verified Commit f85f9444 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

fix unit tests for router remodel

parent 78f747b6
No related branches found
No related tags found
No related merge requests found
Pipeline #84573 passed
This commit is part of merge request !105. Comments created here will be created in the context of that merge request.
...@@ -72,7 +72,7 @@ def available_interfaces_choices(router_id: UUID, speed: str) -> Choice | None: ...@@ -72,7 +72,7 @@ def available_interfaces_choices(router_id: UUID, speed: str) -> Choice | None:
def available_interfaces_choices_including_current_members( def available_interfaces_choices_including_current_members(
router_id: UUID | UUIDstr, router_id: UUID,
speed: str, speed: str,
interfaces: list[IptrunkInterfaceBlock], interfaces: list[IptrunkInterfaceBlock],
) -> Choice | None: ) -> Choice | None:
...@@ -113,14 +113,14 @@ def available_lags_choices(router_id: UUID) -> Choice | None: ...@@ -113,14 +113,14 @@ def available_lags_choices(router_id: UUID) -> Choice | None:
return Choice("ae iface", zip(side_a_ae_iface_list, side_a_ae_iface_list, strict=True)) # type: ignore[arg-type] return Choice("ae iface", zip(side_a_ae_iface_list, side_a_ae_iface_list, strict=True)) # type: ignore[arg-type]
def get_router_vendor(router_id: UUID) -> str: def get_router_vendor(router_id: UUID) -> RouterVendor:
"""Retrieve the vendor of a router. """Retrieve the vendor of a router.
:param router_id: The :term:`UUID` of the router. :param router_id: The :term:`UUID` of the router.
:type router_id: :class:`uuid.UUID` :type router_id: :class:`uuid.UUID`
:return: The vendor of the router. :return: The vendor of the router.
:rtype: str: :rtype: RouterVendor:
""" """
return Router.from_subscription(router_id).vendor return Router.from_subscription(router_id).vendor
......
...@@ -17,7 +17,6 @@ from gso.products.product_blocks.iptrunk import ( ...@@ -17,7 +17,6 @@ from gso.products.product_blocks.iptrunk import (
IptrunkType, IptrunkType,
PhyPortCapacity, PhyPortCapacity,
) )
from gso.products.product_blocks.router import RouterVendor
from gso.products.product_types.iptrunk import IptrunkInactive, IptrunkProvisioning from gso.products.product_types.iptrunk import IptrunkInactive, IptrunkProvisioning
from gso.products.product_types.router import Router, RouterVendor from gso.products.product_types.router import Router, RouterVendor
from gso.services import infoblox, provisioning_proxy, subscriptions from gso.services import infoblox, provisioning_proxy, subscriptions
......
...@@ -280,7 +280,6 @@ def allocate_interfaces_in_netbox(subscription: Iptrunk, previous_ae_members: di ...@@ -280,7 +280,6 @@ def allocate_interfaces_in_netbox(subscription: Iptrunk, previous_ae_members: di
Attach the :term:`LAG` interfaces to the physical interfaces detach old ones from the :term:`LAG`. Attach the :term:`LAG` interfaces to the physical interfaces detach old ones from the :term:`LAG`.
""" """
for index, side in enumerate(subscription.iptrunk.iptrunk_sides): for index, side in enumerate(subscription.iptrunk.iptrunk_sides):
nbclient = NetboxClient() nbclient = NetboxClient()
if get_router_vendor(side.iptrunk_side_node.owner_subscription_id) == RouterVendor.NOKIA: if get_router_vendor(side.iptrunk_side_node.owner_subscription_id) == RouterVendor.NOKIA:
......
...@@ -107,7 +107,7 @@ def initialize_subscription( ...@@ -107,7 +107,7 @@ def initialize_subscription(
@step("Allocate loopback interfaces in IPAM") @step("Allocate loopback interfaces in IPAM")
def ipam_allocate_loopback(subscription: RouterProvisioning) -> State: # noqa: FBT001 def ipam_allocate_loopback(subscription: RouterProvisioning) -> State:
"""Allocate :term:`IPAM` resources for the loopback interface.""" """Allocate :term:`IPAM` resources for the loopback interface."""
fqdn = subscription.router.router_fqdn fqdn = subscription.router.router_fqdn
loopback_v4, loopback_v6 = infoblox.allocate_host(f"lo0.{fqdn}", "LO", [fqdn], str(subscription.subscription_id)) loopback_v4, loopback_v6 = infoblox.allocate_host(f"lo0.{fqdn}", "LO", [fqdn], str(subscription.subscription_id))
......
...@@ -43,8 +43,6 @@ def create_subscription(customer: str, router_vendor: RouterVendor) -> State: ...@@ -43,8 +43,6 @@ def create_subscription(customer: str, router_vendor: RouterVendor) -> State:
product_id = subscriptions.get_product_id_by_name(ProductType.NOKIA_ROUTER) product_id = subscriptions.get_product_id_by_name(ProductType.NOKIA_ROUTER)
elif router_vendor == RouterVendor.JUNIPER: elif router_vendor == RouterVendor.JUNIPER:
product_id = subscriptions.get_product_id_by_name(ProductType.JUNIPER_ROUTER) product_id = subscriptions.get_product_id_by_name(ProductType.JUNIPER_ROUTER)
else:
raise ValueError(f"Unknown router vendor: {router_vendor}")
subscription = RouterInactive.from_product_id(product_id, customer_id) subscription = RouterInactive.from_product_id(product_id, customer_id)
......
...@@ -7,6 +7,8 @@ celery-redbeat==2.1.1 ...@@ -7,6 +7,8 @@ celery-redbeat==2.1.1
celery==5.3.4 celery==5.3.4
# Test and linting dependencies # Test and linting dependencies
celery-stubs==0.1.3
types-requests==2.31.0.1
pytest==7.4.3 pytest==7.4.3
faker==19.13.0 faker==19.13.0
responses==0.24.0 responses==0.24.0
......
...@@ -3,7 +3,7 @@ from unittest.mock import patch ...@@ -3,7 +3,7 @@ from unittest.mock import patch
import pytest import pytest
from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock
from gso.products.product_blocks.router import RouterVendor from gso.products.product_types.router import RouterVendor
from gso.utils.helpers import available_interfaces_choices_including_current_members from gso.utils.helpers import available_interfaces_choices_including_current_members
...@@ -22,20 +22,20 @@ def mock_netbox_client(): ...@@ -22,20 +22,20 @@ def mock_netbox_client():
def test_non_nokia_router_returns_none(mock_router, faker): def test_non_nokia_router_returns_none(mock_router, faker):
mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.JUNIPER mock_router.from_subscription.return_value.vendor = RouterVendor.JUNIPER
result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", []) result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", [])
assert result is None assert result is None
def test_nokia_router_with_no_interfaces_returns_empty_choice(mock_router, mock_netbox_client, faker): def test_nokia_router_with_no_interfaces_returns_empty_choice(mock_router, mock_netbox_client, faker):
mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.NOKIA mock_router.from_subscription.return_value.vendor = RouterVendor.NOKIA
mock_netbox_client().get_available_interfaces.return_value = iter([]) mock_netbox_client().get_available_interfaces.return_value = iter([])
result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", []) result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", [])
assert len(result) == 0 assert len(result) == 0
def test_nokia_router_with_interfaces_returns_choice(mock_router, mock_netbox_client, faker): def test_nokia_router_with_interfaces_returns_choice(mock_router, mock_netbox_client, faker):
mock_router.from_subscription.return_value.router.router_vendor = RouterVendor.NOKIA mock_router.from_subscription.return_value.vendor = RouterVendor.NOKIA
mock_netbox_client().get_available_interfaces.return_value = iter( mock_netbox_client().get_available_interfaces.return_value = iter(
[ [
{"name": "interface1", "module": {"display": "module1"}, "description": "desc1"}, {"name": "interface1", "module": {"display": "module1"}, "description": "desc1"},
......
...@@ -10,8 +10,6 @@ setenv = ...@@ -10,8 +10,6 @@ setenv =
OAUTH2_ACTIVE = False OAUTH2_ACTIVE = False
deps = deps =
coverage coverage
types-requests
celery-stubs
-r requirements.txt -r requirements.txt
commands = commands =
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment