Rev 3506: Add a test case that shows the mtime is not being returned correctly. in http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/win32_find_files

John Arbash Meinel john at arbash-meinel.com
Thu Jun 26 22:18:06 BST 2008


At http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/win32_find_files

------------------------------------------------------------
revno: 3506
revision-id: john at arbash-meinel.com-20080626211800-mb234d9wpgxklotf
parent: john at arbash-meinel.com-20080626164622-s0dpqlxzdybnmcb8
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: win32_find_files
timestamp: Thu 2008-06-26 16:18:00 -0500
message:
  Add a test case that shows the mtime is not being returned correctly.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2008-06-26 16:46:22 +0000
+++ b/bzrlib/tests/test_osutils.py	2008-06-26 21:18:00 +0000
@@ -21,6 +21,7 @@
 import socket
 import stat
 import sys
+import time
 
 import bzrlib
 from bzrlib import (
@@ -1050,6 +1051,53 @@
         self._filter_out_stat(result)
         self.assertEqual(expected_dirblocks, result)
 
+    def assertStatIsCorrect(self, path, win32stat):
+        os_stat = os.stat(path)
+        self.assertEqual(os_stat.st_size, win32stat.st_size)
+        import pdb; pdb.set_trace()
+        self.assertEqual(int(os_stat.st_mtime), win32stat.st_mtime)
+        self.assertEqual(int(os_stat.st_ctime), win32stat.st_ctime)
+        self.assertEqual(int(os_stat.st_atime), win32stat.st_atime)
+        self.assertEqual(os_stat.st_dev, win32stat.st_dev)
+        self.assertEqual(os_stat.st_ino, win32stat.st_ino)
+        self.assertEqual(os_stat.st_mode, win32stat.st_mode)
+
+    def test__walkdirs_utf_win32_find_file_stat_file(self):
+        """make sure our Stat values are valid"""
+        self.requireFeature(Win32FileFeature)
+        self.requireFeature(tests.UnicodeFilenameFeature)
+        name0u = u'0file-\xb6'
+        name0 = name0u.encode('utf8')
+        self.build_tree([name0u])
+        # I hate to sleep() here, but I'm trying to make the ctime different
+        # from the mtime
+        time.sleep(2)
+        f = open(name0u, 'ab')
+        try:
+            f.write('just a small update')
+        finally:
+            f.close()
+
+        result = list(osutils._walkdirs_utf8_win32_find_file(u'.'))
+        entry = result[0][1][0]
+        self.assertEqual((name0, name0, 'file'), entry[:3])
+        self.assertEqual(u'./' + name0u, entry[4])
+        self.assertStatIsCorrect(entry[4], entry[3])
+
+    def test__walkdirs_utf_win32_find_file_stat_directory(self):
+        """make sure our Stat values are valid"""
+        self.requireFeature(Win32FileFeature)
+        self.requireFeature(tests.UnicodeFilenameFeature)
+        name0u = u'0dir-\u062c\u0648'
+        name0 = name0u.encode('utf8')
+        self.build_tree([name0u + '/'])
+
+        result = list(osutils._walkdirs_utf8_win32_find_file(u'.'))
+        entry = result[0][1][0]
+        self.assertEqual((name0, name0, 'directory'), entry[:3])
+        self.assertEqual(u'./' + name0u, entry[4])
+        self.assertStatIsCorrect(entry[4], entry[3])
+
     def assertPathCompare(self, path_less, path_greater):
         """check that path_less and path_greater compare correctly."""
         self.assertEqual(0, osutils.compare_paths_prefix_order(



More information about the bazaar-commits mailing list