From 26f3f40fc96118490577e4466e5f3fba227b74a0 Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Wed, 4 Jun 2014 17:40:32 -0400 Subject: [PATCH] Allow destructive ops during son iteration and let python handle (identical to iter on list) --- bson/son.py | 6 ------ test/test_son.py | 5 ----- 2 files changed, 11 deletions(-) diff --git a/bson/son.py b/bson/son.py index 2a8bb5e90..70df2f5f8 100644 --- a/bson/son.py +++ b/bson/son.py @@ -120,13 +120,7 @@ class SON(dict): # efficient. # second level definitions support higher levels def __iter__(self): - """ - Cannot remove nor add keys while iterating - """ - key_len = len(self.__keys) for k in self.__keys: - if len(self.__keys) != key_len: - raise RuntimeError("son changed length during iteration") yield k def has_key(self, key): diff --git a/test/test_son.py b/test/test_son.py index ee1aa6d77..18d171621 100644 --- a/test/test_son.py +++ b/test/test_son.py @@ -163,11 +163,6 @@ class TestSON(unittest.TestCase): test_son = SON([(1, 100), (2, 200), (3, 300)]) for ele in test_son: self.assertEqual(ele * 100, test_son[ele]) - # test failure case - def break_iter(): - for ele in test_son: - del test_son[ele] - self.assertRaises(RuntimeError, break_iter) def test_contains_has(self): """