Beispiel #1
0
    def test_ensure_group_is_present_parent_and_group_exist(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"
        mock_parent.Create.return_value = mock_group

        mock_grandparent = mock.MagicMock()
        mock_grandparent.name = "MockGrandparent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {
            mock_parent.name: (mock_parent, mock_grandparent),
            mock_group.name: (mock_group, mock_parent)
        }

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup

        # Test
        result_changed, result_group = under_test._ensure_group_is_present(
            group_name=mock_group.name,
            parent_name=mock_parent.name,
            group_description="Mock Description")
        # Assert Expected Result
        self.assertFalse(result_changed)
        self.assertEqual(result_group, mock_group)
        self.assertFalse(self.module.fail_json.called)
    def test_process_request_state_absent(self, mock_set_cres, mock_clc_sdk):
        self.module.params = {
            'location': 'UC1',
            'name': 'MyCoolGroup',
            'parent': 'Default Group',
            'description': 'Test Group',
            'state': 'absent',
            'wait': 'True'
        }
        mock_group = mock.MagicMock()
        mock_group = {"name": "MyCoolGroup"}
        mock_response = mock.MagicMock()

        under_test = ClcGroup(self.module)
        under_test.set_clc_credentials_from_env = mock.MagicMock()
        under_test._ensure_group_is_absent = mock.MagicMock(
            return_value=(
                True,
                mock_group,
                mock_response))

        under_test.process_request()

        self.assertFalse(self.module.fail_json.called)
        self.module.exit_json.assert_called_once_with(
            changed=True,
            group='MyCoolGroup')
Beispiel #3
0
    def test_ensure_group_is_present_parent_not_exist(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup

        # Test
        result_changed, result_group = under_test._ensure_group_is_present(
            group_name=mock_group.name,
            parent_name=mock_parent.name,
            group_description="Mock Description")
        # Assert Expected Result
        self.module.fail_json.assert_called_once_with(
            msg="parent group: " + mock_parent.name + " does not exist")
    def test_ensure_group_is_present_parent_not_exist(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup

        # Test
        result_changed, result_group = under_test._ensure_group_is_present(
            group_name=mock_group.name, parent_name=mock_parent.name, group_description="Mock Description")
        # Assert Expected Result
        self.module.fail_json.assert_called_once_with(
            msg="parent group: " +
            mock_parent.name +
            " does not exist")
    def test_ensure_group_is_present_parent_and_group_exist(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"
        mock_parent.Create.return_value = mock_group

        mock_grandparent = mock.MagicMock()
        mock_grandparent.name = "MockGrandparent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {mock_parent.name: (mock_parent, mock_grandparent),
                           mock_group.name: (mock_group, mock_parent)}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup

        # Test
        result_changed, result_group = under_test._ensure_group_is_present(
            group_name=mock_group.name, parent_name=mock_parent.name, group_description="Mock Description")
        # Assert Expected Result
        self.assertFalse(result_changed)
        self.assertEqual(result_group, mock_group)
        self.assertFalse(self.module.fail_json.called)
    def test_delete_group_exception(self):
        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "test"

        error = CLCException('Failed')
        error.response_text = 'group failed'
        mock_group.Delete.side_effect = error

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_grandparent = mock.MagicMock()
        mock_grandparent.name = "MockGrandparent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {mock_parent.name: (mock_parent, mock_grandparent),
                           mock_group.name: (mock_group, mock_parent)}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup
        ret = under_test._delete_group('test')
        self.assertIsNone(ret, 'The return value should be None')
        self.module.fail_json.assert_called_once_with(msg='Failed to delete group :test. group failed')
Beispiel #7
0
    def test_delete_group_exception(self):
        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "test"

        error = CLCException('Failed')
        error.response_text = 'group failed'
        mock_group.Delete.side_effect = error

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_grandparent = mock.MagicMock()
        mock_grandparent.name = "MockGrandparent"

        mock_rootgroup = mock.MagicMock()
        mock_rootgroup.name = "MockRootGroup"

        mock_group_dict = {
            mock_parent.name: (mock_parent, mock_grandparent),
            mock_group.name: (mock_group, mock_parent)
        }

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict
        under_test.root_group = mock_rootgroup
        ret = under_test._delete_group('test')
        self.assertIsNone(ret, 'The return value should be None')
        self.module.fail_json.assert_called_once_with(
            msg='Failed to delete group :test. group failed')
 def test_set_clc_credentials_from_env(self, mock_clc_sdk):
     with patch.dict('os.environ', {'CLC_V2_API_TOKEN': 'dummyToken',
                                    'CLC_ACCT_ALIAS': 'TEST'}):
         under_test = ClcGroup(self.module)
         under_test._set_clc_credentials_from_env()
     self.assertEqual(under_test.clc._LOGIN_TOKEN_V2, 'dummyToken')
     self.assertFalse(mock_clc_sdk.v2.SetCredentials.called)
     self.assertEqual(self.module.fail_json.called, False)
    def test_clc_set_credentials_w_creds(self):
        with patch.dict('os.environ', {'CLC_V2_API_USERNAME': '******', 'CLC_V2_API_PASSWD': 'falcon'}):
            with patch.object(clc_group, 'clc_sdk') as mock_clc_sdk:
                under_test = ClcGroup(self.module)
                under_test._set_clc_credentials_from_env()

        mock_clc_sdk.v2.SetCredentials.assert_called_once_with(
            api_username='******',
            api_passwd='falcon')
Beispiel #10
0
 def test_set_clc_credentials_from_env(self, mock_clc_sdk):
     with patch.dict('os.environ', {
             'CLC_V2_API_TOKEN': 'dummyToken',
             'CLC_ACCT_ALIAS': 'TEST'
     }):
         under_test = ClcGroup(self.module)
         under_test._set_clc_credentials_from_env()
     self.assertEqual(under_test.clc._LOGIN_TOKEN_V2, 'dummyToken')
     self.assertFalse(mock_clc_sdk.v2.SetCredentials.called)
     self.assertEqual(self.module.fail_json.called, False)
Beispiel #11
0
 def test_walk_groups_recursive(self, mock_clc_sdk):
     mock_child_group = mock.MagicMock()
     sub_group = mock.MagicMock()
     grp1 = mock.MagicMock()
     grp1.type = 'default'
     grp2 = mock.MagicMock()
     sub_group.groups = [grp1, grp2]
     mock_child_group.Subgroups.return_value = sub_group
     under_test = ClcGroup(self.module)
     res = under_test._walk_groups_recursive('parent', mock_child_group)
     self.assertIsNotNone(res)
Beispiel #12
0
    def test_clc_set_credentials_w_creds(self):
        with patch.dict('os.environ', {
                'CLC_V2_API_USERNAME': '******',
                'CLC_V2_API_PASSWD': 'falcon'
        }):
            with patch.object(clc_group, 'clc_sdk') as mock_clc_sdk:
                under_test = ClcGroup(self.module)
                under_test._set_clc_credentials_from_env()

        mock_clc_sdk.v2.SetCredentials.assert_called_once_with(
            api_username='******', api_passwd='falcon')
 def test_walk_groups_recursive(self, mock_clc_sdk):
     mock_child_group = mock.MagicMock()
     sub_group = mock.MagicMock()
     grp1 = mock.MagicMock()
     grp1.type = 'default'
     grp2 = mock.MagicMock()
     sub_group.groups = [grp1, grp2]
     mock_child_group.Subgroups.return_value = sub_group
     under_test = ClcGroup(self.module)
     res = under_test._walk_groups_recursive('parent', mock_child_group)
     self.assertIsNotNone(res)
    def test_override_v2_api_url_from_environment(self):
        original_url = clc_sdk.defaults.ENDPOINT_URL_V2
        under_test = ClcGroup(self.module)

        under_test._set_clc_credentials_from_env()
        self.assertEqual(clc_sdk.defaults.ENDPOINT_URL_V2, original_url)

        with patch.dict('os.environ', {'CLC_V2_API_URL': 'http://unittest.example.com/'}):
            under_test._set_clc_credentials_from_env()

        self.assertEqual(
            clc_sdk.defaults.ENDPOINT_URL_V2,
            'http://unittest.example.com/')

        clc_sdk.defaults.ENDPOINT_URL_V2 = original_url
Beispiel #15
0
 def test_wait_for_requests_to_complete_no_wait(self):
     mock_request_list = self.build_mock_request_list(status='failed')
     params = {'wait': False}
     self.module.params = params
     under_test = ClcGroup(self.module)._wait_for_requests_to_complete
     under_test(mock_request_list)
     self.assertFalse(self.module.fail_json.called)
    def test_ensure_group_is_absent_group_not_exists(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_group_dict = {}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict

        # Test
        result_changed, result_group, response = under_test._ensure_group_is_absent(
            group_name=mock_group.name, parent_name=mock_parent.name)
        # Assert Expected Result
        self.assertEqual(result_changed, False)
        self.assertFalse(mock_group.Delete.called)
Beispiel #17
0
    def test_ensure_group_is_absent_group_not_exists(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_group_dict = {}

        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict

        # Test
        result_changed, result_group, response = under_test._ensure_group_is_absent(
            group_name=mock_group.name, parent_name=mock_parent.name)
        # Assert Expected Result
        self.assertEqual(result_changed, False)
        self.assertFalse(mock_group.Delete.called)
    def test_ensure_group_is_absent_group_exists(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_group_dict = {mock_group.name: (mock_group, mock_parent)}

        self.module.check_mode = False
        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict

        # Test
        result_changed, result_group, result = under_test._ensure_group_is_absent(
            group_name=mock_group.name, parent_name=mock_parent.name)
        # Assert Expected Result
        self.assertEqual(result_changed, True)
        assert mock_group.Delete.call_count == 1
Beispiel #19
0
    def test_ensure_group_is_absent_group_exists(self):

        # Setup Test
        mock_group = mock.MagicMock()
        mock_group.name = "MockGroup"

        mock_parent = mock.MagicMock()
        mock_parent.name = "MockParent"

        mock_group_dict = {mock_group.name: (mock_group, mock_parent)}

        self.module.check_mode = False
        under_test = ClcGroup(self.module)
        under_test.group_dict = mock_group_dict

        # Test
        result_changed, result_group, result = under_test._ensure_group_is_absent(
            group_name=mock_group.name, parent_name=mock_parent.name)
        # Assert Expected Result
        self.assertEqual(result_changed, True)
        assert mock_group.Delete.call_count == 1
Beispiel #20
0
    def test_override_v2_api_url_from_environment(self):
        original_url = clc_sdk.defaults.ENDPOINT_URL_V2
        under_test = ClcGroup(self.module)

        under_test._set_clc_credentials_from_env()
        self.assertEqual(clc_sdk.defaults.ENDPOINT_URL_V2, original_url)

        with patch.dict('os.environ',
                        {'CLC_V2_API_URL': 'http://unittest.example.com/'}):
            under_test._set_clc_credentials_from_env()

        self.assertEqual(clc_sdk.defaults.ENDPOINT_URL_V2,
                         'http://unittest.example.com/')

        clc_sdk.defaults.ENDPOINT_URL_V2 = original_url
Beispiel #21
0
    def test_process_request_state_present(self, mock_set_creds, mock_clc_sdk):
        self.module.params = {
            'location': 'UC1',
            'name': 'MyCoolGroup',
            'parent': 'Default Group',
            'description': 'Test Group',
            'state': 'present',
            'wait': 'True'
        }
        mock_group = mock.MagicMock()
        mock_group.data = {"name": "MyCoolGroup"}

        under_test = ClcGroup(self.module)
        under_test.set_clc_credentials_from_env = mock.MagicMock()
        under_test._ensure_group_is_present = mock.MagicMock(
            return_value=(True, mock_group))

        under_test.process_request()

        self.assertFalse(self.module.fail_json.called)
        self.module.exit_json.assert_called_once_with(changed=True,
                                                      group=mock_group.data)
Beispiel #22
0
    def test_set_user_agent(self, mock_clc_sdk):
        clc_group.__version__ = "1"
        ClcGroup._set_user_agent(mock_clc_sdk)

        self.assertTrue(mock_clc_sdk.SetRequestsSession.called)
Beispiel #23
0
 def test_define_argument_spec(self):
     result = ClcGroup._define_module_argument_spec()
     self.assertIsInstance(result, dict)
Beispiel #24
0
 def test_wait_for_requests_to_complete_req_successful(self):
     mock_request_list = self.build_mock_request_list(status='succeeded')
     under_test = ClcGroup(self.module)._wait_for_requests_to_complete
     under_test(mock_request_list)
     self.assertFalse(self.module.fail_json.called)
    def test_set_user_agent(self, mock_clc_sdk):
        clc_group.__version__ = "1"
        ClcGroup._set_user_agent(mock_clc_sdk)

        self.assertTrue(mock_clc_sdk.SetRequestsSession.called)
    def test_clc_set_credentials_w_no_creds(self):
        with patch.dict('os.environ', {}, clear=True):
            under_test = ClcGroup(self.module)
            under_test._set_clc_credentials_from_env()

        self.assertEqual(self.module.fail_json.called, True)
Beispiel #27
0
    def test_clc_set_credentials_w_no_creds(self):
        with patch.dict('os.environ', {}, clear=True):
            under_test = ClcGroup(self.module)
            under_test._set_clc_credentials_from_env()

        self.assertEqual(self.module.fail_json.called, True)
Beispiel #28
0
 def test_wait_for_requests_to_complete_req_failed(self):
     mock_request_list = self.build_mock_request_list(status='failed')
     under_test = ClcGroup(self.module)._wait_for_requests_to_complete
     under_test(mock_request_list)
     self.module.fail_json.assert_called_once_with(
         msg='Unable to process group request')
 def test_define_argument_spec(self):
     result = ClcGroup._define_module_argument_spec()
     self.assertIsInstance(result, dict)