|
|
@ -26,6 +26,7 @@ john = 'john@example.com'
|
|
|
|
ken = 'ken@example.com'
|
|
|
|
ken = 'ken@example.com'
|
|
|
|
peter = 'peter@example.com'
|
|
|
|
peter = 'peter@example.com'
|
|
|
|
tom = 'tom@example.com'
|
|
|
|
tom = 'tom@example.com'
|
|
|
|
|
|
|
|
nonowner = 'nonowner@example.com'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def owners_file(*email_addresses, **kwargs):
|
|
|
|
def owners_file(*email_addresses, **kwargs):
|
|
|
@ -70,10 +71,11 @@ def test_repo():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class OutputInterceptedOwnersFinder(owners_finder.OwnersFinder):
|
|
|
|
class OutputInterceptedOwnersFinder(owners_finder.OwnersFinder):
|
|
|
|
def __init__(self, files, local_root,
|
|
|
|
def __init__(self, files, local_root, author, reviewers,
|
|
|
|
fopen, os_path, disable_color=False):
|
|
|
|
fopen, os_path, disable_color=False):
|
|
|
|
super(OutputInterceptedOwnersFinder, self).__init__(
|
|
|
|
super(OutputInterceptedOwnersFinder, self).__init__(
|
|
|
|
files, local_root, None, fopen, os_path, disable_color=disable_color)
|
|
|
|
files, local_root, author, reviewers, fopen, os_path,
|
|
|
|
|
|
|
|
disable_color=disable_color)
|
|
|
|
self.output = []
|
|
|
|
self.output = []
|
|
|
|
self.indentation_stack = []
|
|
|
|
self.indentation_stack = []
|
|
|
|
|
|
|
|
|
|
|
@ -113,8 +115,12 @@ class _BaseTestCase(unittest.TestCase):
|
|
|
|
self.root = '/'
|
|
|
|
self.root = '/'
|
|
|
|
self.fopen = self.repo.open_for_reading
|
|
|
|
self.fopen = self.repo.open_for_reading
|
|
|
|
|
|
|
|
|
|
|
|
def ownersFinder(self, files):
|
|
|
|
def ownersFinder(self, files, author=nonowner, reviewers=None):
|
|
|
|
finder = OutputInterceptedOwnersFinder(files, self.root,
|
|
|
|
reviewers = reviewers or []
|
|
|
|
|
|
|
|
finder = OutputInterceptedOwnersFinder(files,
|
|
|
|
|
|
|
|
self.root,
|
|
|
|
|
|
|
|
author,
|
|
|
|
|
|
|
|
reviewers,
|
|
|
|
fopen=self.fopen,
|
|
|
|
fopen=self.fopen,
|
|
|
|
os_path=self.repo,
|
|
|
|
os_path=self.repo,
|
|
|
|
disable_color=True)
|
|
|
|
disable_color=True)
|
|
|
@ -128,6 +134,22 @@ class OwnersFinderTests(_BaseTestCase):
|
|
|
|
def test_constructor(self):
|
|
|
|
def test_constructor(self):
|
|
|
|
self.assertNotEquals(self.defaultFinder(), None)
|
|
|
|
self.assertNotEquals(self.defaultFinder(), None)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_skip_files_owned_by_reviewers(self):
|
|
|
|
|
|
|
|
files = [
|
|
|
|
|
|
|
|
'chrome/browser/defaults.h', # owned by brett
|
|
|
|
|
|
|
|
'content/bar/foo.cc', # not owned by brett
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
finder = self.ownersFinder(files, reviewers=[brett])
|
|
|
|
|
|
|
|
self.assertEqual(finder.unreviewed_files, {'content/bar/foo.cc'})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_skip_files_owned_by_author(self):
|
|
|
|
|
|
|
|
files = [
|
|
|
|
|
|
|
|
'chrome/browser/defaults.h', # owned by brett
|
|
|
|
|
|
|
|
'content/bar/foo.cc', # not owned by brett
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
finder = self.ownersFinder(files, author=brett)
|
|
|
|
|
|
|
|
self.assertEqual(finder.unreviewed_files, {'content/bar/foo.cc'})
|
|
|
|
|
|
|
|
|
|
|
|
def test_reset(self):
|
|
|
|
def test_reset(self):
|
|
|
|
finder = self.defaultFinder()
|
|
|
|
finder = self.defaultFinder()
|
|
|
|
i = 0
|
|
|
|
i = 0
|
|
|
|