17
17
18
18
from structurizr import Workspace
19
19
from structurizr .model import SoftwareSystem
20
+ from structurizr .model .container_instance import ContainerInstance
20
21
from structurizr .view .deployment_view import DeploymentView , DeploymentViewIO
21
22
22
23
@@ -224,6 +225,22 @@ def test_deployment_view_add_relationship(empty_workspace: Workspace):
224
225
assert len (deployment_view .relationship_views ) == 1
225
226
226
227
228
+ def test_deployment_view_adding_system_instance (empty_workspace : Workspace ):
229
+ """Test that `SoftwareSystemInstance` is supported within deployment view."""
230
+ model = empty_workspace .model
231
+ software_system = model .add_software_system ("Software System" )
232
+ deployment_node = model .add_deployment_node ("Deployment Node" )
233
+ software_system_instance = deployment_node .add_software_system (software_system )
234
+
235
+ deployment_view = empty_workspace .views .create_deployment_view (
236
+ software_system = software_system , key = "deployment" , description = "Description"
237
+ )
238
+ deployment_view .add_default_elements ()
239
+
240
+ views = deployment_view .element_views
241
+ assert any ([x .element is software_system_instance for x in views ])
242
+
243
+
227
244
def test_add_animation_step_raises_if_no_elements (empty_workspace : Workspace ):
228
245
"""Check error handling if no elements passed."""
229
246
deployment_view = empty_workspace .views .create_deployment_view (
@@ -233,6 +250,26 @@ def test_add_animation_step_raises_if_no_elements(empty_workspace: Workspace):
233
250
deployment_view .add_animation ()
234
251
235
252
253
+ def test_deployment_view_find_deployment_node (empty_workspace : Workspace ):
254
+ """Test _find_deployment_node."""
255
+ model = empty_workspace .model
256
+ software_system = model .add_software_system ("Software System" )
257
+ container1 = software_system .add_container ("Container 1" )
258
+ node1 = model .add_deployment_node ("Deployment Node 1" )
259
+ container_instance1 = node1 .add_container (container1 )
260
+ container2 = software_system .add_container ("Container 2" )
261
+ container_instance2 = ContainerInstance (container = container2 , instance_id = 1 )
262
+ # Explicitly we don't add container_instance2 to a deployment node
263
+
264
+ deployment_view = empty_workspace .views .create_deployment_view (
265
+ software_system = software_system , key = "deployment" , description = "Description"
266
+ )
267
+ deployment_view += node1
268
+
269
+ assert deployment_view ._find_deployment_node (container_instance1 ) is node1
270
+ assert deployment_view ._find_deployment_node (container_instance2 ) is None
271
+
272
+
236
273
def test_add_animation_step (empty_workspace : Workspace ):
237
274
"""Check happy path."""
238
275
model = empty_workspace .model
0 commit comments