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