]>
Commit | Line | Data |
---|---|---|
91327a77 AA |
1 | # -*- coding: utf-8 -*- |
2 | ||
3 | import pytest | |
4 | from ceph_volume.util.device import Devices | |
5 | ||
6 | ||
7 | @pytest.fixture | |
8 | def device_report_keys(device_info): | |
9 | device_info(devices={ | |
10 | # example output of disk.get_devices() | |
11 | '/dev/sdb': {'human_readable_size': '1.82 TB', | |
12 | 'locked': 0, | |
13 | 'model': 'PERC H700', | |
14 | 'nr_requests': '128', | |
15 | 'partitions': {}, | |
16 | 'path': '/dev/sdb', | |
17 | 'removable': '0', | |
18 | 'rev': '2.10', | |
19 | 'ro': '0', | |
20 | 'rotational': '1', | |
21 | 'sas_address': '', | |
22 | 'sas_device_handle': '', | |
23 | 'scheduler_mode': 'cfq', | |
24 | 'sectors': 0, | |
25 | 'sectorsize': '512', | |
26 | 'size': 1999844147200.0, | |
27 | 'support_discard': '', | |
28 | 'vendor': 'DELL'} | |
29 | } | |
30 | ) | |
31 | report = Devices().json_report()[0] | |
32 | return list(report.keys()) | |
33 | ||
34 | @pytest.fixture | |
35 | def device_sys_api_keys(device_info): | |
36 | device_info(devices={ | |
37 | # example output of disk.get_devices() | |
38 | '/dev/sdb': {'human_readable_size': '1.82 TB', | |
39 | 'locked': 0, | |
40 | 'model': 'PERC H700', | |
41 | 'nr_requests': '128', | |
42 | 'partitions': {}, | |
43 | 'path': '/dev/sdb', | |
44 | 'removable': '0', | |
45 | 'rev': '2.10', | |
46 | 'ro': '0', | |
47 | 'rotational': '1', | |
48 | 'sas_address': '', | |
49 | 'sas_device_handle': '', | |
50 | 'scheduler_mode': 'cfq', | |
51 | 'sectors': 0, | |
52 | 'sectorsize': '512', | |
53 | 'size': 1999844147200.0, | |
54 | 'support_discard': '', | |
55 | 'vendor': 'DELL'} | |
56 | } | |
57 | ) | |
58 | report = Devices().json_report()[0] | |
59 | return list(report['sys_api'].keys()) | |
60 | ||
61 | ||
62 | class TestInventory(object): | |
63 | ||
64 | expected_keys = [ | |
65 | 'path', | |
66 | 'rejected_reasons', | |
67 | 'sys_api', | |
68 | 'available', | |
69 | 'lvs', | |
70 | ] | |
71 | ||
72 | expected_sys_api_keys = [ | |
73 | 'human_readable_size', | |
74 | 'locked', | |
75 | 'model', | |
76 | 'nr_requests', | |
77 | 'partitions', | |
78 | 'path', | |
79 | 'removable', | |
80 | 'rev', | |
81 | 'ro', | |
82 | 'rotational', | |
83 | 'sas_address', | |
84 | 'sas_device_handle', | |
85 | 'scheduler_mode', | |
86 | 'sectors', | |
87 | 'sectorsize', | |
88 | 'size', | |
89 | 'support_discard', | |
90 | 'vendor', | |
91 | ] | |
92 | ||
93 | def test_json_inventory_keys_unexpected(self, device_report_keys): | |
94 | for k in device_report_keys: | |
95 | assert k in self.expected_keys, "unexpected key {} in report".format(k) | |
96 | ||
97 | def test_json_inventory_keys_missing(self, device_report_keys): | |
98 | for k in self.expected_keys: | |
99 | assert k in device_report_keys, "expected key {} in report".format(k) | |
100 | ||
101 | def test_sys_api_keys_unexpected(self, device_sys_api_keys): | |
102 | for k in device_sys_api_keys: | |
103 | assert k in self.expected_sys_api_keys, "unexpected key {} in sys_api field".format(k) | |
104 | ||
105 | def test_sys_api_keys_missing(self, device_sys_api_keys): | |
106 | for k in self.expected_sys_api_keys: | |
107 | assert k in device_sys_api_keys, "expected key {} in sys_api field".format(k) | |
108 |