diff options
| author | Kenny Woodson <kwoodson@redhat.com> | 2017-03-22 11:43:03 -0400 | 
|---|---|---|
| committer | Kenny Woodson <kwoodson@redhat.com> | 2017-03-22 11:43:03 -0400 | 
| commit | f8fd0cb8853494b8168fc73ac4bb0cdd69cc590f (patch) | |
| tree | bbc78adc91e25477035a56320ebadeedfc7bdaf9 /roles/lib_openshift | |
| parent | 0c3c694cb4039132ceea71f169bc58f46d51227e (diff) | |
| download | openshift-f8fd0cb8853494b8168fc73ac4bb0cdd69cc590f.tar.gz openshift-f8fd0cb8853494b8168fc73ac4bb0cdd69cc590f.tar.bz2 openshift-f8fd0cb8853494b8168fc73ac4bb0cdd69cc590f.tar.xz openshift-f8fd0cb8853494b8168fc73ac4bb0cdd69cc590f.zip | |
Adding tests to increase TC.
Diffstat (limited to 'roles/lib_openshift')
| -rwxr-xr-x | roles/lib_openshift/src/test/unit/test_oc_pvc.py | 163 | 
1 files changed, 163 insertions, 0 deletions
| diff --git a/roles/lib_openshift/src/test/unit/test_oc_pvc.py b/roles/lib_openshift/src/test/unit/test_oc_pvc.py index 19747f531..82187917d 100755 --- a/roles/lib_openshift/src/test/unit/test_oc_pvc.py +++ b/roles/lib_openshift/src/test/unit/test_oc_pvc.py @@ -94,6 +94,169 @@ class OCPVCTest(unittest.TestCase):          self.assertTrue(results['changed'])          self.assertEqual(results['results']['results'][0]['metadata']['name'], 'mypvc') +    @mock.patch('oc_pvc.Utils.create_tmpfile_copy') +    @mock.patch('oc_pvc.OCPVC._run') +    def test_update_pvc(self, mock_run, mock_tmpfile_copy): +        ''' Testing a pvc create ''' +        params = copy.deepcopy(OCPVCTest.params) +        params['access_modes'] = 'ReadWriteMany' + +        pvc = '''{"kind": "PersistentVolumeClaim", +               "apiVersion": "v1", +               "metadata": { +                   "name": "mypvc", +                   "namespace": "test", +                   "selfLink": "/api/v1/namespaces/test/persistentvolumeclaims/mypvc", +                   "uid": "77597898-d8d8-11e6-aea5-0e3c0c633889", +                   "resourceVersion": "126510787", +                   "creationTimestamp": "2017-01-12T15:04:50Z", +                   "labels": { +                       "mypvc": "database" +                   }, +                   "annotations": { +                       "pv.kubernetes.io/bind-completed": "yes", +                       "pv.kubernetes.io/bound-by-controller": "yes", +                       "v1.2-volume.experimental.kubernetes.io/provisioning-required": "volume.experimental.kubernetes.io/provisioning-completed" +                   } +               }, +               "spec": { +                   "accessModes": [ +                       "ReadWriteOnce" +                   ], +                   "resources": { +                       "requests": { +                           "storage": "1Gi" +                       } +                   }, +                   "volumeName": "pv-aws-ow5vl" +               }, +               "status": { +                  "phase": "Bound", +                   "accessModes": [ +                       "ReadWriteOnce" +                   ], +                    "capacity": { +                      "storage": "1Gi" +                    } +               } +              }''' + +        mod_pvc = '''{"kind": "PersistentVolumeClaim", +               "apiVersion": "v1", +               "metadata": { +                   "name": "mypvc", +                   "namespace": "test", +                   "selfLink": "/api/v1/namespaces/test/persistentvolumeclaims/mypvc", +                   "uid": "77597898-d8d8-11e6-aea5-0e3c0c633889", +                   "resourceVersion": "126510787", +                   "creationTimestamp": "2017-01-12T15:04:50Z", +                   "labels": { +                       "mypvc": "database" +                   }, +                   "annotations": { +                       "pv.kubernetes.io/bind-completed": "yes", +                       "pv.kubernetes.io/bound-by-controller": "yes", +                       "v1.2-volume.experimental.kubernetes.io/provisioning-required": "volume.experimental.kubernetes.io/provisioning-completed" +                   } +               }, +               "spec": { +                   "accessModes": [ +                       "ReadWriteMany" +                   ], +                   "resources": { +                       "requests": { +                           "storage": "1Gi" +                       } +                   }, +                   "volumeName": "pv-aws-ow5vl" +               }, +               "status": { +                  "phase": "Bound", +                   "accessModes": [ +                       "ReadWriteOnce" +                   ], +                    "capacity": { +                      "storage": "1Gi" +                    } +               } +              }''' + +        mock_run.side_effect = [ +            (0, pvc, ''), +            (0, pvc, ''), +            (0, '', ''), +            (0, mod_pvc, ''), +        ] + +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] + +        results = OCPVC.run_ansible(params, False) + +        self.assertFalse(results['changed']) +        self.assertEqual(results['results']['msg'], '##### - This volume is currently bound.  Will not update - ####') + +    @mock.patch('oc_pvc.Utils.create_tmpfile_copy') +    @mock.patch('oc_pvc.OCPVC._run') +    def test_delete_pvc(self, mock_run, mock_tmpfile_copy): +        ''' Testing a pvc create ''' +        params = copy.deepcopy(OCPVCTest.params) +        params['state'] = 'absent' + +        pvc = '''{"kind": "PersistentVolumeClaim", +               "apiVersion": "v1", +               "metadata": { +                   "name": "mypvc", +                   "namespace": "test", +                   "selfLink": "/api/v1/namespaces/test/persistentvolumeclaims/mypvc", +                   "uid": "77597898-d8d8-11e6-aea5-0e3c0c633889", +                   "resourceVersion": "126510787", +                   "creationTimestamp": "2017-01-12T15:04:50Z", +                   "labels": { +                       "mypvc": "database" +                   }, +                   "annotations": { +                       "pv.kubernetes.io/bind-completed": "yes", +                       "pv.kubernetes.io/bound-by-controller": "yes", +                       "v1.2-volume.experimental.kubernetes.io/provisioning-required": "volume.experimental.kubernetes.io/provisioning-completed" +                   } +               }, +               "spec": { +                   "accessModes": [ +                       "ReadWriteOnce" +                   ], +                   "resources": { +                       "requests": { +                           "storage": "1Gi" +                       } +                   }, +                   "volumeName": "pv-aws-ow5vl" +               }, +               "status": { +                  "phase": "Bound", +                   "accessModes": [ +                       "ReadWriteOnce" +                   ], +                    "capacity": { +                      "storage": "1Gi" +                    } +               } +              }''' + +        mock_run.side_effect = [ +            (0, pvc, ''), +            (0, '', ''), +        ] + +        mock_tmpfile_copy.side_effect = [ +            '/tmp/mocked_kubeconfig', +        ] + +        results = OCPVC.run_ansible(params, False) + +        self.assertTrue(results['changed']) +      @unittest.skipIf(six.PY3, 'py2 test only')      @mock.patch('os.path.exists')      @mock.patch('os.environ.get') | 
