~ubuntu-branches/ubuntu/vivid/ceilometer/vivid

« back to all changes in this revision

Viewing changes to ceilometer/openstack/common/test.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2014-03-06 14:44:28 UTC
  • mto: (28.1.1 utopic-proposed) (1.2.1)
  • mto: This revision was merged to the branch mainline in revision 19.
  • Revision ID: package-import@ubuntu.com-20140306144428-rvphsh4igwyulzf0
Tags: upstream-2014.1~b3
ImportĀ upstreamĀ versionĀ 2014.1~b3

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 
16
16
"""Common utilities used in testing"""
17
17
 
 
18
import logging
18
19
import os
 
20
import tempfile
19
21
 
20
22
import fixtures
21
23
import testtools
22
24
 
23
25
_TRUE_VALUES = ('True', 'true', '1', 'yes')
 
26
_LOG_FORMAT = "%(levelname)8s [%(name)s] %(message)s"
24
27
 
25
28
 
26
29
class BaseTestCase(testtools.TestCase):
29
32
        super(BaseTestCase, self).setUp()
30
33
        self._set_timeout()
31
34
        self._fake_output()
32
 
        self.useFixture(fixtures.FakeLogger())
 
35
        self._fake_logs()
33
36
        self.useFixture(fixtures.NestedTempfile())
34
37
        self.useFixture(fixtures.TempHomeDir())
 
38
        self.tempdirs = []
35
39
 
36
40
    def _set_timeout(self):
37
41
        test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
50
54
        if os.environ.get('OS_STDERR_CAPTURE') in _TRUE_VALUES:
51
55
            stderr = self.useFixture(fixtures.StringStream('stderr')).stream
52
56
            self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
 
57
 
 
58
    def _fake_logs(self):
 
59
        if os.environ.get('OS_DEBUG') in _TRUE_VALUES:
 
60
            level = logging.DEBUG
 
61
        else:
 
62
            level = logging.INFO
 
63
        capture_logs = os.environ.get('OS_LOG_CAPTURE') in _TRUE_VALUES
 
64
        if capture_logs:
 
65
            self.useFixture(
 
66
                fixtures.FakeLogger(
 
67
                    format=_LOG_FORMAT,
 
68
                    level=level,
 
69
                    nuke_handlers=capture_logs,
 
70
                )
 
71
            )
 
72
        else:
 
73
            logging.basicConfig(format=_LOG_FORMAT, level=level)
 
74
 
 
75
    def create_tempfiles(self, files, ext='.conf'):
 
76
        tempfiles = []
 
77
        for (basename, contents) in files:
 
78
            if not os.path.isabs(basename):
 
79
                (fd, path) = tempfile.mkstemp(prefix=basename, suffix=ext)
 
80
            else:
 
81
                path = basename + ext
 
82
                fd = os.open(path, os.O_CREAT | os.O_WRONLY)
 
83
            tempfiles.append(path)
 
84
            try:
 
85
                os.write(fd, contents)
 
86
            finally:
 
87
                os.close(fd)
 
88
        return tempfiles