File tree Expand file tree Collapse file tree
cloudpickle_testpkg/_cloudpickle_testpkg Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -715,6 +715,13 @@ def test_module_importability(self):
715715 assert _is_importable (m )
716716 assert pickle_depickle (m , protocol = self .protocol ) is m
717717
718+ # Do the same for an importable dynamic submodule inside a dynamic
719+ # module inside a file-backed module.
720+ import _cloudpickle_testpkg .mod .dynamic_submodule .dynamic_subsubmodule as sm # noqa
721+ assert _is_dynamic (sm )
722+ assert _is_importable (sm )
723+ assert pickle_depickle (sm , protocol = self .protocol ) is sm
724+
718725 expected = "cannot check importability of object instances"
719726 with pytest .raises (TypeError , match = expected ):
720727 _is_importable (object ())
Original file line number Diff line number Diff line change 2424dynamic_submodule = types .ModuleType (submodule_name )
2525sys .modules [submodule_name ] = dynamic_submodule
2626
27+ # What about a dynamic submodule inside a dynamic submodule inside an
28+ # importable module?
29+ subsubmodule_name = (
30+ '_cloudpickle_testpkg.mod.dynamic_submodule.dynamic_subsubmodule'
31+ )
32+ dynamic_subsubmodule = types .ModuleType (subsubmodule_name )
33+ dynamic_submodule .dynamic_subsubmodule = dynamic_subsubmodule
34+ sys .modules [subsubmodule_name ] = dynamic_subsubmodule
35+
2736
2837def module_function ():
2938 return "hello from a module!"
You can’t perform that action at this time.
0 commit comments