Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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