Skip to content

Commit 1c487f9

Browse files
committed
Fix win tests
1 parent 195918f commit 1c487f9

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

tests/manager/docker/docker_machine_test.py

+137
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ def test_create_privileged(mock_get_current_user_name, mock_setting_get_instance
229229
assert not mock_copy_files.called
230230

231231

232+
@mock.patch("src.Kathara.utils._platform", "linux")
232233
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.get_machines_api_objects_by_filters")
233234
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.copy_files")
234235
@mock.patch("src.Kathara.setting.Setting.Setting.get_instance")
@@ -358,6 +359,71 @@ def __init__(self, name):
358359
assert not mock_copy_files.called
359360

360361

362+
@mock.patch("src.Kathara.utils._platform", "win32")
363+
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.get_machines_api_objects_by_filters")
364+
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.copy_files")
365+
@mock.patch("src.Kathara.setting.Setting.Setting.get_instance")
366+
@mock.patch("src.Kathara.utils.get_current_user_name")
367+
def test_create_interface_win(mock_get_current_user_name, mock_setting_get_instance,
368+
mock_copy_files, mock_get_machines_api_objects_by_filters, docker_machine,
369+
default_device):
370+
class LinkApiObj:
371+
def __init__(self, name):
372+
self.name = name
373+
374+
link = Link(default_device.lab, "A")
375+
link.api_object = LinkApiObj("link_a")
376+
377+
default_device.add_interface(link, 0)
378+
379+
docker_machine.client.api.create_endpoint_config.return_value = {}
380+
mock_get_machines_api_objects_by_filters.return_value = []
381+
mock_get_current_user_name.return_value = "test-user"
382+
383+
setting_mock = Mock()
384+
setting_mock.configure_mock(**{
385+
'shared_cds': SharedCollisionDomainsOption.NOT_SHARED,
386+
'device_prefix': 'dev_prefix',
387+
"device_shell": '/bin/bash',
388+
'enable_ipv6': False,
389+
'remote_url': None,
390+
'hosthome_mount': False,
391+
'shared_mount': False
392+
})
393+
mock_setting_get_instance.return_value = setting_mock
394+
docker_machine.create(default_device)
395+
docker_machine.client.containers.create.assert_called_once_with(
396+
image='kathara/test',
397+
name='dev_prefix_test-user_test_device_9pe3y6IDMwx4PfOPu5mbNg',
398+
hostname='test_device',
399+
cap_add=['NET_ADMIN', 'NET_RAW', 'NET_BROADCAST', 'NET_BIND_SERVICE', 'SYS_ADMIN'],
400+
privileged=False,
401+
network="link_a",
402+
network_mode='bridge',
403+
networking_config={"link_a": {}},
404+
sysctls={'net.ipv4.conf.all.rp_filter': 0,
405+
'net.ipv4.conf.default.rp_filter': 0,
406+
'net.ipv4.conf.lo.rp_filter': 0,
407+
'net.ipv4.conf.eth0.rp_filter': 0,
408+
'net.ipv4.ip_forward': 1,
409+
'net.ipv4.icmp_ratelimit': 0,
410+
},
411+
environment={},
412+
mem_limit='64m',
413+
nano_cpus=2000000000,
414+
ports=None,
415+
tty=True,
416+
stdin_open=True,
417+
detach=True,
418+
volumes={},
419+
labels={'name': 'test_device', 'lab_hash': '9pe3y6IDMwx4PfOPu5mbNg', 'user': 'test-user', 'app': 'kathara',
420+
'shell': '/bin/bash'}
421+
)
422+
423+
assert not mock_copy_files.called
424+
425+
426+
@mock.patch("src.Kathara.utils._platform", "linux")
361427
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.get_machines_api_objects_by_filters")
362428
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.copy_files")
363429
@mock.patch("src.Kathara.setting.Setting.Setting.get_instance")
@@ -502,6 +568,77 @@ def __init__(self, name):
502568
assert not mock_copy_files.called
503569

504570

571+
@mock.patch("src.Kathara.utils._platform", "win32")
572+
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.get_machines_api_objects_by_filters")
573+
@mock.patch("src.Kathara.manager.docker.DockerMachine.DockerMachine.copy_files")
574+
@mock.patch("src.Kathara.setting.Setting.Setting.get_instance")
575+
@mock.patch("src.Kathara.utils.get_current_user_name")
576+
def test_create_interface_mac_addr_win(mock_get_current_user_name, mock_setting_get_instance,
577+
mock_copy_files, mock_get_machines_api_objects_by_filters, docker_machine,
578+
default_device):
579+
class LinkApiObj:
580+
def __init__(self, name):
581+
self.name = name
582+
583+
link = Link(default_device.lab, "A")
584+
link.api_object = LinkApiObj("link_a")
585+
586+
expected_mac_addr = "00:00:00:00:ff:ff"
587+
default_device.add_interface(link, 0, expected_mac_addr)
588+
589+
docker_machine.client.api.create_endpoint_config.return_value = {
590+
'driver_opt': {'kathara.mac_addr': expected_mac_addr}
591+
}
592+
mock_get_machines_api_objects_by_filters.return_value = []
593+
mock_get_current_user_name.return_value = "test-user"
594+
595+
setting_mock = Mock()
596+
setting_mock.configure_mock(**{
597+
'shared_cds': SharedCollisionDomainsOption.NOT_SHARED,
598+
'device_prefix': 'dev_prefix',
599+
"device_shell": '/bin/bash',
600+
'enable_ipv6': False,
601+
'remote_url': None,
602+
'hosthome_mount': False,
603+
'shared_mount': False
604+
})
605+
mock_setting_get_instance.return_value = setting_mock
606+
docker_machine.create(default_device)
607+
608+
docker_machine.client.api.create_endpoint_config.assert_called_once_with(
609+
driver_opt={'kathara.mac_addr': expected_mac_addr}
610+
)
611+
docker_machine.client.containers.create.assert_called_once_with(
612+
image='kathara/test',
613+
name='dev_prefix_test-user_test_device_9pe3y6IDMwx4PfOPu5mbNg',
614+
hostname='test_device',
615+
cap_add=['NET_ADMIN', 'NET_RAW', 'NET_BROADCAST', 'NET_BIND_SERVICE', 'SYS_ADMIN'],
616+
privileged=False,
617+
network="link_a",
618+
network_mode='bridge',
619+
networking_config={"link_a": {'driver_opt': {'kathara.mac_addr': expected_mac_addr}}},
620+
sysctls={'net.ipv4.conf.all.rp_filter': 0,
621+
'net.ipv4.conf.default.rp_filter': 0,
622+
'net.ipv4.conf.lo.rp_filter': 0,
623+
'net.ipv4.conf.eth0.rp_filter': 0,
624+
'net.ipv4.ip_forward': 1,
625+
'net.ipv4.icmp_ratelimit': 0,
626+
},
627+
environment={},
628+
mem_limit='64m',
629+
nano_cpus=2000000000,
630+
ports=None,
631+
tty=True,
632+
stdin_open=True,
633+
detach=True,
634+
volumes={},
635+
labels={'name': 'test_device', 'lab_hash': '9pe3y6IDMwx4PfOPu5mbNg', 'user': 'test-user', 'app': 'kathara',
636+
'shell': '/bin/bash'}
637+
)
638+
639+
assert not mock_copy_files.called
640+
641+
505642
#
506643
# TEST: start
507644
#

0 commit comments

Comments
 (0)