Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: appengine/findit/lib/gitiles/test/gitiles_repository_test.py

Issue 2521773004: [Culprit-finder] Refactor findit testcase and move it to libs. (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import base64 5 import base64
6 from datetime import datetime 6 from datetime import datetime
7 import json 7 import json
8 import re 8 import re
9 9
10 from testing_utils import testing 10 from testing_utils import testing
11 11
12 from lib.gitiles import gitiles_repository 12 from lib.gitiles import gitiles_repository
13 from lib.gitiles.change_log import ChangeLog 13 from lib.gitiles.change_log import ChangeLog
14 from libs.http import retry_http_client 14 from libs.http import retry_http_client
15 from libs.testcase import TestCase
15 16
16 17
17 COMMIT_MESSAGE = ('Add popover for snapshot canvas log.\n\n' 18 COMMIT_MESSAGE = ('Add popover for snapshot canvas log.\n\n'
18 'Review URL: https://codereview.chromium.org/320423004\n\n' 19 'Review URL: https://codereview.chromium.org/320423004\n\n'
19 'Review URL: https://codereview.chromium.org/328113005\n\n' 20 'Review URL: https://codereview.chromium.org/328113005\n\n'
20 'Cr-Commit-Position: refs/heads/master@{#175976}') 21 'Cr-Commit-Position: refs/heads/master@{#175976}')
21 22
22 COMMIT_LOG = """)]}' 23 COMMIT_LOG = """)]}'
23 { 24 {
24 "commit": "bcfd5a12eea05588aee98b7cf7e032d8cb5b58bb", 25 "commit": "bcfd5a12eea05588aee98b7cf7e032d8cb5b58bb",
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 'committer_time': datetime(2016, 01, 11, 19, 35, 32), 248 'committer_time': datetime(2016, 01, 11, 19, 35, 32),
248 'commit_url': 249 'commit_url':
249 'https://repo.test/+/bcfd', 250 'https://repo.test/+/bcfd',
250 'code_review_url': 'https://codereview.chromium.org/328113005', 251 'code_review_url': 'https://codereview.chromium.org/328113005',
251 'committer_name': 'test1@chromium.org', 252 'committer_name': 'test1@chromium.org',
252 'revision': 'bcfd', 253 'revision': 'bcfd',
253 'reverted_revision': None 254 'reverted_revision': None
254 } 255 }
255 256
256 257
257 class HttpClientForGit(retry_http_client.RetryHttpClient): 258 class GitRepositoryTest(TestCase):
258
259 def __init__(self):
260 super(HttpClientForGit, self).__init__()
261 self.response_for_url = {}
262
263 def SetResponseForUrl(self, url, response):
264 self.response_for_url[url] = response
265
266 def GetBackoff(self, *_): # pragma: no cover
267 """Override to avoid sleep."""
268 return 0
269
270 def _Get(self, url, *_):
271 response = self.response_for_url.get(url)
272 if response is None:
273 return 404, 'Not Found'
274 else:
275 return 200, response
276
277 def _Post(self, *_): # pragma: no cover
278 pass
279
280 def _Put(self, *_): # pragma: no cover
281 pass
282
283
284 class GitRepositoryTest(testing.AppengineTestCase):
285 259
286 def setUp(self): 260 def setUp(self):
287 super(GitRepositoryTest, self).setUp() 261 super(GitRepositoryTest, self).setUp()
288 self.http_client_for_git = HttpClientForGit() 262 self.http_client_for_git = self.GetMockHttpClient()
289 self.repo_url = 'https://repo.test' 263 self.repo_url = 'https://repo.test'
290 self.git_repo = gitiles_repository.GitilesRepository(self.repo_url, 264 self.git_repo = gitiles_repository.GitilesRepository(
291 self.http_client_for_git) 265 self.repo_url, self.http_client_for_git)
292 266
293 def testGitRepositoryPropertySetters(self): 267 def testGitRepositoryPropertySetters(self):
294 http_client_for_git = HttpClientForGit()
295 git_repo = gitiles_repository.GitilesRepository( 268 git_repo = gitiles_repository.GitilesRepository(
296 http_client=http_client_for_git) 269 http_client=self.http_client_for_git)
297 git_repo.repo_url = 'https://repo' 270 git_repo.repo_url = 'https://repo'
298 self.assertEqual(git_repo.repo_url, 'https://repo') 271 self.assertEqual(git_repo.repo_url, 'https://repo')
299 self.assertEqual(git_repo.http_client, http_client_for_git) 272 self.assertEqual(git_repo.http_client, self.http_client_for_git)
300 273
301 def testEndingSlashInRepoUrl(self): 274 def testEndingSlashInRepoUrl(self):
302 git_repo1 = gitiles_repository.GitilesRepository( 275 git_repo1 = gitiles_repository.GitilesRepository(
303 self.repo_url, self.http_client_for_git) 276 self.repo_url, self.http_client_for_git)
304 self.assertEqual(self.repo_url, git_repo1.repo_url) 277 self.assertEqual(self.repo_url, git_repo1.repo_url)
305 278
306 git_repo2 = gitiles_repository.GitilesRepository( 279 git_repo2 = gitiles_repository.GitilesRepository(
307 '%s/' % self.repo_url, self.http_client_for_git) 280 '%s/' % self.repo_url, self.http_client_for_git)
308 self.assertEqual(self.repo_url, git_repo2.repo_url) 281 self.assertEqual(self.repo_url, git_repo2.repo_url)
309 282
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 439
467 self.mock(gitiles_repository.GitilesRepository, 440 self.mock(gitiles_repository.GitilesRepository,
468 '_SendRequestForJsonResponse', _MockSendRequestForJsonResponse) 441 '_SendRequestForJsonResponse', _MockSendRequestForJsonResponse)
469 442
470 changelogs = self.git_repo.GetChangeLogs('0', '2') 443 changelogs = self.git_repo.GetChangeLogs('0', '2')
471 444
472 self.assertEqual(len(changelogs), 2) 445 self.assertEqual(len(changelogs), 2)
473 446
474 def testGetWrappedGitRepositoryClass(self): 447 def testGetWrappedGitRepositoryClass(self):
475 repo = gitiles_repository.GitilesRepository( 448 repo = gitiles_repository.GitilesRepository(
476 'http://repo_url', HttpClientForGit()) 449 'http://repo_url', self.http_client_for_git)
477 450
478 self.assertEqual(repo.repo_url, 'http://repo_url') 451 self.assertEqual(repo.repo_url, 'http://repo_url')
479 self.assertTrue(isinstance(repo.http_client, HttpClientForGit))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698