Skip to content

Commit

Permalink
- + ReviewrsPool.get_reviewers, get level
Browse files Browse the repository at this point in the history
- Updated cases.ReviewerWasSet.check_state to check whether the reviewer
  is in the level
  • Loading branch information
gshefer committed Dec 30, 2017
1 parent 1f576c6 commit fa2689a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
6 changes: 5 additions & 1 deletion nudgebot/lib/cases/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@ def __init__(self, level=1, *args, **kwargs):
super(ReviewerWasSet, self).__init__(*args, **kwargs)

def check_state(self):
return self._level <= len(self._pr_statistics.reviewers)
if self._level <= len(self._pr_statistics.reviewers):
for reviewer in self._pr_statistics.reviewers:
if self._level == self._pr_statistics.repo.reviewers_pool.get_level(reviewer):
return True
return False

@property
def hash(self):
Expand Down
17 changes: 16 additions & 1 deletion nudgebot/lib/github/reviewers_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,24 @@ def repository(self):
def pool(self):
return self._pool

def get_reviewers(self, level=-1):
out = []
for login in self._pool:
if level == -1:
out.append(login)
elif self._pool[login]['level'] == level:
out.append(login)
return out

@property
def reviewers(self):
return self._pool.keys()
return self.get_reviewers()

def get_level(self, reviewer):
if reviewer not in self._pool:
# TODO: define appropriate exception
raise Exception('Reviewer not found in the pool: {}'.format(reviewer))
return self._pool[reviewer]['level']

def sync(self):
for level, logins in enumerate(self._repository.config.reviewers):
Expand Down

0 comments on commit fa2689a

Please sign in to comment.