From dc050e5931a7eb14e755fc72d17d531e8ce62539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Izurieta?= Date: Sun, 14 Apr 2019 00:24:59 +0200 Subject: [PATCH] Fix `AttributeError` when searching a remote by name Running code like `'origin' in git.Repo('path/to/existing/repository').remotes` raises an AttributeError instead of returning a boolean. This commit fixes that behaviour by catching the error when doing an identity match on `IterableList`. --- AUTHORS | 1 + git/util.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 5f42f8565..a0aa707c7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -32,5 +32,6 @@ Contributors are: -A. Jesse Jiryu Davis -Steven Whitman -Stefan Stancu +-César Izurieta Portions derived from other open source works and are clearly marked. diff --git a/git/util.py b/git/util.py index 3ba588577..7ca0564eb 100644 --- a/git/util.py +++ b/git/util.py @@ -864,9 +864,12 @@ def __init__(self, id_attr, prefix=''): def __contains__(self, attr): # first try identity match for performance - rval = list.__contains__(self, attr) - if rval: - return rval + try: + rval = list.__contains__(self, attr) + if rval: + return rval + except (AttributeError, TypeError): + pass # END handle match # otherwise make a full name search