def test_network_running(self): ''' network_running state test cases. ''' ret = {'name': 'mynet', 'changes': {}, 'result': True, 'comment': ''} define_mock = MagicMock(return_value=True) with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.network_info': MagicMock(return_value={}), 'virt.network_define': define_mock }): ret.update({'changes': {'mynet': 'Network defined and started'}, 'comment': 'Network mynet defined and started'}) self.assertDictEqual(virt.network_running('mynet', 'br2', 'bridge', vport='openvswitch', tag=180, autostart=False, connection='myconnection', username='******', password='******'), ret) define_mock.assert_called_with('mynet', 'br2', 'bridge', vport='openvswitch', tag=180, autostart=False, start=True, connection='myconnection', username='******', password='******') with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.network_info': MagicMock(return_value={'mynet': {'active': True}}), 'virt.network_define': define_mock, }): ret.update({'changes': {}, 'comment': 'Network mynet exists and is running'}) self.assertDictEqual(virt.network_running('mynet', 'br2', 'bridge'), ret) start_mock = MagicMock(return_value=True) with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.network_info': MagicMock(return_value={'mynet': {'active': False}}), 'virt.network_start': start_mock, 'virt.network_define': define_mock, }): ret.update({'changes': {'mynet': 'Network started'}, 'comment': 'Network mynet started'}) self.assertDictEqual(virt.network_running('mynet', 'br2', 'bridge', connection='myconnection', username='******', password='******'), ret) start_mock.assert_called_with('mynet', connection='myconnection', username='******', password='******') with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.network_info': MagicMock(return_value={}), 'virt.network_define': MagicMock(side_effect=self.mock_libvirt.libvirtError('Some error')) }): ret.update({'changes': {}, 'comment': 'Some error', 'result': False}) self.assertDictEqual(virt.network_running('mynet', 'br2', 'bridge'), ret)
def test_network_running_nochange(test): """ network_running state test cases, no change case case. """ with patch.dict(virt.__opts__, {"test": test}): define_mock = MagicMock(return_value=True) update_mock = MagicMock(return_value=False) with patch.dict( virt.__salt__, { "virt.network_info": MagicMock(return_value={ "mynet": { "active": True, "autostart": True } }), "virt.network_define": define_mock, "virt.network_update": update_mock, }, ): assert virt.network_running("mynet", "br2", "bridge") == { "name": "mynet", "changes": {}, "comment": "Network mynet unchanged and is running", "result": None if test else True, } assert update_mock.call_args_list == [ network_update_call("mynet", "br2", "bridge", test=True) ]
def test_network_running_stopped(test): """ network_running state test cases, network stopped case. """ with patch.dict(virt.__opts__, {"test": test}): define_mock = MagicMock(return_value=True) start_mock = MagicMock(return_value=True) update_mock = MagicMock(return_value=False) with patch.dict( virt.__salt__, { # pylint: disable=no-member "virt.network_info": MagicMock( return_value={"mynet": {"active": False, "autostart": True}} ), "virt.network_start": start_mock, "virt.network_define": define_mock, "virt.network_update": update_mock, }, ): assert virt.network_running( "mynet", "br2", "bridge", connection="myconnection", username="******", password="******", ) == { "name": "mynet", "changes": { "mynet": "Network started" }, "comment": "Network mynet unchanged and started", "result": None if test else True, } assert update_mock.call_args_list == [ network_update_call( "mynet", "br2", "bridge", connection="myconnection", username="******", password="******", test=True, ) ] if not test: start_mock.assert_called_with( "mynet", connection="myconnection", username="******", password="******", ) else: start_mock.assert_not_called()
def test_network_running_error(test): """ network_running state test cases, libvirt error case. """ with patch.dict(virt.__opts__, {"test": test}): with patch.dict( virt.__salt__, { "virt.network_info": MagicMock(side_effect=virt.libvirt.libvirtError("Some error")), }, ): assert virt.network_running("mynet", "br2", "bridge") == { "name": "mynet", "changes": {}, "comment": "Some error", "result": False, }
def test_network_running_not_existing(test): """ network_running state test cases, non-existing network case. """ with patch.dict(virt.__opts__, {"test": test}): define_mock = MagicMock(return_value=True) start_mock = MagicMock(return_value=True) # Non-existing network case with patch.dict( virt.__salt__, { "virt.network_info": MagicMock(side_effect=[{}, { "mynet": { "active": False } }]), "virt.network_define": define_mock, "virt.network_start": start_mock, }, ): assert virt.network_running( "mynet", "br2", "bridge", vport="openvswitch", tag=180, ipv4_config={ "cidr": "192.168.2.0/24", "dhcp_ranges": [ { "start": "192.168.2.10", "end": "192.168.2.25" }, { "start": "192.168.2.110", "end": "192.168.2.125" }, ], }, ipv6_config={ "cidr": "2001:db8:ca2:2::1/64", "dhcp_ranges": [ { "start": "2001:db8:ca2:1::10", "end": "2001:db8:ca2::1f" }, ], }, mtu=9000, domain={"name": "acme.lab"}, nat={"ports": { "start": 1024, "end": 2048 }}, interfaces="eth0 eth1", addresses="0000:01:02.4 0000:01:02.5", physical_function="eth4", dns={ "hosts": { "192.168.2.10": { "name": "web", "mac": "de:ad:be:ef:00:00" } } }, autostart=False, connection="myconnection", username="******", password="******", ) == { "name": "mynet", "changes": { "mynet": "Network defined and started" }, "comment": "Network mynet defined and started", "result": None if test else True, } if not test: define_mock.assert_called_with( "mynet", "br2", "bridge", vport="openvswitch", tag=180, autostart=False, start=False, ipv4_config={ "cidr": "192.168.2.0/24", "dhcp_ranges": [ { "start": "192.168.2.10", "end": "192.168.2.25" }, { "start": "192.168.2.110", "end": "192.168.2.125" }, ], }, ipv6_config={ "cidr": "2001:db8:ca2:2::1/64", "dhcp_ranges": [ { "start": "2001:db8:ca2:1::10", "end": "2001:db8:ca2::1f" }, ], }, mtu=9000, domain={"name": "acme.lab"}, nat={"ports": { "start": 1024, "end": 2048 }}, interfaces="eth0 eth1", addresses="0000:01:02.4 0000:01:02.5", physical_function="eth4", dns={ "hosts": { "192.168.2.10": { "name": "web", "mac": "de:ad:be:ef:00:00" } } }, connection="myconnection", username="******", password="******", ) start_mock.assert_called_with( "mynet", connection="myconnection", username="******", password="******", ) else: define_mock.assert_not_called() start_mock.assert_not_called()