diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py --- a/Lib/test/test_ftplib.py +++ b/Lib/test/test_ftplib.py @@ -479,20 +479,16 @@ class TestFTPClass(TestCase): def test_rmd(self): self.client.rmd('foo') def test_cwd(self): dir = self.client.cwd('/foo') self.assertEqual(dir, '250 cwd ok') - def test_mkd(self): - dir = self.client.mkd('/foo') - self.assertEqual(dir, '/foo') - def test_pwd(self): dir = self.client.pwd() self.assertEqual(dir, 'pwd ok') def test_quit(self): self.assertEqual(self.client.quit(), '221 quit ok') # Ensure the connection gets closed; sock attribute should be None self.assertEqual(self.client.sock, None) diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -479,17 +479,17 @@ class UnicodeTest( self.assertEqual(u'\U0001044F\U0001044F'.upper(), u'\U00010427\U00010427') self.assertEqual(u'\U00010427\U0001044F'.upper(), u'\U00010427\U00010427') self.assertEqual(u'X\U00010427x\U0001044F'.upper(), u'X\U00010427X\U00010427') @requires_wide_build - def test_capitalize(self): + def test_capitalize_wide_build(self): string_tests.CommonTest.test_capitalize(self) self.assertEqual(u'\U0001044F'.capitalize(), u'\U00010427') self.assertEqual(u'\U0001044F\U0001044F'.capitalize(), u'\U00010427\U0001044F') self.assertEqual(u'\U00010427\U0001044F'.capitalize(), u'\U00010427\U0001044F') self.assertEqual(u'\U0001044F\U00010427'.capitalize(), u'\U00010427\U0001044F') diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py --- a/Lib/test/test_weakset.py +++ b/Lib/test/test_weakset.py @@ -6,17 +6,16 @@ import copy import string import os from random import randrange, shuffle import sys import warnings import collections import gc import contextlib -from UserString import UserString as ustr class Foo: pass class SomeClass(object): def __init__(self, value): self.value = value @@ -444,67 +443,14 @@ class TestWeakSet(unittest.TestCase): n1 = len(s) del it n2 = len(s) self.assertGreaterEqual(n1, 0) self.assertLessEqual(n1, N) self.assertGreaterEqual(n2, 0) self.assertLessEqual(n2, n1) - def test_weak_destroy_while_iterating(self): - # Issue #7105: iterators shouldn't crash when a key is implicitly removed - # Create new items to be sure no-one else holds a reference - items = [ustr(c) for c in ('a', 'b', 'c')] - s = WeakSet(items) - it = iter(s) - next(it) # Trigger internal iteration - # Destroy an item - del items[-1] - gc.collect() # just in case - # We have removed either the first consumed items, or another one - self.assertIn(len(list(it)), [len(items), len(items) - 1]) - del it - # The removal has been committed - self.assertEqual(len(s), len(items)) - - def test_weak_destroy_and_mutate_while_iterating(self): - # Issue #7105: iterators shouldn't crash when a key is implicitly removed - items = [ustr(c) for c in string.ascii_letters] - s = WeakSet(items) - @contextlib.contextmanager - def testcontext(): - try: - it = iter(s) - # Start iterator - yielded = ustr(str(next(it))) - # Schedule an item for removal and recreate it - u = ustr(str(items.pop())) - if yielded == u: - # The iterator still has a reference to the removed item, - # advance it (issue #20006). - next(it) - gc.collect() # just in case - yield u - finally: - it = None # should commit all removals - - with testcontext() as u: - self.assertFalse(u in s) - with testcontext() as u: - self.assertRaises(KeyError, s.remove, u) - self.assertFalse(u in s) - with testcontext() as u: - s.add(u) - self.assertTrue(u in s) - t = s.copy() - with testcontext() as u: - s.update(t) - self.assertEqual(len(s), len(t)) - with testcontext() as u: - s.clear() - self.assertEqual(len(s), 0) - def test_main(verbose=None): test_support.run_unittest(TestWeakSet) if __name__ == "__main__": test_main(verbose=True)