| 
8 | 8 | @mock.patch('lsblk.run_command', autospec=True)  | 
9 | 9 | class TestListBlockDevices:  | 
10 | 10 |     def test_lsblk(self, run_command):  | 
11 |  | -        run_command.return_value = {  | 
12 |  | -            "stdout": b'''NAME="sdb" KNAME="sdb" PKNAME="" SIZE="64424509440" TYPE="disk" RO="0" MOUNTPOINT=""  | 
13 |  | -NAME="sda" KNAME="sda" PKNAME="" SIZE="64424509440" TYPE="disk" RO="0" MOUNTPOINT=""  | 
14 |  | -NAME="sda4" KNAME="sda4" PKNAME="sda" SIZE="536870912" TYPE="part" RO="0" MOUNTPOINT=""  | 
15 |  | -NAME="sda2" KNAME="sda2" PKNAME="sda" SIZE="19327352832" TYPE="part" RO="0" MOUNTPOINT=""  | 
16 |  | -NAME="sda5" KNAME="sda5" PKNAME="sda" SIZE="4294967296" TYPE="part" RO="0" MOUNTPOINT="/var/log"  | 
17 |  | -NAME="sda3" KNAME="sda3" PKNAME="sda" SIZE="19863158272" TYPE="part" RO="0" MOUNTPOINT=""  | 
18 |  | -NAME="XSLocalEXT--1fad55d2--4f07--8145--c78a--297b173e06b0-1fad55d2--4f07--8145--c78a--297b173e06b0" KNAME="dm-0" \  | 
19 |  | -PKNAME="sda3" SIZE="19847446528" TYPE="lvm" RO="0" MOUNTPOINT="/run/sr-mount/1fad55d2-4f07-8145-c78a-297b173e06b0"  | 
20 |  | -NAME="sda1" KNAME="sda1" PKNAME="sda" SIZE="19327352832" TYPE="part" RO="0" MOUNTPOINT="/"  | 
21 |  | -NAME="sda6" KNAME="sda6" PKNAME="sda" SIZE="1073741824" TYPE="part" RO="0" MOUNTPOINT="[SWAP]"'''}  | 
 | 11 | +        lsblk_return_value = {"stdout": b'''NAME="sdb" KNAME="sdb" PKNAME="" SIZE="64424509440" TYPE="disk" \  | 
 | 12 | +RO="0" MOUNTPOINT=""\nNAME="sda" KNAME="sda" PKNAME="" SIZE="64424509440" TYPE="disk" RO="0" MOUNTPOINT=""  | 
 | 13 | +        NAME="sda4" KNAME="sda4" PKNAME="sda" SIZE="536870912" TYPE="part" RO="0" MOUNTPOINT=""  | 
 | 14 | +        NAME="sda2" KNAME="sda2" PKNAME="sda" SIZE="19327352832" TYPE="part" RO="0" MOUNTPOINT=""  | 
 | 15 | +        NAME="sda5" KNAME="sda5" PKNAME="sda" SIZE="4294967296" TYPE="part" RO="0" MOUNTPOINT="/var/log"  | 
 | 16 | +        NAME="sda3" KNAME="sda3" PKNAME="sda" SIZE="19863158272" TYPE="part" RO="0" MOUNTPOINT=""  | 
 | 17 | +        NAME="XSLocalEXT--1fad55d2--4f07--8145--c78a--297b173e06b0-1fad55d2--4f07--8145--c78a--297b173e06b0" \  | 
 | 18 | +KNAME="dm-0" PKNAME="sda3" SIZE="19847446528" TYPE="lvm" RO="0" \  | 
 | 19 | +MOUNTPOINT="/run/sr-mount/1fad55d2-4f07-8145-c78a-297b173e06b0"  | 
 | 20 | +        NAME="sda1" KNAME="sda1" PKNAME="sda" SIZE="19327352832" TYPE="part" RO="0" MOUNTPOINT="/"  | 
 | 21 | +        NAME="sda6" KNAME="sda6" PKNAME="sda" SIZE="1073741824" TYPE="part" RO="0" MOUNTPOINT="[SWAP]"'''}  | 
 | 22 | +        find_return_value = {"stdout": b'''/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429  | 
 | 23 | +/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429'''}  | 
 | 24 | + | 
 | 25 | +        def mock_run_command(command):  | 
 | 26 | +            if command[0] == "lsblk":  | 
 | 27 | +                assert command == ["lsblk", "-P", "-b", "-o", "NAME,KNAME,PKNAME,SIZE,TYPE,RO,MOUNTPOINT"]  | 
 | 28 | +                return lsblk_return_value  | 
 | 29 | +            if command[0] == "find":  | 
 | 30 | +                return find_return_value  | 
 | 31 | +        run_command.side_effect = mock_run_command  | 
22 | 32 | 
 
  | 
23 | 33 |         expected = ' \  | 
24 | 34 | {"blockdevices": [{"kname": "sdb", "name": "sdb", "pkname": "", "mountpoint": "", "ro": "0", "type": \  | 
25 |  | -"disk", "size": "64424509440"}, {"kname": "sda", "name": "sda", "pkname": "", "mountpoint": "", "ro": "0", "type": \  | 
26 |  | -"disk", "children": [{"kname": "sda4", "name": "sda4", "pkname": "sda", "mountpoint": "", "ro": "0", "type": "part", \  | 
27 |  | -"size": "536870912"}, {"kname": "sda2", "name": "sda2", "pkname": "sda", "mountpoint": "", "ro": "0", "type": "part", \  | 
28 |  | -"size": "19327352832"}, {"kname": "sda5", "name": "sda5", "pkname": "sda", "mountpoint": "/var/log", "ro": "0", \  | 
29 |  | -"type": "part", "size": "4294967296"}, {"kname": "sda3", "name": "sda3", "pkname": "sda", "mountpoint": "", "ro": "0", \  | 
30 |  | -"type": "part", "children": [{"kname": "dm-0", "name": \  | 
 | 35 | +"disk", "size": "64424509440", "device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 36 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, {"kname": "sda", "name": "sda", "pkname": "", \  | 
 | 37 | +"mountpoint": "", "ro": "0", "type": "disk", \  | 
 | 38 | +"children": [{"kname": "sda4", "name": "sda4", "pkname": "sda", "mountpoint": "", "ro": "0", "type": "part", \  | 
 | 39 | +"size": "536870912", "device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 40 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, \  | 
 | 41 | +{"kname": "sda2", "name": "sda2", "pkname": "sda", "mountpoint": "", "ro": "0", "type": "part", \  | 
 | 42 | +"size": "19327352832", "device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 43 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, {"kname": "sda5", "name": "sda5", \  | 
 | 44 | +"pkname": "sda", "mountpoint": "/var/log", "ro": "0", "type": "part", "size": "4294967296", \  | 
 | 45 | +"device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 46 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, {"kname": "sda3", "name": "sda3", \  | 
 | 47 | +"pkname": "sda", "mountpoint": "", "ro": "0", "type": "part", "children": [{"kname": "dm-0", "name": \  | 
31 | 48 | "XSLocalEXT--1fad55d2--4f07--8145--c78a--297b173e06b0-1fad55d2--4f07--8145--c78a--297b173e06b0", "pkname": "sda3", \  | 
32 |  | -"mountpoint": "/run/sr-mount/1fad55d2-4f07-8145-c78a-297b173e06b0", "ro": "0", "type": "lvm", "size": "19847446528"}], \  | 
33 |  | -"size": "19863158272"}, {"kname": "sda1", "name": "sda1", "pkname": "sda", "mountpoint": "/", "ro": "0", "type": \  | 
34 |  | -"part", "size": "19327352832"}, {"kname": "sda6", "name": "sda6", "pkname": "sda", "mountpoint": "[SWAP]", "ro": "0", \  | 
35 |  | -"type": "part", "size": "1073741824"}], "size": "64424509440"}]}'  | 
 | 49 | +"mountpoint": "/run/sr-mount/1fad55d2-4f07-8145-c78a-297b173e06b0", "ro": "0", "type": "lvm", "size": "19847446528", \  | 
 | 50 | +"device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 51 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}], "size": "19863158272", "device-id-paths": \  | 
 | 52 | +["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", "/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, \  | 
 | 53 | +{"kname": "sda1", "name": "sda1", "pkname": "sda", "mountpoint": "/", "ro": "0", "type": \  | 
 | 54 | +"part", "size": "19327352832", "device-id-paths": ["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 55 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}, {"kname": "sda6", "name": "sda6", "pkname": "sda", \  | 
 | 56 | +"mountpoint": "[SWAP]", "ro": "0", "type": "part", "size": "1073741824", "device-id-paths": \  | 
 | 57 | +["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", \  | 
 | 58 | +"/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}], "size": "64424509440", "device-id-paths": \  | 
 | 59 | +["/dev/disk/by-id/wwn-0x6c81f660e6c1d5002a0a4ad00dacf429", "/dev/disk/by-id/scsi-36c81f660e6c1d5002a0a4ad00dacf429"]}]}'  | 
36 | 60 |         res = list_block_devices(None, None)  | 
37 | 61 | 
 
  | 
38 | 62 |         assert json.loads(res) == json.loads(expected)  | 
39 |  | -        run_command.assert_called_once_with(["lsblk", "-P", "-b", "-o", "NAME,KNAME,PKNAME,SIZE,TYPE,RO,MOUNTPOINT"])  | 
40 | 63 | 
 
  | 
41 | 64 |     def test_lsblk_error(self, run_command):  | 
42 | 65 |         run_command.side_effect = Exception('Error!')  | 
 | 
0 commit comments