|
15 | 15 | import unittest |
16 | 16 |
|
17 | 17 |
|
18 | | -class Test__ProjectIterator(unittest.TestCase): |
19 | | - |
20 | | - def _getTargetClass(self): |
21 | | - from google.cloud.resource_manager.client import _ProjectIterator |
22 | | - return _ProjectIterator |
23 | | - |
24 | | - def _makeOne(self, *args, **kw): |
25 | | - return self._getTargetClass()(*args, **kw) |
26 | | - |
27 | | - def test_constructor(self): |
28 | | - client = object() |
29 | | - iterator = self._makeOne(client) |
30 | | - self.assertEqual(iterator.path, '/projects') |
31 | | - self.assertEqual(iterator.page_number, 0) |
32 | | - self.assertIsNone(iterator.next_page_token) |
33 | | - self.assertIs(iterator.client, client) |
34 | | - self.assertEqual(iterator.extra_params, {}) |
35 | | - |
36 | | - def test_page_empty_response(self): |
37 | | - from google.cloud.iterator import Page |
38 | | - |
39 | | - client = object() |
40 | | - iterator = self._makeOne(client) |
41 | | - page = Page(iterator, {}, iterator.ITEMS_KEY) |
42 | | - iterator._page = page |
43 | | - self.assertEqual(page.num_items, 0) |
44 | | - self.assertEqual(page.remaining, 0) |
45 | | - self.assertEqual(list(page), []) |
46 | | - |
47 | | - def test_page_non_empty_response(self): |
48 | | - from google.cloud.resource_manager.project import Project |
49 | | - |
50 | | - project_id = 'project-id' |
51 | | - project_name = 'My Project Name' |
52 | | - project_number = 12345678 |
53 | | - project_labels = {'env': 'prod'} |
54 | | - project_lifecycle_state = 'ACTIVE' |
55 | | - api_resource = { |
56 | | - 'projectId': project_id, |
57 | | - 'name': project_name, |
58 | | - 'projectNumber': project_number, |
59 | | - 'labels': project_labels, |
60 | | - 'lifecycleState': project_lifecycle_state, |
61 | | - } |
62 | | - response = {'projects': [api_resource]} |
63 | | - client = object() |
64 | | - |
65 | | - def dummy_response(): |
66 | | - return response |
67 | | - |
68 | | - iterator = self._makeOne(client) |
69 | | - iterator._get_next_page_response = dummy_response |
70 | | - |
71 | | - iterator.update_page() |
72 | | - page = iterator.page |
73 | | - self.assertEqual(page.num_items, 1) |
74 | | - project = iterator.next() |
75 | | - self.assertEqual(page.remaining, 0) |
76 | | - self.assertIsInstance(project, Project) |
77 | | - self.assertEqual(project.project_id, project_id) |
78 | | - self.assertEqual(project._client, client) |
79 | | - self.assertEqual(project.name, project_name) |
80 | | - self.assertEqual(project.number, project_number) |
81 | | - self.assertEqual(project.labels, project_labels) |
82 | | - self.assertEqual(project.status, project_lifecycle_state) |
83 | | - |
84 | | - |
85 | 18 | class TestClient(unittest.TestCase): |
86 | 19 |
|
87 | 20 | def _getTargetClass(self): |
@@ -145,15 +78,15 @@ def test_fetch_project(self): |
145 | 78 | self.assertEqual(project.labels, labels) |
146 | 79 |
|
147 | 80 | def test_list_projects_return_type(self): |
148 | | - from google.cloud.resource_manager.client import _ProjectIterator |
| 81 | + from google.cloud.iterator import Iterator |
149 | 82 |
|
150 | 83 | credentials = _Credentials() |
151 | 84 | client = self._makeOne(credentials=credentials) |
152 | 85 | # Patch the connection with one we can easily control. |
153 | 86 | client.connection = _Connection({}) |
154 | 87 |
|
155 | 88 | results = client.list_projects() |
156 | | - self.assertIsInstance(results, _ProjectIterator) |
| 89 | + self.assertIsInstance(results, Iterator) |
157 | 90 |
|
158 | 91 | def test_list_projects_no_paging(self): |
159 | 92 | credentials = _Credentials() |
@@ -283,6 +216,56 @@ def test_list_projects_with_filter(self): |
283 | 216 | }, |
284 | 217 | }) |
285 | 218 |
|
| 219 | + def test_page_empty_response(self): |
| 220 | + from google.cloud.iterator import Page |
| 221 | + |
| 222 | + credentials = _Credentials() |
| 223 | + client = self._makeOne(credentials=credentials) |
| 224 | + iterator = client.list_projects() |
| 225 | + page = Page(iterator, {}, iterator._items_key, None) |
| 226 | + iterator._page = page |
| 227 | + self.assertEqual(page.num_items, 0) |
| 228 | + self.assertEqual(page.remaining, 0) |
| 229 | + self.assertEqual(list(page), []) |
| 230 | + |
| 231 | + def test_page_non_empty_response(self): |
| 232 | + from google.cloud.resource_manager.project import Project |
| 233 | + |
| 234 | + project_id = 'project-id' |
| 235 | + project_name = 'My Project Name' |
| 236 | + project_number = 12345678 |
| 237 | + project_labels = {'env': 'prod'} |
| 238 | + project_lifecycle_state = 'ACTIVE' |
| 239 | + api_resource = { |
| 240 | + 'projectId': project_id, |
| 241 | + 'name': project_name, |
| 242 | + 'projectNumber': project_number, |
| 243 | + 'labels': project_labels, |
| 244 | + 'lifecycleState': project_lifecycle_state, |
| 245 | + } |
| 246 | + response = {'projects': [api_resource]} |
| 247 | + credentials = _Credentials() |
| 248 | + client = self._makeOne(credentials=credentials) |
| 249 | + |
| 250 | + def dummy_response(): |
| 251 | + return response |
| 252 | + |
| 253 | + iterator = client.list_projects() |
| 254 | + iterator._get_next_page_response = dummy_response |
| 255 | + |
| 256 | + iterator.update_page() |
| 257 | + page = iterator.page |
| 258 | + self.assertEqual(page.num_items, 1) |
| 259 | + project = iterator.next() |
| 260 | + self.assertEqual(page.remaining, 0) |
| 261 | + self.assertIsInstance(project, Project) |
| 262 | + self.assertEqual(project.project_id, project_id) |
| 263 | + self.assertEqual(project._client, client) |
| 264 | + self.assertEqual(project.name, project_name) |
| 265 | + self.assertEqual(project.number, project_number) |
| 266 | + self.assertEqual(project.labels, project_labels) |
| 267 | + self.assertEqual(project.status, project_lifecycle_state) |
| 268 | + |
286 | 269 |
|
287 | 270 | class _Credentials(object): |
288 | 271 |
|
|
0 commit comments