Fixing - Issue7026 - RuntimeError: dictionary changed size during iteration. Patch by flox
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 69f31a0..9fef0d2 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -31,7 +31,8 @@
import unittest
from decimal import *
import numbers
-from test.test_support import (run_unittest, run_doctest, is_resource_enabled)
+from test.test_support import (run_unittest, run_doctest,
+ is_resource_enabled, check_warnings)
import random
try:
import threading
@@ -202,7 +203,7 @@
if skip_expected:
raise unittest.SkipTest
return
- for line in open(file).xreadlines():
+ for line in open(file):
line = line.replace('\r\n', '').replace('\n', '')
#print line
try:
@@ -361,8 +362,10 @@
myexceptions = self.getexceptions()
self.context.clear_flags()
- myexceptions.sort()
- theirexceptions.sort()
+ # Silence Py3k warning
+ with check_warnings():
+ myexceptions.sort()
+ theirexceptions.sort()
self.assertEqual(result, ans,
'Incorrect answer for ' + s + ' -- got ' + result)
@@ -617,12 +620,14 @@
('//', '__floordiv__', '__rfloordiv__'),
('**', '__pow__', '__rpow__')
]
- if 1/2 == 0:
- # testing with classic division, so add __div__
- oplist.append(('/', '__div__', '__rdiv__'))
- else:
- # testing with -Qnew, so add __truediv__
- oplist.append(('/', '__truediv__', '__rtruediv__'))
+ # Silence Py3k warning
+ with check_warnings():
+ if 1/2 == 0:
+ # testing with classic division, so add __div__
+ oplist.append(('/', '__div__', '__rdiv__'))
+ else:
+ # testing with -Qnew, so add __truediv__
+ oplist.append(('/', '__truediv__', '__rtruediv__'))
for sym, lop, rop in oplist:
setattr(E, lop, lambda self, other: 'str' + lop + str(other))
@@ -1194,8 +1199,10 @@
self.assertEqual(a, b)
# with None
- self.assertFalse(Decimal(1) < None)
- self.assertTrue(Decimal(1) > None)
+ # Silence Py3k warning
+ with check_warnings():
+ self.assertFalse(Decimal(1) < None)
+ self.assertTrue(Decimal(1) > None)
def test_copy_and_deepcopy_methods(self):
d = Decimal('43.24')
@@ -1704,11 +1711,14 @@
for flag in extra_flags:
if flag not in expected_flags:
expected_flags.append(flag)
- expected_flags.sort()
# flags we actually got
new_flags = [k for k,v in context.flags.items() if v]
- new_flags.sort()
+
+ # Silence Py3k warning
+ with check_warnings():
+ expected_flags.sort()
+ new_flags.sort()
self.assertEqual(ans, new_ans,
"operation produces different answers depending on flags set: " +