structurizr-python
structurizr-python copied to clipboard
Constrain elements that can be added to each view type
Checklist
- [X] There are no similar issues or pull requests for this yet.
Is your feature related to a problem? Please describe it.
In the Java implementation, each view class overrides checkElementCanBeAdded
which is defined abstractly in View
. Without having this, it is possible to add elements to a view that then would not be supported in Structurizr itself.
Describe the solution you would like.
Mirror the Java implementation with an abstract check_element_can_be_added
method in View
which each subtype overrides.
Additional context
from structurizr import Workspace
workspace = Workspace(name="Test", description="Test")
system = workspace.model.add_software_system(name="System 1")
container = system.add_container(name="Container 1")
view = workspace.views.create_container_view(key="con1", description="test", software_system=system)
# This should fail but doesn't
view.add(system)
I've added an xfail test in test_container_view to demonstrate this issue in PR #78.