def test_model_cannot_add_two_people_with_same_name(empty_model: Model): """Ensure duplicate people are not allowed.""" empty_model.add_person(name="Bob") with pytest.raises( ValueError, match="A person with the name 'Bob' already exists in the model." ): empty_model.add_person(name="Bob")
def test_add_nearest_neighbours(): """Test basic behaviour of add_nearest_neighbours.""" model = Model() sys1 = model.add_software_system(name="System 1") sys2 = model.add_software_system(name="System 2") person = model.add_person(name="Person 1") sys1.uses(sys2) person.uses(sys1) # Check neighbours from outbound relationships view = DerivedView(software_system=sys1, description="") view.add_nearest_neighbours(sys1, SoftwareSystem) assert any((elt_view.element is sys1 for elt_view in view.element_views)) assert any((elt_view.element is sys2 for elt_view in view.element_views)) assert not any( (elt_view.element is person for elt_view in view.element_views)) assert len(view.relationship_views) == 1 # Check neighbours from inbound relationships view = DerivedView(software_system=sys1, description="") view.add_nearest_neighbours(sys2, SoftwareSystem) assert any((elt_view.element is sys1 for elt_view in view.element_views)) assert any((elt_view.element is sys2 for elt_view in view.element_views)) assert not any( (elt_view.element is person for elt_view in view.element_views)) assert len(view.relationship_views) == 1