diff options
-rw-r--r-- | lib/git/method_missing.py | 19 | ||||
-rw-r--r-- | test/git/test_git.py | 1 |
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]) |