diff --git a/configcatclienttests/test_concurrency.py b/configcatclienttests/test_concurrency.py index cdfc3d9..7a2050d 100644 --- a/configcatclienttests/test_concurrency.py +++ b/configcatclienttests/test_concurrency.py @@ -12,24 +12,29 @@ logging.basicConfig(level=logging.WARN) -def _manual_force_refresh(client, repeat=10, delay=0.1): - for i in range(repeat): +def _manual_force_refresh(sdk_key, repeat=10, delay=0.1): + client = configcatclient.get(sdk_key) + for _ in range(repeat): client.force_refresh() sleep(delay) class ConcurrencyTests(unittest.TestCase): - @pytest.mark.skipif(sys.platform == 'win32' or sys.platform == 'darwin', reason="TypeError: can't pickle _thread.lock objects") + def test_concurrency_process(self): - client = configcatclient.get('PKDVCLf-Hq-h-kCzMp-L7Q/psuH7BGHoUmdONrzzUOY7A') + sdk_key = "PKDVCLf-Hq-h-kCzMp-L7Q/psuH7BGHoUmdONrzzUOY7A" + client = configcatclient.get(sdk_key) value = client.get_value('keySampleText', False, User('key')) print("'keySampleText' value from ConfigCat: " + str(value)) - p1 = multiprocessing.Process(target=_manual_force_refresh, args=(client,)) - p2 = multiprocessing.Process(target=_manual_force_refresh, args=(client,)) + p1 = multiprocessing.Process(target=_manual_force_refresh, args=(sdk_key,)) + p2 = multiprocessing.Process(target=_manual_force_refresh, args=(sdk_key,)) p1.start() p2.start() p1.join() p2.join() client.close() + + self.assertEqual(p1.exitcode, 0, "Process {0} exited with code {1}".format(p1.pid, p1.exitcode)) + self.assertEqual(p2.exitcode, 0, "Process {0} exited with code {1}".format(p2.pid, p2.exitcode))