From 87f9b46f15797efab3fc859112b3e8b0c3d893db Mon Sep 17 00:00:00 2001 From: Hynek Schlawack Date: Mon, 10 Dec 2012 16:29:57 +0100 Subject: [PATCH] #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. :( --- Lib/test/test_shutil.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 9509d2a69f9..a9b4676dfff 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.