Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
test_build_scripts.py97 linesDownload Raw Back to tests
1"""Tests for distutils.command.build_scripts."""2 3import os4import textwrap5from distutils import sysconfig6from distutils.command.build_scripts import build_scripts7from distutils.core import Distribution8from distutils.tests import support9 10import jaraco.path11 12 13class TestBuildScripts(support.TempdirManager):14    def test_default_settings(self):15        cmd = self.get_build_scripts_cmd("/foo/bar", [])16        assert not cmd.force17        assert cmd.build_dir is None18 19        cmd.finalize_options()20 21        assert cmd.force22        assert cmd.build_dir == "/foo/bar"23 24    def test_build(self):25        source = self.mkdtemp()26        target = self.mkdtemp()27        expected = self.write_sample_scripts(source)28 29        cmd = self.get_build_scripts_cmd(30            target, [os.path.join(source, fn) for fn in expected]31        )32        cmd.finalize_options()33        cmd.run()34 35        built = os.listdir(target)36        for name in expected:37            assert name in built38 39    def get_build_scripts_cmd(self, target, scripts):40        import sys41 42        dist = Distribution()43        dist.scripts = scripts44        dist.command_obj["build"] = support.DummyCommand(45            build_scripts=target, force=True, executable=sys.executable46        )47        return build_scripts(dist)48 49    @staticmethod50    def write_sample_scripts(dir):51        spec = {52            'script1.py': textwrap.dedent("""53                #! /usr/bin/env python2.354                # bogus script w/ Python sh-bang55                pass56                """).lstrip(),57            'script2.py': textwrap.dedent("""58                #!/usr/bin/python59                # bogus script w/ Python sh-bang60                pass61                """).lstrip(),62            'shell.sh': textwrap.dedent("""63                #!/bin/sh64                # bogus shell script w/ sh-bang65                exit 066                """).lstrip(),67        }68        jaraco.path.build(spec, dir)69        return list(spec)70 71    def test_version_int(self):72        source = self.mkdtemp()73        target = self.mkdtemp()74        expected = self.write_sample_scripts(source)75 76        cmd = self.get_build_scripts_cmd(77            target, [os.path.join(source, fn) for fn in expected]78        )79        cmd.finalize_options()80 81        # https://bugs.python.org/issue452482        #83        # On linux-g++-32 with command line `./configure --enable-ipv684        # --with-suffix=3`, python is compiled okay but the build scripts85        # failed when writing the name of the executable86        old = sysconfig.get_config_vars().get('VERSION')87        sysconfig._config_vars['VERSION'] = 488        try:89            cmd.run()90        finally:91            if old is not None:92                sysconfig._config_vars['VERSION'] = old93 94        built = os.listdir(target)95        for name in expected:96            assert name in built97 
codekingpro/portable-devtools · Team Ai