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

Side by Side Diff: infra/libs/gitiles/test/gitiles_test.py

Issue 1403313002: Added `cros_pin` CrOS pin-bump tool. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Added pinfile.py tests, cleanup. Created 5 years, 2 months 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
« no previous file with comments | « infra/libs/gitiles/gitiles.py ('k') | infra/tools/cros_pin/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 import httplib2 6 import httplib2
7 import os 7 import os
8 import time 8 import time
9 9
10 from infra.libs.gitiles import gitiles 10 from infra.libs.gitiles import gitiles
11 from testing_support import auto_stub 11 from testing_support import auto_stub
12 12
13 import mock
13 14
14 DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') 15 DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data')
15 16
16 17
17 class TestGitiles(auto_stub.TestCase): 18 class TestGitiles(auto_stub.TestCase):
18 def setUp(self): 19 def setUp(self):
19 super(TestGitiles, self).setUp() 20 super(TestGitiles, self).setUp()
20 21
21 self.response = {'status': '200'} 22 self.response = {'status': 200}
22 self.content = None 23 self.content = None
23 24
24 class FakeHttp(object): 25 class FakeHttp(object):
25 def __init__(self, response, content): 26 def __init__(self, response, content):
26 self.response = response 27 self.response = response
27 self.content = content 28 self.content = content
28 29
29 def request(self, *_args, **_kwargs): 30 def request(self, *_args, **_kwargs):
30 return self.response, self.content 31 r = mock.Mock()
32 r.status = self.response['status']
33 return r, self.content
31 34
32 def http_maker(): 35 def http_maker():
33 return FakeHttp(self.response, self.content) 36 return FakeHttp(self.response, self.content)
34 37
35 self.mock(httplib2, 'Http', http_maker) 38 self.mock(httplib2, 'Http', http_maker)
36 self.mock(time, 'sleep', lambda _x: None) 39 self.mock(time, 'sleep', lambda _x: None)
37 40
38 def testJson(self): 41 def testJson(self):
39 with open(os.path.join(DATA_DIR, 'scripts_slave')) as f: 42 with open(os.path.join(DATA_DIR, 'scripts_slave')) as f:
40 self.content = f.read() 43 self.content = f.read()
41 44
42 result = gitiles.call_gitiles( 45 result = gitiles.call_gitiles(
43 'http://bananas', 46 'http://bananas',
44 'json', 47 'json',
45 os.path.join(DATA_DIR, 'netrc')) 48 os.path.join(DATA_DIR, 'netrc'))
46 self.assertEqual(result['id'], '24a7f79e278700fab6dfd3866b1b8508c44ddb55') 49 self.assertEqual(result['id'], '24a7f79e278700fab6dfd3866b1b8508c44ddb55')
47 50
48 def testText(self): 51 def testText(self):
49 with open(os.path.join(DATA_DIR, 'init_py')) as f: 52 with open(os.path.join(DATA_DIR, 'init_py')) as f:
50 self.content = f.read() 53 self.content = f.read()
51 54
52 result = gitiles.call_gitiles( 55 result = gitiles.call_gitiles(
53 'http://bananas', 56 'http://bananas',
54 'text', 57 'text',
55 os.path.join(DATA_DIR, 'netrc')) 58 os.path.join(DATA_DIR, 'netrc'))
56 59
57 self.assertTrue(result.startswith('# Copyright 2015')) 60 self.assertTrue(result.startswith('# Copyright 2015'))
58 61
59 def testInvalidResponse(self): 62 def testInvalidResponse(self):
60 self.response = {'status': '500'} 63 self.response = {'status': 500}
61 with self.assertRaises(gitiles.GitilesError): 64 with self.assertRaises(gitiles.GitilesError):
62 gitiles.call_gitiles( 65 gitiles.call_gitiles(
63 'http://bananas', 66 'http://bananas',
67 'text',
68 os.path.join(DATA_DIR, 'netrc'))
69
70 def testErrorResponse(self):
71 self.response = {'status': 400}
72 with self.assertRaises(gitiles.GitilesError):
73 gitiles.call_gitiles(
74 'http://bananas',
64 'text', 75 'text',
65 os.path.join(DATA_DIR, 'netrc')) 76 os.path.join(DATA_DIR, 'netrc'))
66 77
67 def testInvalidJsonResponse(self): 78 def testInvalidJsonResponse(self):
68 self.content = 'blerg\ndefinitely does not start with )]}\'' 79 self.content = 'blerg\ndefinitely does not start with )]}\''
69 with self.assertRaises(gitiles.GitilesError): 80 with self.assertRaises(gitiles.GitilesError):
70 gitiles.call_gitiles( 81 gitiles.call_gitiles(
71 'http://bananas', 82 'http://bananas',
72 'json', 83 'json',
73 os.path.join(DATA_DIR, 'netrc')) 84 os.path.join(DATA_DIR, 'netrc'))
(...skipping 20 matching lines...) Expand all
94 os.path.join(DATA_DIR, 'netrc')) 105 os.path.join(DATA_DIR, 'netrc'))
95 106
96 def testNoAuth(self): 107 def testNoAuth(self):
97 with open(os.path.join(DATA_DIR, 'scripts_slave')) as f: 108 with open(os.path.join(DATA_DIR, 'scripts_slave')) as f:
98 self.content = f.read() 109 self.content = f.read()
99 result = gitiles.call_gitiles( 110 result = gitiles.call_gitiles(
100 'http://twirly', 111 'http://twirly',
101 'json' 112 'json'
102 ) 113 )
103 self.assertEqual(result['id'], '24a7f79e278700fab6dfd3866b1b8508c44ddb55') 114 self.assertEqual(result['id'], '24a7f79e278700fab6dfd3866b1b8508c44ddb55')
115
116 def testRepositoryCall(self):
117 r = gitiles.Repository('http://example.com')
118 self.content = ')]}\'\n{"commit": "foo"}'
119 v = r.ref_info('master')
120 self.assertEqual(v, {'commit': 'foo'})
121
122 def testRepositorySubpathCall(self):
123 r = gitiles.Repository('http://example.com')
124 self.content = ')]}\'\n{"commit": "foo"}'
125 v = r(subpath='master/foo/bar/baz.py')
126 self.assertEqual(v, {'commit': 'foo'})
OLDNEW
« no previous file with comments | « infra/libs/gitiles/gitiles.py ('k') | infra/tools/cros_pin/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698