From 93708a5336af7dcb745068896dd21d633f286b69 Mon Sep 17 00:00:00 2001 From: Elliot <3186037+elliot-100@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:46:47 +0100 Subject: [PATCH] Add tests for lookup errors if empty Members|Roles|Subgroups --- tests/test_group.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/test_group.py b/tests/test_group.py index 6591be8..c3c8195 100644 --- a/tests/test_group.py +++ b/tests/test_group.py @@ -54,6 +54,18 @@ def test_member_by_id__unmatched_id_raises_lookup_error( my_member = my_group.member_by_id("DUMMY_ID") # act +def test_member_by_id__no_members_raises_lookup_error( + simple_group_data: DictFromJSON, +) -> None: + """Test that LookupError is raised when there are no Members.""" + # arrange + my_group = Group.model_validate(simple_group_data) + # assert + assert my_group.members == [] + with pytest.raises(LookupError): + my_member = my_group.member_by_id("DUMMY_ID") # act + + def test_role_by_id__happy_path(complex_group_data: DictFromJSON) -> None: """Test that Role is returned from a valid uid.""" # arrange @@ -75,6 +87,18 @@ def test_role_by_id__unmatched_id_raises_lookup_error( my_role = my_group.role_by_id("DUMMY_ID") # act +def test_role_by_id__no_roles_raises_lookup_error( + simple_group_data: DictFromJSON, +) -> None: + """Test that LookupError is raised when there are no Roles.""" + # arrange + my_group = Group.model_validate(simple_group_data) + # assert + assert my_group.roles == [] + with pytest.raises(LookupError): + my_role = my_group.role_by_id("DUMMY_ID") # act + + def test_subgroup_by_id__happy_path(complex_group_data: DictFromJSON) -> None: """Test that Subgroup is returned from a valid uid.""" # arrange @@ -96,6 +120,18 @@ def test_subgroup_by_id__unmatched_id_raises_lookup_error( my_subgroup = my_group.subgroup_by_id("DUMMY_ID") # act +def test_subgroup_by_id__no_subgroups_raises_lookup_error( + simple_group_data: DictFromJSON, +) -> None: + """Test that LookupError is raised when there are no Subgroups.""" + # arrange + my_group = Group.model_validate(simple_group_data) + # assert + assert my_group.subgroups == [] + with pytest.raises(LookupError): + my_subgroup = my_group.subgroup_by_id("DUMMY_ID") # act + + def test_members_by_subgroup__happy_path(complex_group_data: DictFromJSON) -> None: """Test that Members are returned from a valid Subgroup.""" # arrange