Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
test_bdist_rpm.py128 linesDownload Raw Back to tests
1"""Tests for distutils.command.bdist_rpm."""2 3import os4import shutil  # noqa: F4015import sys6from distutils.command.bdist_rpm import bdist_rpm7from distutils.core import Distribution8from distutils.tests import support9 10import pytest11from test.support import requires_zlib12 13SETUP_PY = """\14from distutils.core import setup15import foo16 17setup(name='foo', version='0.1', py_modules=['foo'],18      url='xxx', author='xxx', author_email='xxx')19 20"""21 22 23@pytest.fixture(autouse=True)24def sys_executable_encodable():25    try:26        sys.executable.encode('UTF-8')27    except UnicodeEncodeError:28        pytest.skip("sys.executable is not encodable to UTF-8")29 30 31mac_woes = pytest.mark.skipif(32    "not sys.platform.startswith('linux')",33    reason='spurious sdtout/stderr output under macOS',34)35 36 37@pytest.mark.usefixtures('save_env')38@pytest.mark.usefixtures('save_argv')39@pytest.mark.usefixtures('save_cwd')40class TestBuildRpm(41    support.TempdirManager,42):43    @mac_woes44    @requires_zlib()45    @pytest.mark.skipif("not shutil.which('rpm')")46    @pytest.mark.skipif("not shutil.which('rpmbuild')")47    def test_quiet(self):48        # let's create a package49        tmp_dir = self.mkdtemp()50        os.environ['HOME'] = tmp_dir  # to confine dir '.rpmdb' creation51        pkg_dir = os.path.join(tmp_dir, 'foo')52        os.mkdir(pkg_dir)53        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)54        self.write_file((pkg_dir, 'foo.py'), '#')55        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')56        self.write_file((pkg_dir, 'README'), '')57 58        dist = Distribution({59            'name': 'foo',60            'version': '0.1',61            'py_modules': ['foo'],62            'url': 'xxx',63            'author': 'xxx',64            'author_email': 'xxx',65        })66        dist.script_name = 'setup.py'67        os.chdir(pkg_dir)68 69        sys.argv = ['setup.py']70        cmd = bdist_rpm(dist)71        cmd.fix_python = True72 73        # running in quiet mode74        cmd.quiet = True75        cmd.ensure_finalized()76        cmd.run()77 78        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))79        assert 'foo-0.1-1.noarch.rpm' in dist_created80 81        # bug #2945: upload ignores bdist_rpm files82        assert ('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm') in dist.dist_files83        assert ('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm') in dist.dist_files84 85    @mac_woes86    @requires_zlib()87    # https://bugs.python.org/issue153316488    @pytest.mark.skipif("not shutil.which('rpm')")89    @pytest.mark.skipif("not shutil.which('rpmbuild')")90    def test_no_optimize_flag(self):91        # let's create a package that breaks bdist_rpm92        tmp_dir = self.mkdtemp()93        os.environ['HOME'] = tmp_dir  # to confine dir '.rpmdb' creation94        pkg_dir = os.path.join(tmp_dir, 'foo')95        os.mkdir(pkg_dir)96        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)97        self.write_file((pkg_dir, 'foo.py'), '#')98        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')99        self.write_file((pkg_dir, 'README'), '')100 101        dist = Distribution({102            'name': 'foo',103            'version': '0.1',104            'py_modules': ['foo'],105            'url': 'xxx',106            'author': 'xxx',107            'author_email': 'xxx',108        })109        dist.script_name = 'setup.py'110        os.chdir(pkg_dir)111 112        sys.argv = ['setup.py']113        cmd = bdist_rpm(dist)114        cmd.fix_python = True115 116        cmd.quiet = True117        cmd.ensure_finalized()118        cmd.run()119 120        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))121        assert 'foo-0.1-1.noarch.rpm' in dist_created122 123        # bug #2945: upload ignores bdist_rpm files124        assert ('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm') in dist.dist_files125        assert ('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm') in dist.dist_files126 127        os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))128 
codekingpro/portable-devtools · Team Ai