From: Hynek Schlawack Date: Mon, 10 Dec 2012 15:29:57 +0000 (+0100) Subject: #15872: Some more Windows related tuning to shutil.rmtree tests X-Git-Tag: v3.2.4rc1~276 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=87f9b46f15797efab3fc859112b3e8b0c3d893db;p=thirdparty%2FPython%2Fcpython.git #15872: Some more Windows related tuning to shutil.rmtree tests Turns out, the snakebite bots behave also their peculiarities. I'm really not proud of this stream of commits. :( --- diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 9509d2a69f96..a9b4676dfff3 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -132,13 +132,12 @@ class TestShutil(unittest.TestCase): filename = os.path.join(tmpdir, "tstfile") with self.assertRaises(OSError) as cm: shutil.rmtree(filename) - if cm.exception.filename.endswith('*.*'): - rm_name = os.path.join(filename, '*.*') - else: - rm_name = filename - self.assertEqual(cm.exception.filename, rm_name) + # The reason for this rather odd construct is that Windows sprinkles + # a \*.* at the end of file names. But only sometimes on some buildbots + possible_args = [filename, os.path.join(filename, '*.*')] + self.assertIn(cm.exception.filename, possible_args) self.assertTrue(os.path.exists(filename)) - # test that ignore_errors option is honoured + # test that ignore_errors option is honored shutil.rmtree(filename, ignore_errors=True) self.assertTrue(os.path.exists(filename)) errors = [] @@ -149,11 +148,11 @@ class TestShutil(unittest.TestCase): self.assertIs(errors[0][0], os.listdir) self.assertEqual(errors[0][1], filename) self.assertIsInstance(errors[0][2][1], OSError) - self.assertEqual(errors[0][2][1].filename, rm_name) + self.assertIn(errors[0][2][1].filename, possible_args) self.assertIs(errors[1][0], os.rmdir) self.assertEqual(errors[1][1], filename) self.assertIsInstance(errors[1][2][1], OSError) - self.assertEqual(errors[1][2][1].filename, rm_name) + self.assertIn(errors[1][2][1].filename, possible_args) # See bug #1071513 for why we don't run this on cygwin # and bug #1076467 for why we don't run this as root.