From 9d769d18408ce1a56c5131aa5803ce175f23e6f5 Mon Sep 17 00:00:00 2001 From: Pierre Glaser Date: Thu, 6 Jun 2019 15:11:22 +0200 Subject: [PATCH] TST test nested globals extraction --- tests/cloudpickle_test.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/cloudpickle_test.py b/tests/cloudpickle_test.py index 925a87f44..e260a35ec 100644 --- a/tests/cloudpickle_test.py +++ b/tests/cloudpickle_test.py @@ -1816,6 +1816,23 @@ def test___reduce___returns_string(self): some_singleton, protocol=self.protocol) assert depickled_singleton is some_singleton + def test_cloudpickle_extract_nested_globals(self): + def function_factory(): + def inner_function(): + global _TEST_GLOBAL_VARIABLE + return _TEST_GLOBAL_VARIABLE + return inner_function + + globals_ = cloudpickle.CloudPickler.extract_code_globals( + function_factory.__code__) + assert globals_ == {'_TEST_GLOBAL_VARIABLE'} + + depickled_factory = pickle_depickle(function_factory, + protocol=self.protocol) + inner_func = depickled_factory() + assert inner_func() == _TEST_GLOBAL_VARIABLE + + class Protocol2CloudPickleTest(CloudPickleTest): protocol = 2