aboutsummaryrefslogtreecommitdiffstats
path: root/charms/trusty/ceilometer-agent/unit_tests/test_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'charms/trusty/ceilometer-agent/unit_tests/test_utils.py')
-rw-r--r--charms/trusty/ceilometer-agent/unit_tests/test_utils.py128
1 files changed, 0 insertions, 128 deletions
diff --git a/charms/trusty/ceilometer-agent/unit_tests/test_utils.py b/charms/trusty/ceilometer-agent/unit_tests/test_utils.py
deleted file mode 100644
index 09d77a6..0000000
--- a/charms/trusty/ceilometer-agent/unit_tests/test_utils.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 2016 Canonical Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import logging
-import unittest
-import os
-import yaml
-import io
-
-from contextlib import contextmanager
-from mock import patch
-
-
-@contextmanager
-def mock_open(filename, contents=None):
- ''' Slightly simpler mock of open to return contents for filename '''
- def mock_file(*args):
- if args[0] == filename:
- return io.StringIO(contents)
- else:
- return open(*args)
- with patch('__builtin__.open', mock_file):
- yield
-
-
-def load_config():
- '''
- Walk backwords from __file__ looking for config.yaml, load and return the
- 'options' section'
- '''
- config = None
- f = __file__
- while config is None:
- d = os.path.dirname(f)
- if os.path.isfile(os.path.join(d, 'config.yaml')):
- config = os.path.join(d, 'config.yaml')
- break
- f = d
-
- if not config:
- logging.error('Could not find config.yaml in any parent directory '
- 'of %s. ' % file)
- raise Exception
-
- return yaml.safe_load(open(config).read())['options']
-
-
-def get_default_config():
- '''
- Load default charm config from config.yaml return as a dict.
- If no default is set in config.yaml, its value is None.
- '''
- default_config = {}
- config = load_config()
- for k, v in config.iteritems():
- if 'default' in v:
- default_config[k] = v['default']
- else:
- default_config[k] = None
- return default_config
-
-
-class CharmTestCase(unittest.TestCase):
-
- def setUp(self, obj, patches):
- super(CharmTestCase, self).setUp()
- self.patches = patches
- self.obj = obj
- self.test_config = TestConfig()
- self.test_relation = TestRelation()
- self.patch_all()
-
- def patch(self, method):
- _m = patch.object(self.obj, method)
- mock = _m.start()
- self.addCleanup(_m.stop)
- return mock
-
- def patch_all(self):
- for method in self.patches:
- setattr(self, method, self.patch(method))
-
-
-class TestConfig(object):
-
- def __init__(self):
- self.config = get_default_config()
-
- def get(self, attr):
- try:
- return self.config[attr]
- except KeyError:
- return None
-
- def get_all(self):
- return self.config
-
- def set(self, attr, value):
- if attr not in self.config:
- raise KeyError
- self.config[attr] = value
-
-
-class TestRelation(object):
-
- def __init__(self, relation_data={}):
- self.relation_data = relation_data
-
- def set(self, relation_data):
- self.relation_data = relation_data
-
- def get(self, attr=None, unit=None, rid=None):
- if attr is None:
- return self.relation_data
- elif attr in self.relation_data:
- return self.relation_data[attr]
- return None