Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

import unittest 

import mock 

 

import scsiutil 

 

 

class Test_sg_readcap(unittest.TestCase): 

 

    def verify_sg_readcap(self, doexec, expected_result): 

        result = scsiutil.sg_readcap('/dev/sda') 

        doexec.assert_called_with(['/usr/bin/sg_readcap', '-b', '/dev/sda']) 

        self.assertEquals(result, expected_result) 

 

    @mock.patch('util.doexec', autospec=True) 

    def test_sg_readcap_10(self, doexec): 

        fake_out = "0x3a376030 0x200\n" 

        doexec.return_value = (0, fake_out, '') 

        self.verify_sg_readcap(doexec, 500074307584) 

 

    # Can't use autospec due to http://bugs.python.org/issue17826 

    @mock.patch('util.doexec') 

    def test_capacity_data_changed_rc6(self, doexec): 

        fake_out = "0x3a376030 0x200\n" 

        doexec.side_effect = [(6, 'something else', ''), (0, fake_out, '')] 

        self.verify_sg_readcap(doexec, 500074307584) 

 

    @mock.patch('util.doexec', autospec=True) 

    def test_sg_readcap_16(self, doexec): 

        fake_out = ("READ CAPACITY (10) indicates device capacity too large\n" 

                    "now trying 16 byte cdb variant\n" 

                    "0x283d8e000 0x200\n") 

        doexec.return_value = (0, fake_out, '') 

        self.verify_sg_readcap(doexec, 5530605060096)