Skip to content

Commit 86d658b

Browse files
Merge pull request #1035 from allmightyspiff/1034
#1034 - pagination for tickets
2 parents 25769c3 + e32bdfa commit 86d658b

File tree

5 files changed

+28
-19
lines changed

5 files changed

+28
-19
lines changed

SoftLayer/CLI/order/package_list.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from SoftLayer.CLI import formatting
88
from SoftLayer.managers import ordering
99

10-
COLUMNS = ['name',
10+
COLUMNS = ['id',
11+
'name',
1112
'keyName',
1213
'type']
1314

@@ -51,6 +52,7 @@ def cli(env, keyword, package_type):
5152

5253
for package in packages:
5354
table.add_row([
55+
package['id'],
5456
package['name'],
5557
package['keyName'],
5658
package['type']['keyName']

SoftLayer/managers/ticket.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def list_tickets(self, open_status=True, closed_status=True):
4040
else:
4141
raise ValueError("open_status and closed_status cannot both be False")
4242

43-
return self.client.call('Account', call, mask=mask)
43+
return self.client.call('Account', call, mask=mask, iter=True)
4444

4545
def list_subjects(self):
4646
"""List all ticket subjects."""

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
[tool:pytest]
22
python_files = *_tests.py
3+
filterwarnings =
4+
ignore::DeprecationWarning
5+
ignore::PendingDeprecationWarning
36

47
[wheel]
58
universal=1

tests/CLI/modules/order_tests.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,50 +47,43 @@ def test_item_list(self):
4747
self.assertEqual(expected_results, json.loads(result.output))
4848

4949
def test_package_list(self):
50-
item1 = {'name': 'package1', 'keyName': 'PACKAGE1', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
51-
item2 = {'name': 'package2', 'keyName': 'PACKAGE2', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
52-
item3 = {'name': 'package2', 'keyName': 'PACKAGE2', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 0}
5350
p_mock = self.set_mock('SoftLayer_Product_Package', 'getAllObjects')
54-
p_mock.return_value = [item1, item2, item3]
51+
p_mock.return_value = _get_all_packages()
5552
_filter = {'type': {'keyName': {'operation': '!= BLUEMIX_SERVICE'}}}
5653

5754
result = self.run_command(['order', 'package-list'])
5855

5956
self.assert_no_fail(result)
6057
self.assert_called_with('SoftLayer_Product_Package', 'getAllObjects', filter=_filter)
61-
expected_results = [{'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
62-
{'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
58+
expected_results = [{'id': 1, 'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
59+
{'id': 2, 'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
6360
self.assertEqual(expected_results, json.loads(result.output))
6461

6562
def test_package_list_keyword(self):
66-
item1 = {'name': 'package1', 'keyName': 'PACKAGE1', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
67-
item2 = {'name': 'package2', 'keyName': 'PACKAGE2', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
6863
p_mock = self.set_mock('SoftLayer_Product_Package', 'getAllObjects')
69-
p_mock.return_value = [item1, item2]
64+
p_mock.return_value = _get_all_packages()
7065

7166
_filter = {'type': {'keyName': {'operation': '!= BLUEMIX_SERVICE'}}}
7267
_filter['name'] = {'operation': '*= package1'}
7368
result = self.run_command(['order', 'package-list', '--keyword', 'package1'])
7469

7570
self.assert_no_fail(result)
7671
self.assert_called_with('SoftLayer_Product_Package', 'getAllObjects', filter=_filter)
77-
expected_results = [{'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
78-
{'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
72+
expected_results = [{'id': 1, 'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
73+
{'id': 2, 'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
7974
self.assertEqual(expected_results, json.loads(result.output))
8075

8176
def test_package_list_type(self):
82-
item1 = {'name': 'package1', 'keyName': 'PACKAGE1', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
83-
item2 = {'name': 'package2', 'keyName': 'PACKAGE2', 'type': {'keyName': 'BARE_METAL_CPU'}, 'isActive': 1}
8477
p_mock = self.set_mock('SoftLayer_Product_Package', 'getAllObjects')
85-
p_mock.return_value = [item1, item2]
78+
p_mock.return_value = _get_all_packages()
8679

8780
_filter = {'type': {'keyName': {'operation': 'BARE_METAL_CPU'}}}
8881
result = self.run_command(['order', 'package-list', '--package_type', 'BARE_METAL_CPU'])
8982

9083
self.assert_no_fail(result)
9184
self.assert_called_with('SoftLayer_Product_Package', 'getAllObjects', filter=_filter)
92-
expected_results = [{'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
93-
{'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
85+
expected_results = [{'id': 1, 'name': 'package1', 'keyName': 'PACKAGE1', 'type': 'BARE_METAL_CPU'},
86+
{'id': 2, 'name': 'package2', 'keyName': 'PACKAGE2', 'type': 'BARE_METAL_CPU'}]
9487
self.assertEqual(expected_results, json.loads(result.output))
9588

9689
def test_place(self):
@@ -256,3 +249,13 @@ def _get_verified_order_return(self):
256249
price2 = {'item': item2, 'hourlyRecurringFee': '0.05',
257250
'recurringFee': '150'}
258251
return {'orderContainers': [{'prices': [price1, price2]}]}
252+
253+
254+
def _get_all_packages():
255+
package_type = {'keyName': 'BARE_METAL_CPU'}
256+
all_packages = [
257+
{'id': 1, 'name': 'package1', 'keyName': 'PACKAGE1', 'type': package_type, 'isActive': 1},
258+
{'id': 2, 'name': 'package2', 'keyName': 'PACKAGE2', 'type': package_type, 'isActive': 1},
259+
{'id': 3, 'name': 'package2', 'keyName': 'PACKAGE2', 'type': package_type, 'isActive': 0}
260+
]
261+
return all_packages

tox.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[tox]
2-
envlist = py27,py35,py36,pypy,analysis,coverage
2+
envlist = py27,py35,py36,py37,pypy,analysis,coverage
3+
34

45
[flake8]
56
max-line-length=120

0 commit comments

Comments
 (0)