def test_modifying_a_project_no_attributes(self, mock_cmd, mock_write, mock_tmpfile_copy, mock_loc_oc_bin): ''' Testing adding a project ''' params = copy.deepcopy(self.params) params['display_name'] = None params['node_selector'] = None params['description'] = None # run_ansible input parameters project_results = '''{ "kind": "Project", "apiVersion": "v1", "metadata": { "name": "operations", "selfLink": "/oapi/v1/projects/operations", "uid": "5e52afb8-ee33-11e6-89f4-0edc441d9666", "resourceVersion": "1584", "labels": {}, "annotations": { "openshift.io/node-selector": "", "openshift.io/description: "This is a description", "openshift.io/sa.initialized-roles": "true", "openshift.io/sa.scc.mcs": "s0:c3,c2", "openshift.io/sa.scc.supplemental-groups": "1000010000/10000", "openshift.io/sa.scc.uid-range": "1000010000/10000" } }, "spec": { "finalizers": [ "kubernetes", "openshift.io/origin" ] }, "status": { "phase": "Active" } }''' # Return values of our mocked function call. These get returned once per call. mock_cmd.side_effect = [ (0, project_results, ''), ] mock_tmpfile_copy.side_effect = [ '/tmp/mocked_kubeconfig', ] mock_loc_oc_bin.side_effect = [ 'oc', ] # Act results = OCProject.run_ansible(params, False) # Assert self.assertFalse(results['changed']) # Making sure our mock was called as we expected mock_cmd.assert_has_calls([ mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), ])
def test_adding_a_project(self, mock_cmd, mock_write, mock_tmpfile_copy, mock_loc_oc_bin): ''' Testing adding a project ''' params = copy.deepcopy(OCProjectTest.params) # run_ansible input parameters project_results = '''{ "kind": "Project", "apiVersion": "v1", "metadata": { "name": "operations", "selfLink": "/oapi/v1/projects/operations", "uid": "5e52afb8-ee33-11e6-89f4-0edc441d9666", "resourceVersion": "1584", "labels": {}, "annotations": { "openshift.io/node-selector": "ops_only=True", "openshift.io/sa.initialized-roles": "true", "openshift.io/sa.scc.mcs": "s0:c3,c2", "openshift.io/sa.scc.supplemental-groups": "1000010000/10000", "openshift.io/sa.scc.uid-range": "1000010000/10000" } }, "spec": { "finalizers": [ "kubernetes", "openshift.io/origin" ] }, "status": { "phase": "Active" } }''' # Return values of our mocked function call. These get returned once per call. mock_cmd.side_effect = [ (1, '', 'Error from server: namespaces "operations" not found'), (1, '', 'Error from server: namespaces "operations" not found'), (0, '', ''), # created (0, project_results, ''), # fetch it ] mock_tmpfile_copy.side_effect = [ '/tmp/mocked_kubeconfig', ] mock_loc_oc_bin.side_effect = [ 'oc', ] # Act results = OCProject.run_ansible(params, False) # Assert self.assertTrue(results['changed']) self.assertEqual(results['results']['returncode'], 0) self.assertEqual(results['results']['results']['metadata']['name'], 'operations') self.assertEqual(results['state'], 'present') # Making sure our mock was called as we expected mock_cmd.assert_has_calls([ mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), mock.call([ 'oc', 'adm', 'new-project', 'operations', mock.ANY, mock.ANY, mock.ANY, mock.ANY ], None), mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), ])
def test_adding_a_project(self, mock_cmd, mock_write, mock_tmpfile_copy, mock_loc_oc_bin): ''' Testing adding a project ''' params = copy.deepcopy(OCProjectTest.params) # run_ansible input parameters project_results = '''{ "kind": "Project", "apiVersion": "v1", "metadata": { "name": "operations", "selfLink": "/oapi/v1/projects/operations", "uid": "5e52afb8-ee33-11e6-89f4-0edc441d9666", "resourceVersion": "1584", "labels": {}, "annotations": { "openshift.io/node-selector": "ops_only=True", "openshift.io/sa.initialized-roles": "true", "openshift.io/sa.scc.mcs": "s0:c3,c2", "openshift.io/sa.scc.supplemental-groups": "1000010000/10000", "openshift.io/sa.scc.uid-range": "1000010000/10000" } }, "spec": { "finalizers": [ "kubernetes", "openshift.io/origin" ] }, "status": { "phase": "Active" } }''' # Return values of our mocked function call. These get returned once per call. mock_cmd.side_effect = [ (1, '', 'Error from server: namespaces "operations" not found'), (1, '', 'Error from server: namespaces "operations" not found'), (0, '', ''), # created (0, project_results, ''), # fetch it ] mock_tmpfile_copy.side_effect = [ '/tmp/mocked_kubeconfig', ] mock_loc_oc_bin.side_effect = [ 'oc', ] # Act results = OCProject.run_ansible(params, False) # Assert self.assertTrue(results['changed']) self.assertEqual(results['results']['returncode'], 0) self.assertEqual(results['results']['results']['metadata']['name'], 'operations') self.assertEqual(results['state'], 'present') # Making sure our mock was called as we expected mock_cmd.assert_has_calls([ mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), mock.call(['oc', 'adm', 'new-project', 'operations', mock.ANY, mock.ANY, mock.ANY, mock.ANY], None), mock.call(['oc', 'get', 'namespace', 'operations', '-o', 'json'], None), ])