diff options
author | Kamil Rykowski <kamil.rykowski@intel.com> | 2015-03-18 15:45:08 +0100 |
---|---|---|
committer | Kamil Rykowski <kamil.rykowski@intel.com> | 2015-07-20 07:25:45 +0000 |
commit | d9d586942bf3f78ba174eb5832f60d80a7c839ca (patch) | |
tree | 39fc1ef4d37ad2d45340f8d9559791100b4bdd49 | |
parent | d3e384965cc0cf628838a9af4ecd77ac1185e257 (diff) | |
download | python-glanceclient-d9d586942bf3f78ba174eb5832f60d80a7c839ca.tar.gz |
Extend unittests coverage for v2 tasks module
Add new tests for v2 tasks module to cover following cases:
- getting list of tasks using the marker
- getting list of tasks using sort_key & sort_dir keys
Change-Id: Ic126999ebb16e51cc472fe8f86dfe1fced0bc016
Closes-Bug: 1433637
-rw-r--r-- | glanceclient/tests/unit/v2/test_tasks.py | 111 |
1 files changed, 97 insertions, 14 deletions
diff --git a/glanceclient/tests/unit/v2/test_tasks.py b/glanceclient/tests/unit/v2/test_tasks.py index ed63286..d1dd1ef 100644 --- a/glanceclient/tests/unit/v2/test_tasks.py +++ b/glanceclient/tests/unit/v2/test_tasks.py @@ -23,6 +23,8 @@ from glanceclient.v2 import tasks _OWNED_TASK_ID = 'a4963502-acc7-42ba-ad60-5aa0962b7faf' _OWNER_ID = '6bd473f0-79ae-40ad-a927-e07ec37b642f' _FAKE_OWNER_ID = '63e7f218-29de-4477-abdc-8db7c9533188' +_PENDING_ID = '3a4560a1-e585-443e-9b39-553b46ec92d1' +_PROCESSING_ID = '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810' fixtures = { @@ -31,12 +33,12 @@ fixtures = { {}, {'tasks': [ { - 'id': '3a4560a1-e585-443e-9b39-553b46ec92d1', + 'id': _PENDING_ID, 'type': 'import', 'status': 'pending', }, { - 'id': '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810', + 'id': _PROCESSING_ID, 'type': 'import', 'status': 'processing', }, @@ -49,7 +51,7 @@ fixtures = { { 'tasks': [ { - 'id': '3a4560a1-e585-443e-9b39-553b46ec92d1', + 'id': _PENDING_ID, 'type': 'import', 'status': 'pending', }, @@ -64,7 +66,7 @@ fixtures = { {}, {'tasks': [ { - 'id': '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810', + 'id': _PROCESSING_ID, 'type': 'import', 'status': 'pending', }, @@ -75,7 +77,7 @@ fixtures = { 'GET': ( {}, { - 'id': '3a4560a1-e585-443e-9b39-553b46ec92d1', + 'id': _PENDING_ID, 'type': 'import', 'status': 'pending', }, @@ -103,7 +105,7 @@ fixtures = { 'POST': ( {}, { - 'id': '3a4560a1-e585-443e-9b39-553b46ec92d1', + 'id': _PENDING_ID, 'type': 'import', 'status': 'pending', 'input': '{"import_from": "file:///", ' @@ -170,7 +172,58 @@ fixtures = { 'GET': ({}, {'tasks': []}, ), - } + }, + '/v2/tasks?limit=%d&sort_key=type' % tasks.DEFAULT_PAGE_SIZE: { + 'GET': ( + {}, + {'tasks': [ + { + 'id': _PENDING_ID, + 'type': 'import', + 'status': 'pending', + }, + { + 'id': _PROCESSING_ID, + 'type': 'import', + 'status': 'processing', + }, + ]}, + ), + }, + '/v2/tasks?limit=%d&sort_dir=asc&sort_key=id' % tasks.DEFAULT_PAGE_SIZE: { + 'GET': ( + {}, + {'tasks': [ + { + 'id': _PENDING_ID, + 'type': 'import', + 'status': 'pending', + }, + { + 'id': _PROCESSING_ID, + 'type': 'import', + 'status': 'processing', + }, + ]}, + ), + }, + '/v2/tasks?limit=%d&sort_dir=desc&sort_key=id' % tasks.DEFAULT_PAGE_SIZE: { + 'GET': ( + {}, + {'tasks': [ + { + 'id': _PROCESSING_ID, + 'type': 'import', + 'status': 'processing', + }, + { + 'id': _PENDING_ID, + 'type': 'import', + 'status': 'pending', + }, + ]}, + ), + }, } schema_fixtures = { @@ -204,19 +257,19 @@ class TestController(testtools.TestCase): def test_list_tasks(self): #NOTE(flwang): cast to list since the controller returns a generator tasks = list(self.controller.list()) - self.assertEqual(tasks[0].id, '3a4560a1-e585-443e-9b39-553b46ec92d1') + self.assertEqual(tasks[0].id, _PENDING_ID) self.assertEqual(tasks[0].type, 'import') self.assertEqual(tasks[0].status, 'pending') - self.assertEqual(tasks[1].id, '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810') + self.assertEqual(tasks[1].id, _PROCESSING_ID) self.assertEqual(tasks[1].type, 'import') self.assertEqual(tasks[1].status, 'processing') def test_list_tasks_paginated(self): #NOTE(flwang): cast to list since the controller returns a generator tasks = list(self.controller.list(page_size=1)) - self.assertEqual(tasks[0].id, '3a4560a1-e585-443e-9b39-553b46ec92d1') + self.assertEqual(tasks[0].id, _PENDING_ID) self.assertEqual(tasks[0].type, 'import') - self.assertEqual(tasks[1].id, '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810') + self.assertEqual(tasks[1].id, _PROCESSING_ID) self.assertEqual(tasks[1].type, 'import') def test_list_tasks_with_status(self): @@ -262,9 +315,39 @@ class TestController(testtools.TestCase): self.assertEqual(b"ni\xc3\xb1o", filters["owner"]) + def test_list_tasks_with_marker(self): + tasks = list(self.controller.list(marker=_PENDING_ID, page_size=1)) + self.assertEqual(1, len(tasks)) + self.assertEqual(_PROCESSING_ID, tasks[0]['id']) + + def test_list_tasks_with_single_sort_key(self): + tasks = list(self.controller.list(sort_key='type')) + self.assertEqual(2, len(tasks)) + self.assertEqual(_PENDING_ID, tasks[0].id) + + def test_list_tasks_with_invalid_sort_key(self): + self.assertRaises(ValueError, + list, + self.controller.list(sort_key='invalid')) + + def test_list_tasks_with_desc_sort_dir(self): + tasks = list(self.controller.list(sort_key='id', sort_dir='desc')) + self.assertEqual(2, len(tasks)) + self.assertEqual(_PENDING_ID, tasks[1].id) + + def test_list_tasks_with_asc_sort_dir(self): + tasks = list(self.controller.list(sort_key='id', sort_dir='asc')) + self.assertEqual(2, len(tasks)) + self.assertEqual(_PENDING_ID, tasks[0].id) + + def test_list_tasks_with_invalid_sort_dir(self): + self.assertRaises(ValueError, + list, + self.controller.list(sort_dir='invalid')) + def test_get_task(self): - task = self.controller.get('3a4560a1-e585-443e-9b39-553b46ec92d1') - self.assertEqual(task.id, '3a4560a1-e585-443e-9b39-553b46ec92d1') + task = self.controller.get(_PENDING_ID) + self.assertEqual(task.id, _PENDING_ID) self.assertEqual(task.type, 'import') def test_create_task(self): @@ -274,7 +357,7 @@ class TestController(testtools.TestCase): 'swift://cloud.foo/myaccount/mycontainer/path'}, } task = self.controller.create(**properties) - self.assertEqual(task.id, '3a4560a1-e585-443e-9b39-553b46ec92d1') + self.assertEqual(task.id, _PENDING_ID) self.assertEqual(task.type, 'import') def test_create_task_invalid_property(self): |