diff options
| author | Scott Dodson <sdodson@redhat.com> | 2017-02-08 12:19:45 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-08 12:19:45 -0500 | 
| commit | bf1b4def44894ddc71d35e28c48c56078f90b947 (patch) | |
| tree | af513224a29ed2d6d0e7f73a22428dec65258997 /roles/lib_openshift/src | |
| parent | b1565e9e843e99c6b3c0d99518c27249472f57fe (diff) | |
| parent | 04ea66c4ab6cd1e5daa217526d7c9591aa164f10 (diff) | |
| download | openshift-bf1b4def44894ddc71d35e28c48c56078f90b947.tar.gz openshift-bf1b4def44894ddc71d35e28c48c56078f90b947.tar.bz2 openshift-bf1b4def44894ddc71d35e28c48c56078f90b947.tar.xz openshift-bf1b4def44894ddc71d35e28c48c56078f90b947.zip | |
Merge pull request #3290 from kwoodson/tmp_admin_kubeconfig
Added tmpfile for kubeconfig. Fixed tests.
Diffstat (limited to 'roles/lib_openshift/src')
| -rw-r--r-- | roles/lib_openshift/src/lib/base.py | 15 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oadm_manage_node.py | 15 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_label.py | 14 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_scale.py | 21 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_secret.py | 7 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_service.py | 14 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_serviceaccount.py | 7 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py | 14 | ||||
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/oc_version.py | 7 | 
9 files changed, 98 insertions, 16 deletions
| diff --git a/roles/lib_openshift/src/lib/base.py b/roles/lib_openshift/src/lib/base.py index d0843c03e..a895b40b3 100644 --- a/roles/lib_openshift/src/lib/base.py +++ b/roles/lib_openshift/src/lib/base.py @@ -20,7 +20,7 @@ class OpenShiftCLI(object):          ''' Constructor for OpenshiftCLI '''          self.namespace = namespace          self.verbose = verbose -        self.kubeconfig = kubeconfig +        self.kubeconfig = Utils.create_tmpfile_copy(kubeconfig)          self.all_namespaces = all_namespaces      # Pylint allows only 5 arguments to be passed. @@ -306,7 +306,18 @@ class Utils(object):          return tmp      @staticmethod -    def create_tmpfile(prefix=None): +    def create_tmpfile_copy(inc_file): +        '''create a temporary copy of a file''' +        tmpfile = Utils.create_tmpfile('lib_openshift-') +        Utils._write(tmpfile, open(inc_file).read()) + +        # Cleanup the tmpfile +        atexit.register(Utils.cleanup, [tmpfile]) + +        return tmpfile + +    @staticmethod +    def create_tmpfile(prefix='tmp'):          ''' Generates and returns a temporary file name '''          with tempfile.NamedTemporaryFile(prefix=prefix, delete=False) as tmp: diff --git a/roles/lib_openshift/src/test/unit/oadm_manage_node.py b/roles/lib_openshift/src/test/unit/oadm_manage_node.py index 8fd6f9c55..b0786dfac 100755 --- a/roles/lib_openshift/src/test/unit/oadm_manage_node.py +++ b/roles/lib_openshift/src/test/unit/oadm_manage_node.py @@ -35,8 +35,9 @@ class ManageNodeTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oadm_manage_node.Utils.create_tmpfile_copy')      @mock.patch('oadm_manage_node.ManageNode.openshift_cmd') -    def test_list_pods(self, mock_openshift_cmd): +    def test_list_pods(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'node': ['ip-172-31-49-140.ec2.internal'],                    'schedulable': None, @@ -106,6 +107,10 @@ class ManageNodeTest(unittest.TestCase):               "returncode": 0}          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = ManageNode.run_ansible(params, False)          # returned a single node @@ -113,8 +118,9 @@ class ManageNodeTest(unittest.TestCase):          # returned 2 pods          self.assertTrue(len(results['results']['nodes']['ip-172-31-49-140.ec2.internal']) == 2) +    @mock.patch('oadm_manage_node.Utils.create_tmpfile_copy')      @mock.patch('oadm_manage_node.ManageNode.openshift_cmd') -    def test_schedulable_false(self, mock_openshift_cmd): +    def test_schedulable_false(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'node': ['ip-172-31-49-140.ec2.internal'],                    'schedulable': False, @@ -162,6 +168,11 @@ class ManageNodeTest(unittest.TestCase):               "results": "NAME                            STATUS    AGE\n" +                          "ip-172-31-49-140.ec2.internal   Ready,SchedulingDisabled     5h\n",               "returncode": 0}] + +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = ManageNode.run_ansible(params, False)          self.assertTrue(results['changed']) diff --git a/roles/lib_openshift/src/test/unit/oc_label.py b/roles/lib_openshift/src/test/unit/oc_label.py index 3f7162070..3176987b0 100755 --- a/roles/lib_openshift/src/test/unit/oc_label.py +++ b/roles/lib_openshift/src/test/unit/oc_label.py @@ -35,8 +35,9 @@ class OCLabelTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_label.Utils.create_tmpfile_copy')      @mock.patch('oc_label.OCLabel._run') -    def test_state_list(self, mock_cmd): +    def test_state_list(self, mock_cmd, mock_tmpfile_copy):          ''' Testing a label list '''          params = {'name': 'default',                    'namespace': 'default', @@ -82,13 +83,18 @@ class OCLabelTest(unittest.TestCase):              (0, ns, ''),          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCLabel.run_ansible(params, False)          self.assertFalse(results['changed'])          self.assertTrue(results['results']['labels'] == [{'storage_pv_quota': 'False'}]) +    @mock.patch('oc_label.Utils.create_tmpfile_copy')      @mock.patch('oc_label.OCLabel._run') -    def test_state_present(self, mock_cmd): +    def test_state_present(self, mock_cmd, mock_tmpfile_copy):          ''' Testing a label list '''          params = {'name': 'default',                    'namespace': 'default', @@ -171,6 +177,10 @@ class OCLabelTest(unittest.TestCase):              (0, ns1, ''),          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCLabel.run_ansible(params, False)          self.assertTrue(results['changed']) diff --git a/roles/lib_openshift/src/test/unit/oc_scale.py b/roles/lib_openshift/src/test/unit/oc_scale.py index d8d5a231f..f15eb164d 100755 --- a/roles/lib_openshift/src/test/unit/oc_scale.py +++ b/roles/lib_openshift/src/test/unit/oc_scale.py @@ -35,8 +35,9 @@ class OCScaleTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_scale.Utils.create_tmpfile_copy')      @mock.patch('oc_scale.OCScale.openshift_cmd') -    def test_state_list(self, mock_openshift_cmd): +    def test_state_list(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'name': 'router',                    'namespace': 'default', @@ -70,13 +71,18 @@ class OCScaleTest(unittest.TestCase):               'results': dc,               'returncode': 0}] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCScale.run_ansible(params, False)          self.assertFalse(results['changed'])          self.assertEqual(results['result'][0], 2) +    @mock.patch('oc_scale.Utils.create_tmpfile_copy')      @mock.patch('oc_scale.OCScale.openshift_cmd') -    def test_scale(self, mock_openshift_cmd): +    def test_scale(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'name': 'router',                    'namespace': 'default', @@ -114,13 +120,18 @@ class OCScaleTest(unittest.TestCase):               'returncode': 0}          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCScale.run_ansible(params, False)          self.assertFalse(results['changed'])          self.assertEqual(results['result'][0], 3) +    @mock.patch('oc_scale.Utils.create_tmpfile_copy')      @mock.patch('oc_scale.OCScale.openshift_cmd') -    def test_no_dc_scale(self, mock_openshift_cmd): +    def test_no_dc_scale(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'name': 'not_there',                    'namespace': 'default', @@ -138,6 +149,10 @@ class OCScaleTest(unittest.TestCase):               'stdout': ""},          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCScale.run_ansible(params, False)          self.assertTrue(results['failed']) diff --git a/roles/lib_openshift/src/test/unit/oc_secret.py b/roles/lib_openshift/src/test/unit/oc_secret.py index c81f0514b..645aac82b 100755 --- a/roles/lib_openshift/src/test/unit/oc_secret.py +++ b/roles/lib_openshift/src/test/unit/oc_secret.py @@ -35,9 +35,10 @@ class OCSecretTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_secret.Utils.create_tmpfile_copy')      @mock.patch('oc_secret.Utils._write')      @mock.patch('oc_secret.OCSecret._run') -    def test_adding_a_secret(self, mock_cmd, mock_write): +    def test_adding_a_secret(self, mock_cmd, mock_write, mock_tmpfile_copy):          ''' Testing adding a secret '''          # Arrange @@ -64,6 +65,10 @@ class OCSecretTest(unittest.TestCase):              (0, 'secret/testsecretname', ''),          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          # Act          results = OCSecret.run_ansible(params, False) diff --git a/roles/lib_openshift/src/test/unit/oc_service.py b/roles/lib_openshift/src/test/unit/oc_service.py index 69f7dd49c..4a845e9f3 100755 --- a/roles/lib_openshift/src/test/unit/oc_service.py +++ b/roles/lib_openshift/src/test/unit/oc_service.py @@ -36,8 +36,9 @@ class OCServiceTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_service.Utils.create_tmpfile_copy')      @mock.patch('oc_service.OCService._run') -    def test_state_list(self, mock_cmd): +    def test_state_list(self, mock_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'name': 'router',                    'namespace': 'default', @@ -108,13 +109,18 @@ class OCServiceTest(unittest.TestCase):              (0, service, '')          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCService.run_ansible(params, False)          self.assertFalse(results['changed'])          self.assertEqual(results['results']['results'][0]['metadata']['name'], 'router') +    @mock.patch('oc_service.Utils.create_tmpfile_copy')      @mock.patch('oc_service.OCService._run') -    def test_create(self, mock_cmd): +    def test_create(self, mock_cmd, mock_tmpfile_copy):          ''' Testing a create service '''          params = {'name': 'router',                    'namespace': 'default', @@ -191,6 +197,10 @@ class OCServiceTest(unittest.TestCase):              (0, service, '')          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCService.run_ansible(params, False)          self.assertTrue(results['changed']) diff --git a/roles/lib_openshift/src/test/unit/oc_serviceaccount.py b/roles/lib_openshift/src/test/unit/oc_serviceaccount.py index dab751bb9..256b569eb 100755 --- a/roles/lib_openshift/src/test/unit/oc_serviceaccount.py +++ b/roles/lib_openshift/src/test/unit/oc_serviceaccount.py @@ -35,8 +35,9 @@ class OCServiceAccountTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_serviceaccount.Utils.create_tmpfile_copy')      @mock.patch('oc_serviceaccount.OCServiceAccount._run') -    def test_adding_a_serviceaccount(self, mock_cmd): +    def test_adding_a_serviceaccount(self, mock_cmd, mock_tmpfile_copy):          ''' Testing adding a serviceaccount '''          # Arrange @@ -90,6 +91,10 @@ class OCServiceAccountTest(unittest.TestCase):              (0, valid_result_json, ''),          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          # Act          results = OCServiceAccount.run_ansible(params, False) diff --git a/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py b/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py index 08fc9f6df..4d555d412 100755 --- a/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py +++ b/roles/lib_openshift/src/test/unit/oc_serviceaccount_secret.py @@ -35,9 +35,10 @@ class OCServiceAccountSecretTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_serviceaccount_secret.Utils.create_tmpfile_copy')      @mock.patch('oc_serviceaccount_secret.Yedit._write')      @mock.patch('oc_serviceaccount_secret.OCServiceAccountSecret._run') -    def test_adding_a_secret_to_a_serviceaccount(self, mock_cmd, mock_write): +    def test_adding_a_secret_to_a_serviceaccount(self, mock_cmd, mock_write, mock_tmpfile_copy):          ''' Testing adding a secret to a service account '''          # Arrange @@ -137,6 +138,10 @@ metadata:              (0, oc_get_sa_after, ''),  # Fourth call to the mock          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          # Act          results = OCServiceAccountSecret.run_ansible(params, False) @@ -157,9 +162,10 @@ metadata:              mock.call(mock.ANY, builder_yaml_file)          ]) +    @mock.patch('oc_serviceaccount_secret.Utils.create_tmpfile_copy')      @mock.patch('oc_serviceaccount_secret.Yedit._write')      @mock.patch('oc_serviceaccount_secret.OCServiceAccountSecret._run') -    def test_removing_a_secret_to_a_serviceaccount(self, mock_cmd, mock_write): +    def test_removing_a_secret_to_a_serviceaccount(self, mock_cmd, mock_write, mock_tmpfile_copy):          ''' Testing removing a secret to a service account '''          # Arrange @@ -229,6 +235,10 @@ metadata:              (0, 'serviceaccount "builder" replaced', ''),  # Third call to the mock          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          # Act          results = OCServiceAccountSecret.run_ansible(params, False) diff --git a/roles/lib_openshift/src/test/unit/oc_version.py b/roles/lib_openshift/src/test/unit/oc_version.py index f927948be..67dea415b 100755 --- a/roles/lib_openshift/src/test/unit/oc_version.py +++ b/roles/lib_openshift/src/test/unit/oc_version.py @@ -35,8 +35,9 @@ class OCVersionTest(unittest.TestCase):          ''' setup method will create a file and set to known configuration '''          pass +    @mock.patch('oc_version.Utils.create_tmpfile_copy')      @mock.patch('oc_version.OCVersion.openshift_cmd') -    def test_get(self, mock_openshift_cmd): +    def test_get(self, mock_openshift_cmd, mock_tmpfile_copy):          ''' Testing a get '''          params = {'kubeconfig': '/etc/origin/master/admin.kubeconfig',                    'state': 'list', @@ -52,6 +53,10 @@ class OCVersionTest(unittest.TestCase):               "returncode": 0}          ] +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] +          results = OCVersion.run_ansible(params)          self.assertFalse(results['changed']) | 
