summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/git/method_missing.py19
-rw-r--r--test/git/test_git.py1
2 files changed, 9 insertions, 11 deletions
diff --git a/lib/git/method_missing.py b/lib/git/method_missing.py
index 478ee1d3..06414cc4 100644
--- a/lib/git/method_missing.py
+++ b/lib/git/method_missing.py
@@ -4,17 +4,14 @@ class MethodMissingMixin(object):
This was `taken from a blog post <http://blog.iffy.us/?p=43>`_
"""
- def __getattribute__(self, attr):
- try:
- return object.__getattribute__(self, attr)
- except:
- class MethodMissing(object):
- def __init__(self, wrapped, method):
- self.__wrapped__ = wrapped
- self.__method__ = method
- def __call__(self, *args, **kwargs):
- return self.__wrapped__.method_missing(self.__method__, *args, **kwargs)
- return MethodMissing(self, attr)
+ def __getattr__(self, attr):
+ class MethodMissing(object):
+ def __init__(self, wrapped, method):
+ self.__wrapped__ = wrapped
+ self.__method__ = method
+ def __call__(self, *args, **kwargs):
+ return self.__wrapped__.method_missing(self.__method__, *args, **kwargs)
+ return MethodMissing(self, attr)
def method_missing(self, *args, **kwargs):
""" This method should be overridden in the derived class. """
diff --git a/test/git/test_git.py b/test/git/test_git.py
index 82644b6d..e452e68b 100644
--- a/test/git/test_git.py
+++ b/test/git/test_git.py
@@ -58,5 +58,6 @@ class TestGit(object):
@patch(Git, 'execute')
def test_it_ignores_false_kwargs(self, git):
+ # this_should_not_be_ignored=False implies it *should* be ignored
output = self.git.version(pass_this_kwarg=False)
assert_true("pass_this_kwarg" not in git.call_args[1])