diff options
Diffstat (limited to 'tests/shared_dict_test.py')
| -rwxr-xr-x | tests/shared_dict_test.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/tests/shared_dict_test.py b/tests/shared_dict_test.py index 230bdb9..68a3788 100755 --- a/tests/shared_dict_test.py +++ b/tests/shared_dict_test.py @@ -4,6 +4,7 @@ """shared_dict unittest.""" +import random import unittest import parallelize as p @@ -14,13 +15,16 @@ from collect.shared_dict import SharedDict class SharedDictTest(unittest.TestCase): @p.parallelize(method=p.Method.PROCESS) - def doit(self, n: int, dict_name: str): - d = SharedDict(dict_name) + def doit(self, n: int, dict_name: str, parent_lock_id: int): + assert id(SharedDict.LOCK) == parent_lock_id + d = SharedDict(dict_name, None) try: msg = f'Hello from shard {n}' - d[n] = msg - self.assertTrue(n in d) - self.assertEqual(msg, d[n]) + for x in range(0, 1000): + d[n] = msg + self.assertTrue(n in d) + self.assertEqual(msg, d[n]) + y = d.get(random.randrange(0, 99), None) return n finally: d.close() @@ -32,23 +36,25 @@ class SharedDictTest(unittest.TestCase): self.assertEqual(dict_name, d.get_name()) results = [] for n in range(100): - f = self.doit(n, d.get_name()) + f = self.doit(n, d.get_name(), id(SharedDict.LOCK)) results.append(f) smart_future.wait_all(results) for f in results: self.assertTrue(f.wrapped_future.done()) for k in d: self.assertEqual(d[k], f'Hello from shard {k}') + assert len(d) == 100 finally: d.close() d.cleanup() @p.parallelize(method=p.Method.PROCESS) - def add_one(self, name: str): + def add_one(self, name: str, expected_lock_id: int): d = SharedDict(name) + self.assertEqual(id(SharedDict.LOCK), expected_lock_id) try: for x in range(1000): - with SharedDict.MPLOCK: + with SharedDict.LOCK: d["sum"] += 1 finally: d.close() @@ -60,7 +66,7 @@ class SharedDictTest(unittest.TestCase): d["sum"] = 0 results = [] for n in range(10): - f = self.add_one(d.get_name()) + f = self.add_one(d.get_name(), id(SharedDict.LOCK)) results.append(f) smart_future.wait_all(results) self.assertEqual(10000, d["sum"]) |
