summaryrefslogtreecommitdiff
path: root/tests/testutils/debiangittestrepo.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testutils/debiangittestrepo.py')
-rw-r--r--tests/testutils/debiangittestrepo.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/testutils/debiangittestrepo.py b/tests/testutils/debiangittestrepo.py
new file mode 100644
index 0000000..61456f1
--- /dev/null
+++ b/tests/testutils/debiangittestrepo.py
@@ -0,0 +1,41 @@
+# vim: set fileencoding=utf-8 :
+
+from .. import context
+
+import os
+import unittest
+
+import gbp.deb.git
+
+class DebianGitTestRepo(unittest.TestCase):
+ """Scratch repo for a single unit test"""
+
+ def setUp(self):
+ self.tmpdir = context.new_tmpdir(__name__)
+
+ repodir = self.tmpdir.join('test_repo')
+ self.repo = gbp.deb.git.DebianGitRepository.create(repodir)
+
+ def tearDown(self):
+ context.teardown()
+
+ def add_file(self, name, content=None, msg=None):
+ """
+ Add a single file with name I{name} and content I{content}. If
+ I{content} is C{none} the content of the file is undefined.
+
+ @param name: the file's path relativ to the git repo
+ @type name: C{str}
+ @param content: the file's content
+ @type content: C{str}
+ """
+ path = os.path.join(self.repo.path, name)
+
+ d = os.path.dirname(path)
+ if not os.path.exists(d):
+ os.makedirs(d)
+
+ with open(path, 'w+') as f:
+ content == None or f.write(content)
+ self.repo.add_files(name, force=True)
+ self.repo.commit_files(path, msg or "added %s" % name)