17db96d56Sopenharmony_ci"""Sanity-check tests for the "freeze" tool."""
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ciimport sys
47db96d56Sopenharmony_ciimport textwrap
57db96d56Sopenharmony_ciimport unittest
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_cifrom test import support
87db96d56Sopenharmony_cifrom test.support import os_helper
97db96d56Sopenharmony_cifrom test.test_tools import imports_under_tool, skip_if_missing
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ciskip_if_missing('freeze')
127db96d56Sopenharmony_ciwith imports_under_tool('freeze', 'test'):
137db96d56Sopenharmony_ci    import freeze as helper
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci@support.requires_zlib()
167db96d56Sopenharmony_ci@unittest.skipIf(sys.platform.startswith('win'), 'not supported on Windows')
177db96d56Sopenharmony_ci@support.skip_if_buildbot('not all buildbots have enough space')
187db96d56Sopenharmony_ciclass TestFreeze(unittest.TestCase):
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci    def test_freeze_simple_script(self):
217db96d56Sopenharmony_ci        script = textwrap.dedent("""
227db96d56Sopenharmony_ci            import sys
237db96d56Sopenharmony_ci            print('running...')
247db96d56Sopenharmony_ci            sys.exit(0)
257db96d56Sopenharmony_ci            """)
267db96d56Sopenharmony_ci        with os_helper.temp_dir() as outdir:
277db96d56Sopenharmony_ci            outdir, scriptfile, python = helper.prepare(script, outdir)
287db96d56Sopenharmony_ci            executable = helper.freeze(python, scriptfile, outdir)
297db96d56Sopenharmony_ci            text = helper.run(executable)
307db96d56Sopenharmony_ci        self.assertEqual(text, 'running...')
31