def test_servicegroup_bindings_handling(self): set_module_args( dict( nitro_user='******', nitro_pass='******', nsip='192.0.2.1', state='present', save_config=False, )) from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_lb_vserver lb_vserver_proxy_mock = Mock() configured_dict = { 'first': Mock(), 'second': Mock(has_equal_attributes=Mock(return_value=False)), } actual_dict = { 'second': Mock(), 'third': Mock(), } client_mock = Mock() with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_lb_vserver', get_nitro_client=Mock(return_value=client_mock), lb_vserver_exists=Mock(side_effect=[True, True]), lb_vserver_identical=Mock(side_effect=[False, True]), servicegroup_bindings_identical=Mock( side_effect=[False, True]), service_bindings_identical=Mock(side_effect=[True, True]), get_configured_servicegroup_bindings=Mock( return_value=configured_dict), get_actual_servicegroup_bindings=Mock( return_value=actual_dict), ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), ensure_feature_is_enabled=Mock(return_value=True), do_state_change=Mock(return_value=Mock(errorcode=0)), get_immutables_intersection=(Mock(return_value=[])), ): self.module = netscaler_lb_vserver result = self.exited() configured_dict['first'].assert_has_calls([call.add()]) configured_dict['second'].assert_has_calls( [call.has_equal_attributes(actual_dict['second']), call.add()]) actual_dict['second'].assert_has_calls( [call.delete(client_mock, actual_dict['second'])]) actual_dict['third'].assert_has_calls( [call.delete(client_mock, actual_dict['third'])]) self.assertTrue(result['changed'])
def test_create_non_existing_servicegroup(self): self.set_module_state('present') from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_servicegroup servicegroup_proxy_mock = MagicMock() attrs = { 'diff_object.return_value': {}, } servicegroup_proxy_mock.configure_mock(**attrs) m = MagicMock(return_value=servicegroup_proxy_mock) servicegroup_exists_mock = Mock(side_effect=[False, True]) servicegroup_servicegroupmember_binding_mock = Mock(count=Mock( return_value=0)) with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_servicegroup', ConfigProxy=m, servicegroup_exists=servicegroup_exists_mock, servicemembers_identical=Mock(side_effect=[False, True]), do_state_change=Mock(return_value=Mock(errorcode=0)), servicegroup_servicegroupmember_binding= servicegroup_servicegroupmember_binding_mock, nitro_exception=self.MockException, ): self.module = netscaler_servicegroup result = self.exited() servicegroup_proxy_mock.assert_has_calls([call.add()]) self.assertTrue(result['changed'], msg='Change not recorded')
def test_create_new_lb_vserver_workflow(self): set_module_args( dict( nitro_user='******', nitro_pass='******', nsip='192.0.2.1', state='present', save_config=False, )) from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_lb_vserver lb_vserver_proxy_mock = Mock() with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_lb_vserver', get_nitro_client=Mock(return_value=Mock()), lb_vserver_exists=Mock(side_effect=[False, True]), lb_vserver_identical=Mock(side_effect=[True]), servicegroup_bindings_identical=Mock(side_effect=[True, True]), service_bindings_identical=Mock(side_effect=[True, True]), do_state_change=Mock(return_value=Mock(errorcode=0)), ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), ensure_feature_is_enabled=Mock(return_value=True), ): self.module = netscaler_lb_vserver result = self.exited() lb_vserver_proxy_mock.assert_has_calls([call.add()]) self.assertTrue(result['changed'])
def test_new_cs_action_execution_flow(self): set_module_args( dict( nitro_user='******', nitro_pass='******', nsip='192.0.2.1', state='present', )) from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_cs_action client_mock = Mock() m = Mock(return_value=client_mock) server_proxy_attrs = { 'diff_object.return_value': {}, } cs_action_proxy_mock = Mock() cs_action_proxy_mock.configure_mock(**server_proxy_attrs) config_proxy_mock = Mock(return_value=cs_action_proxy_mock) with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_cs_action', get_nitro_client=m, action_exists=Mock(side_effect=[False, True]), action_identical=Mock(side_effect=[True]), ensure_feature_is_enabled=Mock(return_value=True), ConfigProxy=config_proxy_mock, ): self.module = netscaler_cs_action self.exited() cs_action_proxy_mock.assert_has_calls([call.add()])
def test_new_gslb_site_execution_flow(self): set_module_args( dict( nitro_user='******', nitro_pass='******', nsip='192.0.2.1', state='present', )) from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_gslb_service client_mock = Mock() m = Mock(return_value=client_mock) glsb_service_proxy_attrs = { 'diff_object.return_value': {}, } gslb_service_proxy_mock = Mock() gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_gslb_service', get_nitro_client=m, gslb_service_exists=Mock(side_effect=[False, True]), gslb_service_identical=Mock(side_effect=[True]), nitro_exception=self.MockException, ensure_feature_is_enabled=Mock(), monkey_patch_nitro_api=Mock(), ConfigProxy=config_proxy_mock, ): self.module = netscaler_gslb_service self.exited() gslb_service_proxy_mock.assert_has_calls([call.add()])
def test_create_non_existing_cs_policy(self): self.set_module_state('present') from ansible_collections.notstdlib.moveitallout.plugins.modules import netscaler_cs_policy cs_policy_mock = MagicMock() attrs = { 'diff_object.return_value': {}, } cs_policy_mock.configure_mock(**attrs) m = MagicMock(return_value=cs_policy_mock) policy_exists_mock = Mock(side_effect=[False, True]) with patch.multiple( 'ansible_collections.notstdlib.moveitallout.plugins.modules.netscaler_cs_policy', ConfigProxy=m, policy_exists=policy_exists_mock, nitro_exception=self.MockException, ensure_feature_is_enabled=Mock(), ): self.module = netscaler_cs_policy result = self.exited() cs_policy_mock.assert_has_calls([call.add()]) self.assertTrue(result['changed'], msg='Change not recorded')