@@ -72,6 +72,29 @@ def default_device(mock_docker_container):
7272 return device
7373
7474
75+ @pytest .fixture ()
76+ @mock .patch ("docker.models.containers.Container" )
77+ def only_bridged_device (mock_docker_container ):
78+ device = Machine (Lab ('Default scenario' ), "bridged_device" )
79+ device .add_meta ("bridged" , True )
80+ device .add_meta ("bridged_iface" , 0 )
81+ device .api_object = mock_docker_container
82+ mock_docker_container .status = "running"
83+ return device
84+
85+
86+ @pytest .fixture ()
87+ @mock .patch ("docker.models.containers.Container" )
88+ def bridged_device (mock_docker_container , default_link ):
89+ device = Machine (Lab ('Default scenario' ), "bridged_device" )
90+ device .add_interface (default_link )
91+ device .add_meta ("bridged" , True )
92+ device .api_object = mock_docker_container
93+ mock_docker_container .labels = {'bridged_iface' : 1 }
94+ mock_docker_container .status = "running"
95+ return device
96+
97+
7598@pytest .fixture ()
7699def default_link ():
77100 from src .Kathara .model .Link import Link
@@ -318,15 +341,51 @@ def test_connect_machine_to_link_one_link(mock_connect_interface_machine, mock_d
318341 mock_connect_interface_machine .assert_called_once_with (default_device , interface )
319342
320343
344+ @mock .patch ("src.Kathara.manager.docker.DockerManager.DockerManager.deploy_link" )
345+ @mock .patch ("src.Kathara.manager.docker.DockerMachine.DockerMachine.connect_interface" )
346+ def test_connect_machine_to_link_one_link_only_bridged (mock_connect_interface_machine , mock_deploy_link , docker_manager ,
347+ only_bridged_device , default_link ):
348+ docker_manager .connect_machine_to_link (only_bridged_device , default_link )
349+ interface = only_bridged_device .interfaces [1 ]
350+ mock_deploy_link .assert_called_once_with (default_link )
351+ mock_connect_interface_machine .assert_called_once_with (only_bridged_device , interface )
352+
353+
354+ @mock .patch ("src.Kathara.manager.docker.DockerManager.DockerManager.deploy_link" )
355+ @mock .patch ("src.Kathara.manager.docker.DockerMachine.DockerMachine.connect_interface" )
356+ def test_connect_machine_to_link_one_link_only_bridged_two_connect (mock_connect_interface_machine , mock_deploy_link ,
357+ docker_manager , only_bridged_device , default_link ,
358+ default_link_b ):
359+ docker_manager .connect_machine_to_link (only_bridged_device , default_link )
360+ interface_a = only_bridged_device .interfaces [1 ]
361+ mock_deploy_link .assert_called_with (default_link )
362+ mock_connect_interface_machine .assert_called_with (only_bridged_device , interface_a )
363+
364+ docker_manager .connect_machine_to_link (only_bridged_device , default_link_b )
365+ interface_b = only_bridged_device .interfaces [2 ]
366+ mock_deploy_link .assert_called_with (default_link_b )
367+ mock_connect_interface_machine .assert_called_with (only_bridged_device , interface_b )
368+
369+
370+ @mock .patch ("src.Kathara.manager.docker.DockerManager.DockerManager.deploy_link" )
371+ @mock .patch ("src.Kathara.manager.docker.DockerMachine.DockerMachine.connect_interface" )
372+ def test_connect_machine_to_link_one_link_one_iface_and_bridged (mock_connect_interface_machine , mock_deploy_link ,
373+ docker_manager ,
374+ bridged_device , default_link_b ):
375+ docker_manager .connect_machine_to_link (bridged_device , default_link_b )
376+ interface = bridged_device .interfaces [2 ]
377+ assert interface .link == default_link_b
378+ mock_deploy_link .assert_called_once_with (default_link_b )
379+ mock_connect_interface_machine .assert_called_once_with (bridged_device , interface )
380+
381+
321382@mock .patch ("src.Kathara.manager.docker.DockerManager.DockerManager.deploy_link" )
322383@mock .patch ("src.Kathara.manager.docker.DockerMachine.DockerMachine.connect_interface" )
323384def test_connect_machine_to_link_machine_collision_domain_error (mock_connect_interface_machine , mock_deploy_link ,
324385 docker_manager , default_device , default_link ):
325386 docker_manager .connect_machine_to_link (default_device , default_link )
326-
327387 with pytest .raises (MachineCollisionDomainError ):
328388 docker_manager .connect_machine_to_link (default_device , default_link )
329-
330389 mock_connect_interface_machine .assert_called_once ()
331390 mock_deploy_link .assert_called_once ()
332391
0 commit comments