Author: adc Date: Sat Aug 9 23:18:58 2014 New Revision: 1617026 URL: http://svn.apache.org/r1617026 Log: get_committer() should not cache committer records in the package
Modified: labs/panopticon/pan-utils/src/asf/utils/committers.py labs/panopticon/pan-utils/tests/test_committers.py Modified: labs/panopticon/pan-utils/src/asf/utils/committers.py URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/committers.py?rev=1617026&r1=1617025&r2=1617026&view=diff ============================================================================== --- labs/panopticon/pan-utils/src/asf/utils/committers.py (original) +++ labs/panopticon/pan-utils/src/asf/utils/committers.py Sat Aug 9 23:18:58 2014 @@ -41,7 +41,8 @@ class Committer(object): self.mentoring = set(mentoring) def as_tuple(self): - return self.username, self.member, self.fullname, tuple(sorted(self.emails)), tuple(sorted(self.urls)), tuple(sorted(self.committees)), tuple(sorted(self.projects)), tuple(sorted(self.mentoring)) + return self.username, self.member, self.fullname, tuple(sorted(self.emails)), tuple(sorted(self.urls)), \ + tuple(sorted(self.committees)), tuple(sorted(self.projects)), tuple(sorted(self.mentoring)) def __eq__(self, other): return self.as_tuple() == other.as_tuple() @@ -53,41 +54,35 @@ class Committer(object): return 'Committer(%s, %s, %s, %s, %s, %s, %s, %s)' % self.as_tuple() -COMMITTERS = {} - - def get_committer(committer, username, password): - global COMMITTERS - if committer not in COMMITTERS: - try: - committer_json = json.loads(Resource('%s/%s' % (COMMITTERS_URL, committer), - filters=[BasicAuth(username, password)], - timeout=10).get(headers={'Accept': 'application/json'}).body_string()) - except ResourceNotFound: - log.warning('Unable to find committer %s' % committer) - else: - availid = committer_json['availid'] - member = bool(committer_json['member']) - fullname = committer_json['name'] - - emails = set() - for email in committer_json['emails']: - try: - emails.add(canonical_email_address(email)) - except ValueError: - log.warning('Malformed email address %s not added to committer %s', email, committer) - - urls = committer_json['urls'] - committees = committer_json['committees'] - projects = set(committer_json['groups']) - if 'apsite' in projects: - projects.remove('apsite') - if 'committers' in projects: - projects.remove('committers') - if 'member' in projects: - projects.remove('member') - mentoring = committer_json['auth'] - - COMMITTERS[committer] = Committer(availid, member, fullname, emails, urls, committees, projects, mentoring) + try: + committer_json = json.loads(Resource('%s/%s' % (COMMITTERS_URL, committer), + filters=[BasicAuth(username, password)], + timeout=10).get(headers={'Accept': 'application/json'}).body_string()) + except ResourceNotFound: + log.debug('Unable to find committer %s' % committer) + raise KeyError + else: + availid = committer_json['availid'] + member = bool(committer_json['member']) + fullname = committer_json['name'] + + emails = set() + for email in committer_json['emails']: + try: + emails.add(canonical_email_address(email)) + except ValueError: + log.warning('Malformed email address %s not added to committer %s', email, committer) + + urls = committer_json['urls'] + committees = committer_json['committees'] + projects = set(committer_json['groups']) + if 'apsite' in projects: + projects.remove('apsite') + if 'committers' in projects: + projects.remove('committers') + if 'member' in projects: + projects.remove('member') + mentoring = committer_json['auth'] - return COMMITTERS[committer] + return Committer(availid, member, fullname, emails, urls, committees, projects, mentoring) Modified: labs/panopticon/pan-utils/tests/test_committers.py URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_committers.py?rev=1617026&r1=1617025&r2=1617026&view=diff ============================================================================== --- labs/panopticon/pan-utils/tests/test_committers.py (original) +++ labs/panopticon/pan-utils/tests/test_committers.py Sat Aug 9 23:18:58 2014 @@ -29,9 +29,9 @@ def test_get_committer(username, passwor assert committer.fullname == 'Alan Cabrera' assert 'incubator' in committer.committees assert 'geronimo' in committer.projects - assert 'yoko' in committer.mentoring + assert 'mrql' in committer.mentoring - assert committer is get_committer('adc', username, password) + assert committer == get_committer('adc', username, password) @ensure_credentials_stored --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@labs.apache.org For additional commands, e-mail: commits-h...@labs.apache.org