@@ -9,12 +9,14 @@ class Test_nfs(unittest.TestCase):
99
1010 @mock .patch ('util.pread' , autospec = True )
1111 def test_check_server_tcp (self , pread ):
12+ pread .return_value = " 100003 4,3,2 udp6,tcp6,udp,tcp nfs superuser"
1213 nfs .check_server_tcp ('aServer' , 'tcp' )
1314
1415 pread .assert_called_once_with (['/usr/sbin/rpcinfo' , '-s' , 'aServer' ], quiet = False )
1516
1617 @mock .patch ('util.pread' , autospec = True )
1718 def test_check_server_tcp_nfsversion (self , pread ):
19+ pread .return_value = " 100003 4,3,2 udp6,tcp6,udp,tcp nfs superuser"
1820 nfs .check_server_tcp ('aServer' , 'tcp' , 'aNfsversion' )
1921
2022 pread .assert_called_once_with (['/usr/sbin/rpcinfo' , '-s' , 'aServer' ], quiet = False )
@@ -42,23 +44,28 @@ def test_check_server_service(self, pread, get_supported_nfs_versions, sleep):
4244 # Mock==1.0.1 (all that is available in Epel) doesn't suport this
4345 #sleep.assert_not_called()
4446
47+ @mock .patch ('nfs._is_nfs4_supported' , autospec = True )
4548 @mock .patch ('time.sleep' , autospec = True )
4649 # Can't use autospec due to http://bugs.python.org/issue17826
4750 @mock .patch ('util.pread' )
48- def test_check_server_service_with_retries (self , pread , sleep ):
51+ def test_check_server_service_with_retries (self , pread , sleep , nfs4sup ):
4952 pread .side_effect = ["" ,
5053 "" ,
51- " 100003 4,3,2 udp6,tcp6,udp,tcp nfs superuser" ]
54+ " 100003 3,2 udp6,tcp6,udp,tcp nfs superuser" ]
55+ nfs4sup .return_value = False
56+
5257 service_found = nfs .check_server_service ('aServer' , 'tcp' )
5358
5459 self .assertTrue (service_found )
5560 self .assertEqual (len (pread .mock_calls ), 3 )
5661 pread .assert_called_with (['/usr/sbin/rpcinfo' , '-s' , 'aServer' ])
5762
63+ @mock .patch ('nfs._is_nfs4_supported' , autospec = True )
5864 @mock .patch ('time.sleep' , autospec = True )
5965 @mock .patch ('util.pread' , autospec = True )
60- def test_check_server_service_not_available (self , pread , sleep ):
66+ def test_check_server_service_not_available (self , pread , sleep , nfs4sup ):
6167 pread .return_value = ""
68+ nfs4sup .return_value = False
6269
6370 service_found = nfs .check_server_service ('aServer' , 'tcp' )
6471
@@ -86,6 +93,30 @@ def test_check_server_service_first_call_exception(self, pread, get_supported_nf
8693 self .assertTrue (service_found )
8794 self .assertEqual (len (pread .mock_calls ), 2 )
8895
96+ @mock .patch ('nfs._is_nfs4_supported' , autospec = True )
97+ @mock .patch ('util.pread2' )
98+ def test_get_supported_nfs_versions_rpc_nov4 (self , pread2 , nfs4sup ):
99+ pread2 .side_effect = [" 100003 3,2 udp6,tcp6,udp,tcp nfs superuser" ]
100+ nfs4sup .return_value = True
101+
102+ versions = nfs .get_supported_nfs_versions ('aServer' , 'tcp' )
103+
104+ self .assertEqual (versions , ['3' , '4' ])
105+ self .assertEqual (len (pread2 .mock_calls ), 1 )
106+ pread2 .assert_called_with (['/usr/sbin/rpcinfo' , '-s' , 'aServer' ])
107+
108+ @mock .patch ('nfs._is_nfs4_supported' , autospec = True )
109+ @mock .patch ('util.pread2' )
110+ def test_get_supported_nfs_versions_nov4 (self , pread2 , nfs4sup ):
111+ pread2 .side_effect = [" 100003 3,2 udp6,tcp6,udp,tcp nfs superuser" ]
112+ nfs4sup .return_value = False
113+
114+ versions = nfs .get_supported_nfs_versions ('aServer' , 'tcp' )
115+
116+ self .assertEqual (versions , ['3' ])
117+ self .assertEqual (len (pread2 .mock_calls ), 1 )
118+ pread2 .assert_called_with (['/usr/sbin/rpcinfo' , '-s' , 'aServer' ])
119+
89120 def get_soft_mount_pread (self , binary , vers ):
90121 return ([binary , 'remoteserver:remotepath' , 'mountpoint' , '-o' ,
91122 'soft,proto=transport,vers=%s,acdirmin=0,acdirmax=0' % vers ])
0 commit comments