# Owner(s): ["oncall: package/deploy"] import textwrap import types from torch.utils._freeze import Freezer, PATH_MARKER from torch.testing._internal.common_utils import run_tests, TestCase class TestFreezer(TestCase): """Tests the freeze.py script""" def test_compile_string(self): freezer = Freezer(True) code_str = textwrap.dedent( """ class MyCls: def __init__(self): pass """ ) co = freezer.compile_string(code_str) num_co = 0 def verify_filename(co: types.CodeType): nonlocal num_co if not isinstance(co, types.CodeType): return self.assertEqual(PATH_MARKER, co.co_filename) num_co += 1 for nested_co in co.co_consts: verify_filename(nested_co) verify_filename(co) # there is at least one nested code object besides the top level one self.assertTrue(num_co >= 2) if __name__ == "__main__": run_tests()