git cl creds-check: add methods analysing .gitcookies.
These methods are used to produce report in the next CL.
BUG=689543
Change-Id: I71b2705ac8b046103b4982d47f7ec97f8ef7818b
Reviewed-on: https://chromium-review.googlesource.com/455838
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index b52ee60..2aaa984 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -447,6 +447,55 @@
'Cr-Branched-From: somehash-refs/heads/master@{#12}')
+class GitCookiesCheckerTest(unittest.TestCase):
+ def setUp(self):
+ super(GitCookiesCheckerTest, self).setUp()
+ self.c = git_cl._GitCookiesChecker()
+
+ def mock_hosts_creds(self, subhost_identity_pairs):
+ def ensure_googlesource(h):
+ if not h.endswith(self.c._GOOGLESOURCE):
+ assert not h.endswith('.')
+ return h + '.' + self.c._GOOGLESOURCE
+ return h
+ self.c._all_hosts = [(ensure_googlesource(h), i, '.gitcookies')
+ for h, i in subhost_identity_pairs]
+
+ def test_analysis_nothing(self):
+ self.c._all_hosts = []
+ self.assertFalse(self.c.has_generic_host())
+ self.assertEqual(set(), self.c.get_conflicting_hosts())
+ self.assertEqual(set(), self.c.get_duplicated_hosts())
+ self.assertEqual(set(), self.c.get_partially_configured_hosts())
+ self.assertEqual(set(), self.c.get_hosts_with_wrong_identities())
+
+ def test_analysis(self):
+ self.mock_hosts_creds([
+ ('.googlesource.com', 'git-example.chromium.org'),
+
+ ('chromium', 'git-example.google.com'),
+ ('chromium-review', 'git-example.google.com'),
+ ('chrome-internal', 'git-example.chromium.org'),
+ ('chrome-internal-review', 'git-example.chromium.org'),
+ ('conflict', 'git-example.google.com'),
+ ('conflict-review', 'git-example.chromium.org'),
+ ('dup', 'git-example.google.com'),
+ ('dup', 'git-example.google.com'),
+ ('dup-review', 'git-example.google.com'),
+ ('partial', 'git-example.google.com'),
+ ])
+ self.assertTrue(self.c.has_generic_host())
+ self.assertEqual(set(['conflict.googlesource.com']),
+ self.c.get_conflicting_hosts())
+ self.assertEqual(set(['dup.googlesource.com']),
+ self.c.get_duplicated_hosts())
+ self.assertEqual(set(['partial.googlesource.com']),
+ self.c.get_partially_configured_hosts())
+ self.assertEqual(set(['chromium.googlesource.com',
+ 'chrome-internal.googlesource.com']),
+ self.c.get_hosts_with_wrong_identities())
+
+
class TestGitCl(TestCase):
def setUp(self):
super(TestGitCl, self).setUp()
@@ -489,7 +538,6 @@
# It's important to reset settings to not have inter-tests interference.
git_cl.settings = None
-
def tearDown(self):
try:
self.assertEquals([], self.calls)