From da0ed76bbdea737a9cd1a10ad0a5aace1c8c40da Mon Sep 17 00:00:00 2001 From: Hakan Calim <hakan.calim@fau.de> Date: Mon, 19 Feb 2024 14:34:33 +0100 Subject: [PATCH] NAT-410: Changed test to use mark parameterize to generate tt numbers --- test/utils/test_helpers.py | 44 ++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/test/utils/test_helpers.py b/test/utils/test_helpers.py index a462d1d7..4006c4ad 100644 --- a/test/utils/test_helpers.py +++ b/test/utils/test_helpers.py @@ -21,6 +21,18 @@ def mock_netbox_client(): yield mock +@pytest.fixture() +def generate_tt_numbers(faker, request): + """Generator for valid and invalid tt numbers.""" + valid_count = request.param.get("valid", 0) + invalid_count = request.param.get("invalid", 0) + + valid_data = [(faker.tt_number(), True) for _ in range(valid_count)] + invalid_data = [(faker.sentence(), False) for _ in range(invalid_count)] + + return valid_data + invalid_data + + def test_non_nokia_router_returns_none(mock_router, faker): mock_router.from_subscription.return_value.router.vendor = RouterVendor.JUNIPER result = available_interfaces_choices_including_current_members(faker.uuid4(), "10G", []) @@ -64,23 +76,17 @@ def test_nokia_router_with_interfaces_returns_choice(mock_router, mock_netbox_cl assert hasattr(result, "interface3") -def test_tt_number(faker): +@pytest.mark.parametrize("generate_tt_numbers", [{"valid": 5, "invalid": 3}], indirect=True) +def test_tt_number(generate_tt_numbers): """Test different TT numbers""" - - # Define different tt number - tt_number_valid1 = faker.tt_number() - tt_number_valid2 = faker.tt_number() - tt_number_valid3 = faker.tt_number() - - tt_number_not_valid1 = faker.sentence() - err_msg = ( - f"The given TT number: {tt_number_not_valid1} is not valid. " - f" A valid TT number starts with 'TT#' followed by 16 digits." - ) - - assert validate_tt_number(tt_number_valid1) == tt_number_valid1 - assert validate_tt_number(tt_number_valid2) == tt_number_valid2 - assert validate_tt_number(tt_number_valid3) == tt_number_valid3 - - with pytest.raises(ValueError, match=err_msg): - validate_tt_number(tt_number_not_valid1) + for tt_number, is_valid in generate_tt_numbers: + if is_valid: + assert validate_tt_number(tt_number) == tt_number + else: + err_msg = ( + f"The given TT number: {tt_number} is not valid. " + f" A valid TT number starts with 'TT#' followed by 16 digits." + ) + + with pytest.raises(ValueError, match=err_msg): + validate_tt_number(tt_number) -- GitLab