123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- #!/usr/bin/env python2
- '''
- Unit tests for oc label
- '''
- # To run
- # python -m unittest version
- #
- # .
- # Ran 1 test in 0.597s
- #
- # OK
- import os
- import sys
- import unittest
- import mock
- # Removing invalid variable names for tests so that I can
- # keep them brief
- # pylint: disable=invalid-name,no-name-in-module
- # Disable import-error b/c our libraries aren't loaded in jenkins
- # pylint: disable=import-error
- # place class in our python path
- module_path = os.path.join('/'.join(os.path.realpath(__file__).split('/')[:-4]), 'library') # noqa: E501
- sys.path.insert(0, module_path)
- from oc_label import OCLabel # noqa: E402
- class OCLabelTest(unittest.TestCase):
- '''
- Test class for OCLabel
- '''
- def setUp(self):
- ''' 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, mock_tmpfile_copy):
- ''' Testing a label list '''
- params = {'name': 'default',
- 'namespace': 'default',
- 'labels': None,
- 'state': 'list',
- 'kind': 'namespace',
- 'selector': None,
- 'kubeconfig': '/etc/origin/master/admin.kubeconfig',
- 'debug': False}
- ns = '''{
- "kind": "Namespace",
- "apiVersion": "v1",
- "metadata": {
- "name": "default",
- "selfLink": "/api/v1/namespaces/default",
- "uid": "c45b9547-e3d3-11e6-ba9c-0eece8f2ce22",
- "resourceVersion": "403024",
- "creationTimestamp": "2017-01-26T14:28:55Z",
- "labels": {
- "storage_pv_quota": "False"
- },
- "annotations": {
- "openshift.io/node-selector": "",
- "openshift.io/sa.initialized-roles": "true",
- "openshift.io/sa.scc.mcs": "s0:c1,c0",
- "openshift.io/sa.scc.supplemental-groups": "1000000000/10000",
- "openshift.io/sa.scc.uid-range": "1000000000/10000"
- }
- },
- "spec": {
- "finalizers": [
- "kubernetes",
- "openshift.io/origin"
- ]
- },
- "status": {
- "phase": "Active"
- }
- }'''
- mock_cmd.side_effect = [
- (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, mock_tmpfile_copy):
- ''' Testing a label list '''
- params = {'name': 'default',
- 'namespace': 'default',
- 'labels': [
- {'key': 'awesomens', 'value': 'testinglabel'},
- {'key': 'storage_pv_quota', 'value': 'False'}
- ],
- 'state': 'present',
- 'kind': 'namespace',
- 'selector': None,
- 'kubeconfig': '/etc/origin/master/admin.kubeconfig',
- 'debug': False}
- ns = '''{
- "kind": "Namespace",
- "apiVersion": "v1",
- "metadata": {
- "name": "default",
- "selfLink": "/api/v1/namespaces/default",
- "uid": "c45b9547-e3d3-11e6-ba9c-0eece8f2ce22",
- "resourceVersion": "403024",
- "creationTimestamp": "2017-01-26T14:28:55Z",
- "labels": {
- "storage_pv_quota": "False"
- },
- "annotations": {
- "openshift.io/node-selector": "",
- "openshift.io/sa.initialized-roles": "true",
- "openshift.io/sa.scc.mcs": "s0:c1,c0",
- "openshift.io/sa.scc.supplemental-groups": "1000000000/10000",
- "openshift.io/sa.scc.uid-range": "1000000000/10000"
- }
- },
- "spec": {
- "finalizers": [
- "kubernetes",
- "openshift.io/origin"
- ]
- },
- "status": {
- "phase": "Active"
- }
- }'''
- ns1 = '''{
- "kind": "Namespace",
- "apiVersion": "v1",
- "metadata": {
- "name": "default",
- "selfLink": "/api/v1/namespaces/default",
- "uid": "c45b9547-e3d3-11e6-ba9c-0eece8f2ce22",
- "resourceVersion": "403024",
- "creationTimestamp": "2017-01-26T14:28:55Z",
- "labels": {
- "storage_pv_quota": "False",
- "awesomens": "testinglabel"
- },
- "annotations": {
- "openshift.io/node-selector": "",
- "openshift.io/sa.initialized-roles": "true",
- "openshift.io/sa.scc.mcs": "s0:c1,c0",
- "openshift.io/sa.scc.supplemental-groups": "1000000000/10000",
- "openshift.io/sa.scc.uid-range": "1000000000/10000"
- }
- },
- "spec": {
- "finalizers": [
- "kubernetes",
- "openshift.io/origin"
- ]
- },
- "status": {
- "phase": "Active"
- }
- }'''
- mock_cmd.side_effect = [
- (0, ns, ''),
- (0, '', ''),
- (0, ns1, ''),
- ]
- mock_tmpfile_copy.side_effect = [
- '/tmp/mocked_kubeconfig',
- ]
- results = OCLabel.run_ansible(params, False)
- self.assertTrue(results['changed'])
- self.assertTrue(results['results']['results']['labels'][0] ==
- {'storage_pv_quota': 'False', 'awesomens': 'testinglabel'})
- def tearDown(self):
- '''TearDown method'''
- pass
- if __name__ == "__main__":
- unittest.main()
|