コード例 #1
0
def test_non_from_import_setuptools(tmpdir):
    tmpdir.join('setup.py').write(
        'import setuptools\n'
        'setuptools.setup(name="foo")\n', )
    main((str(tmpdir), ))
    setup_cfg = tmpdir.join('setup.cfg').read()
    assert setup_cfg == '[metadata]\nname = foo\n'
コード例 #2
0
def test_unsupported_argument(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import Extension, setup\n'
        'setup(name="foo", ext_modules=[Extension("_x", ["_x.c"])])\n', )
    with pytest.raises(SystemExit) as excinfo:
        main((str(tmpdir), ))
    msg, = excinfo.value.args
    assert msg == 'ext_modules= is not supported in setup.cfg'
コード例 #3
0
def test_intentionally_not_parsable(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'from foo import __version__\n'
        'setup(name="foo", version=__version__)\n', )
    with pytest.raises(NotImplementedError) as excinfo:
        main((str(tmpdir), ))
    msg, = excinfo.value.args
    assert msg == 'unparsable: version='
コード例 #4
0
def test_basic(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo")\n', )
    main((str(tmpdir), ))
    setup_py = tmpdir.join('setup.py').read()
    setup_cfg = tmpdir.join('setup.cfg').read()
    assert setup_py == 'from setuptools import setup\nsetup()\n'
    assert setup_cfg == '[metadata]\nname = foo\n'
コード例 #5
0
def test_unrelated_with_statement(tmpdir):  # only added for test coverage
    tmpdir.join('setup.py').write(
        'import contextlib\n'
        'from setuptools import setup\n'
        'with contextlib.suppress(ImportError):\n'
        '    import dne\n'
        'setup(name="foo")\n', )
    main((str(tmpdir), ))
    setup_cfg = tmpdir.join('setup.cfg').read()
    assert setup_cfg == '[metadata]\nname = foo\n'
コード例 #6
0
def test_reads_file(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'with open("README.md") as f:\n'
        '    readme = f.read()\n'
        'setup(name="foo", long_description=readme)', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == (
        '[metadata]\n'
        'name = foo\n'
        'long_description = file: README.md\n')
コード例 #7
0
def test_empty_string_package_data(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo", package_data={"": ["*.pyi"]})\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options.package_data]\n'
                                               '* =\n'
                                               '    *.pyi\n')
コード例 #8
0
def test_option_key(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo", install_requires=["astpretty", "six"])\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options]\n'
                                               'install_requires =\n'
                                               '    astpretty\n'
                                               '    six\n')
コード例 #9
0
def test_entry_points(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo", entry_points={"console_scripts": ["a=a:main"]})\n',
    )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options.entry_points]\n'
                                               'console_scripts =\n'
                                               '    a=a:main\n')
コード例 #10
0
def test_package_dir(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo", package_dir={"": "src", "pkg1": "pkg1"})\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options]\n'
                                               'package_dir =\n'
                                               '    =src\n'
                                               '    pkg1=pkg1\n')
コード例 #11
0
def test_find_packages(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import find_packages, setup\n'
        'setup(name="foo", packages=find_packages(exclude=("tests*",)))\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options]\n'
                                               'packages = find:\n'
                                               '\n'
                                               '[options.packages.find]\n'
                                               'exclude = tests*\n')
コード例 #12
0
def test_package_data_multiple_entries(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo", package_data={"resources": ["*.json", "*.pyi"]})\n',
    )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options.package_data]\n'
                                               'resources =\n'
                                               '    *.json\n'
                                               '    *.pyi\n')
コード例 #13
0
def test_normal_extras(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(\n'
        '    name="foo",\n'
        "    extras_require={'lint': ['pre-commit']},\n"
        ')\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               '\n'
                                               '[options.extras_require]\n'
                                               'lint = pre-commit\n')
コード例 #14
0
def test_project_urls(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(\n'
        '    name="foo",\n'
        '    project_urls={"homepage": "https://example.com"},\n'
        ')\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == (
        '[metadata]\n'
        'name = foo\n'
        'project_urls =\n'
        '    homepage=https://example.com\n')
コード例 #15
0
def test_extras_to_requirements_rewrite(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(\n'
        '    name="foo",\n'
        "    extras_require={':python_version==\"2.7\"': ['typing']}\n"
        ')\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == (
        '[metadata]\n'
        'name = foo\n'
        '\n'
        '[options]\n'
        'install_requires = typing;python_version=="2.7"\n')
コード例 #16
0
def test_updates_existing_setup_cfg(tmpdir):
    tmpdir.join('setup.py').write(
        'from setuptools import setup\n'
        'setup(name="foo")\n', )
    tmpdir.join('setup.cfg').write(
        '[metadata]\n'
        'license_file = LICENSE\n'
        '\n'
        '[bdist_wheel]\n'
        'universal = 1\n', )
    main((str(tmpdir), ))
    assert tmpdir.join('setup.cfg').read() == ('[metadata]\n'
                                               'name = foo\n'
                                               'license_file = LICENSE\n'
                                               '\n'
                                               '[bdist_wheel]\n'
                                               'universal = 1\n')