diff options
author | Guido Günther <agx@sigxcpu.org> | 2013-01-16 08:59:58 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2013-01-16 20:45:02 +0100 |
commit | 9e30bf2237bc5752576741001ff76b93deeb7ca3 (patch) | |
tree | af8ca1d36211f23dbe74f8cf81e88dfb51363a2f /tests/testutils.py | |
parent | 5e6f16303f7e4c31e361d95b8cce7b0bc0a4a737 (diff) | |
download | git-buildpackage-9e30bf2237bc5752576741001ff76b93deeb7ca3.tar.gz git-buildpackage-9e30bf2237bc5752576741001ff76b93deeb7ca3.tar.bz2 git-buildpackage-9e30bf2237bc5752576741001ff76b93deeb7ca3.zip |
Add component test initialization
very heavily based on code by Markus Lehtonen
Diffstat (limited to 'tests/testutils.py')
-rw-r--r-- | tests/testutils.py | 87 |
1 files changed, 1 insertions, 86 deletions
diff --git a/tests/testutils.py b/tests/testutils.py index 04a13cd2..ff20e090 100644 --- a/tests/testutils.py +++ b/tests/testutils.py @@ -2,16 +2,14 @@ import os import shutil -import tempfile import unittest -from StringIO import StringIO import gbp.log import gbp.deb.git import gbp.errors class DebianGitTestRepo(unittest.TestCase): - """Scratch repo for a single test""" + """Scratch repo for a single unit test""" def setUp(self): gbp.log.setup(False, False) @@ -45,86 +43,3 @@ class DebianGitTestRepo(unittest.TestCase): content == None or f.write(content) self.repo.add_files(name, force=True) self.repo.commit_files(path, msg or "added %s" % name) - - -class ComponentTestBase(object): - """Base class for testing cmdline tools of git-buildpackage""" - - @classmethod - def setup_class(cls): - """Test class case setup""" - # Don't let git see that we're (possibly) under a git directory - cls.orig_env = os.environ.copy() - os.environ['GIT_CEILING_DIRECTORIES'] = os.getcwd() - - @classmethod - def teardown_class(cls): - """Test class case teardown""" - # Return original environment - os.environ = cls.orig_env - - def __init__(self): - """Object initialization""" - self._orig_dir = None - self._tmpdir = None - self._log = None - self._loghandler = None - - def setup(self): - """Test case setup""" - # Change to a temporary directory - self._orig_dir = os.getcwd() - self._tmpdir = tempfile.mkdtemp(prefix='gbp_%s_' % __name__, dir='.') - os.chdir(self._tmpdir) - - self._capture_log(True) - - def teardown(self): - """Test case teardown""" - # Restore original working dir - os.chdir(self._orig_dir) - shutil.rmtree(self._tmpdir) - - self._capture_log(False) - - @classmethod - def _check_repo_state(cls, repo, current_branch, branches): - """Check that repository is clean and given branches exist""" - branch = repo.branch - assert branch == current_branch - assert repo.is_clean() - assert set(repo.get_local_branches()) == set(branches) - - def _capture_log(self, capture=True): - """ Capture log""" - if capture and self._log is None: - self._log = StringIO() - self._loghandler = gbp.log.GbpStreamHandler(self._log, False) - self._loghandler.addFilter(gbp.log.GbpFilter([gbp.log.WARNING, - gbp.log.ERROR])) - gbp.log.LOGGER.addHandler(self._loghandler) - elif self._log is not None: - gbp.log.LOGGER.removeHandler(self._loghandler) - self._loghandler = None - self._log.close() - self._log = None - - def _get_log(self): - """Get the captured log output""" - self._log.seek(0) - return self._log.readlines() - - def _check_log(self, linenum, string): - """Check that the specified line on log matches expectations""" - if self._log is None: - assert False, "BUG in unittests: no log captured!" - output = self._get_log()[linenum].strip() - assert output.startswith(string), ("Expected: '%s...' Got: '%s'" % - (string, output)) - - def _clear_log(self): - """Clear the mock strerr""" - if self._log is not None: - self._log.seek(0) - self._log.truncate() - |