pytorch
1# Owner(s): ["oncall: package/deploy"]
2
3from io import BytesIO4
5from torch.package import PackageExporter, PackageImporter, sys_importer6from torch.testing._internal.common_utils import run_tests7
8
9try:10from .common import PackageTestCase11except ImportError:12# Support the case where we run this file directly.13from common import PackageTestCase14
15
16class TestRepackage(PackageTestCase):17"""Tests for repackaging."""18
19def test_repackage_import_indirectly_via_parent_module(self):20from package_d.imports_directly import ImportsDirectlyFromSubSubPackage21from package_d.imports_indirectly import ImportsIndirectlyFromSubPackage22
23model_a = ImportsDirectlyFromSubSubPackage()24buffer = BytesIO()25with PackageExporter(buffer) as pe:26pe.intern("**")27pe.save_pickle("default", "model.py", model_a)28
29buffer.seek(0)30pi = PackageImporter(buffer)31loaded_model = pi.load_pickle("default", "model.py")32
33model_b = ImportsIndirectlyFromSubPackage()34buffer = BytesIO()35with PackageExporter(36buffer,37importer=(38pi,39sys_importer,40),41) as pe:42pe.intern("**")43pe.save_pickle("default", "model_b.py", model_b)44
45
46if __name__ == "__main__":47run_tests()48