summaryrefslogtreecommitdiff
path: root/tests/testutils.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2013-01-16 08:59:58 +0100
committerGuido Günther <agx@sigxcpu.org>2013-01-16 20:45:02 +0100
commit9e30bf2237bc5752576741001ff76b93deeb7ca3 (patch)
treeaf8ca1d36211f23dbe74f8cf81e88dfb51363a2f /tests/testutils.py
parent5e6f16303f7e4c31e361d95b8cce7b0bc0a4a737 (diff)
Add component test initialization
very heavily based on code by Markus Lehtonen
Diffstat (limited to 'tests/testutils.py')
-rw-r--r--tests/testutils.py87
1 files changed, 1 insertions, 86 deletions
diff --git a/tests/testutils.py b/tests/testutils.py
index 04a13cd..ff20e09 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()
-