aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gbp/git/modifier.py16
-rw-r--r--gbp/git/repository.py3
-rw-r--r--tests/test_GitModifier.py10
3 files changed, 27 insertions, 2 deletions
diff --git a/gbp/git/modifier.py b/gbp/git/modifier.py
index c77bb4d1..51d9693b 100644
--- a/gbp/git/modifier.py
+++ b/gbp/git/modifier.py
@@ -76,3 +76,19 @@ class GitModifier(object):
"""
return self._get_env('committer')
+ def __getitem__(self, key):
+ if key in self.keys():
+ return self.__dict__[key]
+ else:
+ raise KeyError
+
+ def keys(self):
+ return [ 'name', 'email', 'date' ]
+
+ def items(self):
+ items = []
+ for key in self.keys():
+ val = self.__dict__[key]
+ if val:
+ items.append((key, val))
+ return items
diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index 3daf2da8..03b166c3 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -935,6 +935,7 @@ class GitRepository(object):
@type author: C{dict} with keys I{name}, I{email}, I{date}
@param committer: committer information to use for commit
@type committer: C{dict} with keys I{name}, I{email}, I{date}
+ or L{GitModifier}
@param create_missing_branch: create I{branch} as detached branch if it
doesn't already exist.
@type create_missing_branch: C{bool}
@@ -987,7 +988,7 @@ class GitRepository(object):
@param msg: commit message
@param parents: parents of this commit
@param author: authorship information
- @type author: C{dict} with keys 'name' and 'email'
+ @type author: C{dict} with keys 'name' and 'email' or L{GitModifier}
@param committer: comitter information
@type committer: C{dict} with keys 'name' and 'email'
"""
diff --git a/tests/test_GitModifier.py b/tests/test_GitModifier.py
index 1a5b27c4..38944d8c 100644
--- a/tests/test_GitModifier.py
+++ b/tests/test_GitModifier.py
@@ -9,9 +9,10 @@ def test_author():
Methods tested:
- L{gbp.git.GitModifier.get_author_env}
- L{gbp.git.GitModifier.get_committer_env}
+ - L{gbp.git.GitModifier.keys}
>>> import gbp.git
- >>> modifier = gbp.git.GitModifier("foo", "bar")
+ >>> modifier = gbp.git.GitModifier('foo', 'bar')
>>> modifier.name
'foo'
>>> modifier.email
@@ -24,4 +25,11 @@ def test_author():
Traceback (most recent call last):
...
GitModifierError: Neither comitter nor author
+ >>> modifier.keys()
+ ['name', 'email', 'date']
+ >>> modifier['name']
+ 'foo'
+ >>> modifier['email']
+ 'bar'
+ >>> modifier['date']
"""