def test_update_python_requires_multiline_variations(fix_max_python_3_version): fix_max_python_3_version(2) fp = StringIO( textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires=",".join([ ">=2.7", "!=3.0.*", ]), ) """)) fp.name = "setup.py" result = update_python_requires(fp, ['2.7', '3.2']) assert "".join(result) == textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires=",".join([ ">=2.7", "!=3.0.*", "!=3.1.*", ]), ) """)
def test_update_python_requires_when_missing(capsys): fp = StringIO( textwrap.dedent("""\ from setuptools import setup setup( name='foo', ) """)) fp.name = "setup.py" result = update_python_requires(fp, ['3.5', '3.6', '3.7']) assert result is None assert capsys.readouterr().err == ""
def test_update_python_requires_multiline_error(capsys): fp = StringIO( textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires=', '.join([ '>=2.7', '!=3.0.*']), ) """)) fp.name = "setup.py" result = update_python_requires(fp, ['2.7', '3.2']) assert result == fp.getvalue().splitlines(True) assert ("Did not understand python_requires= formatting in setup() call" in capsys.readouterr().err)
def test_update_python_requires_preserves_style(fix_max_python_3_version): fix_max_python_3_version(2) fp = StringIO( textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>=2.7,!=3.0.*', ) """)) fp.name = "setup.py" result = update_python_requires(fp, ['2.7', '3.2']) assert "".join(result) == textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>=2.7,!=3.0.*,!=3.1.*', ) """)
def test_update_python_requires_file_object(fix_max_python_3_version): fix_max_python_3_version(7) fp = StringIO( textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>= 3.4', ) """)) fp.name = "setup.py" result = update_python_requires(fp, ['3.5', '3.6', '3.7']) assert "".join(result) == textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>=3.5', ) """)
def test_update_python_requires(tmp_path, fix_max_python_3_version): fix_max_python_3_version(7) filename = tmp_path / "setup.py" filename.write_text( textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>= 3.4', ) """)) result = update_python_requires(filename, ['3.5', '3.6', '3.7']) assert "".join(result) == textwrap.dedent("""\ from setuptools import setup setup( name='foo', python_requires='>=3.5', ) """)