"""Sanity-check tests for the "freeze" tool.""" import sys import textwrap import unittest from test import support from test.support import os_helper from test.test_tools import imports_under_tool, skip_if_missing skip_if_missing('freeze') with imports_under_tool('freeze', 'test'): import freeze as helper @support.requires_zlib() @unittest.skipIf(sys.platform.startswith('win'), 'not supported on Windows') @unittest.skipIf(sys.platform == 'darwin' and sys._framework, 'not supported for frameworks builds on macOS') @support.skip_if_buildbot('not all buildbots have enough space') # gh-103053: Skip test if Python is built with Profile Guided Optimization # (PGO), since the test is just too slow in this case. @unittest.skipIf(support.check_cflags_pgo(), 'test is too slow with PGO') class TestFreeze(unittest.TestCase): @support.requires_resource('cpu') # Building Python is slow def test_freeze_simple_script(self): script = textwrap.dedent(""" import sys print('running...') sys.exit(0) """) with os_helper.temp_dir() as outdir: outdir, scriptfile, python = helper.prepare(script, outdir) executable = helper.freeze(python, scriptfile, outdir) text = helper.run(executable) self.assertEqual(text, 'running...')