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

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

import mock 

import nfs 

import NFSSR 

import unittest 

 

 

class FakeNFSSR(NFSSR.NFSSR): 

    uuid = None 

    sr_ref = None 

    session = None 

    srcmd = None 

    other_config = {} 

 

    def __init__(self, srcmd, none): 

        self.dconf = srcmd.dconf 

        self.srcmd = srcmd 

 

 

class TestNFSSR(unittest.TestCase): 

 

    def create_nfssr(self, server='aServer', serverpath='/aServerpath', 

                     sr_uuid='asr_uuid', nfsversion=None, useroptions=''): 

        srcmd = mock.Mock() 

        srcmd.dconf = { 

            'server': server, 

            'serverpath': serverpath 

        } 

        if nfsversion: 

            srcmd.dconf.update({'nfsversion': nfsversion}) 

        if useroptions: 

            srcmd.dconf.update({'options': useroptions}) 

        srcmd.params = { 

            'command': 'some_command', 

            'device_config': {} 

        } 

        nfssr = FakeNFSSR(srcmd, None) 

        nfssr.load(sr_uuid) 

        return nfssr 

 

    @mock.patch('NFSSR.Lock', autospec=True) 

    def test_load(self, Lock): 

        self.create_nfssr() 

 

    @mock.patch('NFSSR.Lock', autospec=True) 

    @mock.patch('nfs.validate_nfsversion', autospec=True) 

    def test_load_validate_nfsversion_called(self, validate_nfsversion, Lock): 

        nfssr = self.create_nfssr(nfsversion='aNfsversion') 

 

        validate_nfsversion.assert_called_once_with('aNfsversion') 

 

    @mock.patch('NFSSR.Lock', autospec=True) 

    @mock.patch('nfs.validate_nfsversion', autospec=True) 

    def test_load_validate_nfsversion_returnused(self, validate_nfsversion, 

                                                 Lock): 

        validate_nfsversion.return_value = 'aNfsversion' 

 

        self.assertEquals(self.create_nfssr().nfsversion, "aNfsversion") 

 

    @mock.patch('NFSSR.Lock', autospec=True) 

    @mock.patch('nfs.validate_nfsversion', autospec=True) 

    def test_load_validate_nfsversion_exceptionraised(self, 

                                                      validate_nfsversion, 

                                                      Lock): 

        validate_nfsversion.side_effect = nfs.NfsException('aNfsException') 

 

        self.assertRaises(nfs.NfsException, self.create_nfssr) 

 

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

    @mock.patch('NFSSR.Lock', autospec=True) 

    @mock.patch('nfs.soft_mount', autospec=True) 

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

    @mock.patch('nfs.check_server_tcp', autospec=True) 

    @mock.patch('nfs.validate_nfsversion', autospec=True) 

    def test_attach(self, validate_nfsversion, check_server_tcp, _testhost, 

                    soft_mount, Lock, makedirs): 

        validate_nfsversion.return_value = "aNfsversionChanged" 

        nfssr = self.create_nfssr(server='aServer', serverpath='/aServerpath', 

                                  sr_uuid='UUID', useroptions='options') 

 

        nfssr.attach(None) 

 

        check_server_tcp.assert_called_once_with('aServer', 

                                                 'aNfsversionChanged') 

        soft_mount.assert_called_once_with('/var/run/sr-mount/UUID', 

                                           'aServer', 

                                           '/aServerpath/UUID', 

                                           'tcp', 

                                           useroptions='options', 

                                           timeout=100, 

                                           nfsversion='aNfsversionChanged', 

                                           retrans=3)