예제 #1
0
 def test_walk(self):
     """Test the walk() function.
     """
     #
     # Test onerror
     #
     e = MagicMock()
     err = HpssOSError('foobar')
     with patch('hpsspy.os._os.listdir') as ld:
         ld.side_effect = err
         w = walk('/home/b/bweaver', onerror=e)
         try:
             n = next(w)
         except StopIteration:
             pass
         ld.assert_called_with('/home/b/bweaver')
     e.assert_called_with(err)
     #
     # Test standard operation
     #
     d = MagicMock()
     d.isdir = True
     d.__str__.return_value = 'subdir'
     f = MagicMock()
     f.isdir = False
     with patch('hpsspy.os._os.listdir') as ld:
         with patch('hpsspy.os.path.islink') as i:
             i.return_value = False
             ld.side_effect = [[d, f], []]
             w = walk('/home/b/bweaver')
             n = next(w)
             self.assertEqual(n, ('/home/b/bweaver', [d], [f]))
             ld.assert_called_with('/home/b/bweaver')
             n = next(w)
             self.assertEqual(n, ('/home/b/bweaver/subdir', [], []))
             i.assert_called_with('/home/b/bweaver/subdir')
     #
     # Test topdown operation
     #
     d = MagicMock()
     d.isdir = True
     d.__str__.return_value = 'subdir'
     f = MagicMock()
     f.isdir = False
     with patch('hpsspy.os._os.listdir') as ld:
         with patch('hpsspy.os.path.islink') as i:
             i.return_value = False
             ld.side_effect = [[d, f], []]
             w = walk('/home/b/bweaver', topdown=False)
             n = next(w)
             self.assertEqual(n, ('/home/b/bweaver/subdir', [], []))
             i.assert_called_with('/home/b/bweaver/subdir')
             n = next(w)
             self.assertEqual(n, ('/home/b/bweaver', [d], [f]))
             ld.assert_called_with('/home/b/bweaver/subdir')
예제 #2
0
 def test_HpssFile_isdir(self):
     """Test the isdir property on symbolic links.
     """
     lspath = '/home/b/bweaver'
     with patch('hpsspy.os.stat') as s:
         m = MagicMock()
         m.isdir = True
         s.return_value = m
         f = HpssFile(lspath, 'l', 'rwxrwxrwx', 1, 'bweaver', 'bweaver',
                      21, 'Aug', 22, '2014',
                      'cosmo@ -> /nersc/projects/cosmo')
         self.assertTrue(f.islink)
         self.assertTrue(f.isdir)
         s.assert_called_with('/nersc/projects/cosmo')
     with patch('hpsspy.os.stat') as s:
         m = MagicMock()
         m.isdir = False
         s.return_value = m
         f = HpssFile(lspath, 'l', 'rwxrwxrwx', 1, 'bweaver', 'bweaver',
                      21, 'Aug', 22, '2014', 'cosmo@ -> cosmo.txt')
         self.assertTrue(f.islink)
         self.assertFalse(f.isdir)
         s.assert_called_with('/home/b/bweaver/cosmo.txt')