def test_info_mtime(self): p = URI("test.txt") now = datetime.datetime.now() size = p.info().size with p.open('a') as fs: fs.write(' again') self.assertTrue(p.info().mtime >= p.info().ctime) self.assertTrue( p.info().size > size) # due to now's millisecond resolution, we must ignore milliseconds self.assertTrue(p.info().mtime.timetuple()[:6] >= now.timetuple()[:6])
def test_setting_mode(self): # setting the permission flags are not supported on windows if sys.platform != "win32": p = URI("test.txt") mode = p.info().mode new_mode = mode | stat.S_IXUSR p.info(dict(mode=new_mode)) self.assertEqual( p.info().mode, new_mode, )
def test_info_on_symlinks(self): a_file = URI("test.txt") a_link = URI("test_link") with a_file.open('w') as f: f.write("a" * 800) if not a_file.connection.supports_symlinks(): return self.assertEqual(a_file.info().size, 800) self.assertEqual(a_link.info().size, 800) self.assertNotEqual(a_link.info(followlinks=False).size, 800)
def test_set_info_on_symlinks(self): # lchmod is not supported on Linux, only on OSX a_file = URI("test.txt") a_link = URI("test_link") with a_file.open('w') as f: f.write("a" * 800) if not a_file.connection.supports_symlinks(): return self.assertEqual(a_file.info().size, 800) self.assertEqual(a_link.info().size, 800) self.assertNotEqual(a_link.info(followlinks=False).size, 800) orig_info = a_file.info() a_link.info({'mode': 0o120700}, followlinks=False) self.assertEqual(a_file.info().mode, orig_info.mode) self.assertEqual(a_link.info().mode, orig_info.mode) self.assertEqual(a_link.info(followlinks=False).mode, 0o120700)
def test_info_ctime(self): p = URI("test.txt") self.assertTrue(p.info().ctime <= datetime.datetime.now()) self.assertEqual(p.info().ctime, p.info().mtime)