On 2010/11/27 3:52, Brian Curtin wrote: > On Fri, Nov 26, 2010 at 12:44, hirokazu.yamamoto<python-checkins at python.org >> wrote: > >> Author: hirokazu.yamamoto >> Date: Fri Nov 26 19:44:28 2010 >> New Revision: 86817 >> >> Log: >> Now can reproduce the error on AMD64 Windows Server 2008 >> even where os.symlink is not supported. >> >> >> Modified: >> python/branches/py3k-stat-on-windows/Lib/test/test_shutil.py >> >> Modified: python/branches/py3k-stat-on-windows/Lib/test/test_shutil.py >> >> ============================================================================== >> --- python/branches/py3k-stat-on-windows/Lib/test/test_shutil.py >> (original) >> +++ python/branches/py3k-stat-on-windows/Lib/test/test_shutil.py Fri >> Nov 26 19:44:28 2010 >> @@ -271,24 +271,32 @@ >> shutil.rmtree(src_dir) >> shutil.rmtree(os.path.dirname(dst_dir)) >> >> - @support.skip_unless_symlink >> + @unittest.skipUnless(hasattr(os, 'link'), 'requires os.link') >> def test_dont_copy_file_onto_link_to_itself(self): >> # bug 851123. >> os.mkdir(TESTFN) >> src = os.path.join(TESTFN, 'cheese') >> dst = os.path.join(TESTFN, 'shop') >> try: >> - f = open(src, 'w') >> - f.write('cheddar') >> - f.close() >> - >> - if hasattr(os, "link"): >> - os.link(src, dst) >> - self.assertRaises(shutil.Error, shutil.copyfile, src, dst) >> - with open(src, 'r') as f: >> - self.assertEqual(f.read(), 'cheddar') >> - os.remove(dst) >> + with open(src, 'w') as f: >> + f.write('cheddar') >> + os.link(src, dst) >> + self.assertRaises(shutil.Error, shutil.copyfile, src, dst) >> + with open(src, 'r') as f: >> + self.assertEqual(f.read(), 'cheddar') >> + os.remove(dst) >> + finally: >> + shutil.rmtree(TESTFN, ignore_errors=True) >> >> + @support.skip_unless_symlink >> + def test_dont_copy_file_onto_symlink_to_itself(self): >> + # bug 851123. >> + os.mkdir(TESTFN) >> + src = os.path.join(TESTFN, 'cheese') >> + dst = os.path.join(TESTFN, 'shop') >> + try: >> + with open(src, 'w') as f: >> + f.write('cheddar') >> # Using `src` here would mean we end up with a symlink pointing >> # to TESTFN/TESTFN/cheese, while it should point at >> # TESTFN/cheese. >> @@ -298,10 +306,7 @@ >> self.assertEqual(f.read(), 'cheddar') >> os.remove(dst) >> finally: >> - try: >> - shutil.rmtree(TESTFN) >> - except OSError: >> - pass >> + shutil.rmtree(TESTFN, ignore_errors=True) >> >> @support.skip_unless_symlink >> def test_rmtree_on_symlink(self): > > > You might be working on something slightly different, but I have an issue > created for the failure of that test: http://bugs.python.org/issue10540 > > It slipped past me because I was only running the test suite as a regular > user without the required symlink privilege, so the test was skipped. That > Server 2008 build slave runs the test suite as administrator, so it was > running that test and going into the os.link block, which it didn't do until > r86733. I'm not sure, but why does os.path.samefile return False for hard link on windows? MSDN says, > A hard link is the file system representation of a file by which more > than one path references a single file in the same volume. (http://msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx) I know st_ino on windows is a bit different from POSIX, so, just I'm not sure. ;-)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4