Skip to content

Commit

Permalink
adapt tests to new interface
Browse files Browse the repository at this point in the history
  • Loading branch information
radoering committed Apr 9, 2022
1 parent d1776cc commit 567e9a2
Showing 1 changed file with 40 additions and 43 deletions.
83 changes: 40 additions & 43 deletions tests/test_exporter.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
from __future__ import annotations

import sys

from pathlib import Path
from typing import TYPE_CHECKING
from typing import Any
from typing import Iterator

import pytest
from cleo.io.buffered_io import BufferedIO

from poetry.core.packages.dependency import Dependency
from poetry.core.toml.file import TOMLFile
Expand All @@ -33,7 +32,6 @@


if TYPE_CHECKING:
from _pytest.capture import CaptureFixture
from poetry.poetry import Poetry
from pytest_mock import MockerFixture

Expand Down Expand Up @@ -96,7 +94,10 @@ def set_package_requires(poetry: Poetry, skip: set[str] | None = None) -> None:
package = poetry.package.with_dependency_groups([], only=True)
for pkg in packages:
if pkg.name not in skip:
package.add_dependency(pkg.to_dependency())
dep = pkg.to_dependency()
if pkg.category == 'dev':
dep._groups = frozenset(['dev'])
package.add_dependency(dep)

poetry._package = package

Expand Down Expand Up @@ -538,7 +539,9 @@ def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_a
poetry._package = root

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=dev)
if not dev:
exporter.only_groups(["default"])
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -623,9 +626,8 @@ def test_exporter_requirements_txt_with_standard_packages_and_hashes_disabled(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export(
"requirements.txt", Path(tmp_dir), "requirements.txt", with_hashes=False
)
exporter.with_hashes(False)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand All @@ -638,7 +640,7 @@ def test_exporter_requirements_txt_with_standard_packages_and_hashes_disabled(
assert content == expected


def test_exporter_exports_requirements_txt_without_dev_packages_by_default(
def test_exporter_exports_requirements_txt_without_dev_packages_if_opted_out(
tmp_dir: str, poetry: Poetry
):
poetry.locker.mock_lock_data(
Expand Down Expand Up @@ -669,6 +671,7 @@ def test_exporter_exports_requirements_txt_without_dev_packages_by_default(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.only_groups(["default"])
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
Expand All @@ -682,7 +685,7 @@ def test_exporter_exports_requirements_txt_without_dev_packages_by_default(
assert content == expected


def test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in(
def test_exporter_exports_requirements_txt_with_dev_packages_by_default(
tmp_dir: str, poetry: Poetry
):
poetry.locker.mock_lock_data(
Expand Down Expand Up @@ -713,7 +716,7 @@ def test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=True)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -759,7 +762,7 @@ def test_exporter_exports_requirements_txt_without_optional_packages(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=True)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -844,13 +847,12 @@ def test_exporter_exports_requirements_txt_with_optional_packages(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.with_hashes(False)
exporter.with_extras(extras)
exporter.export(
"requirements.txt",
Path(tmp_dir),
"requirements.txt",
dev=True,
with_hashes=False,
extras=extras,
)

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
Expand Down Expand Up @@ -1063,9 +1065,8 @@ def test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export(
"requirements.txt", Path(tmp_dir), "requirements.txt", with_hashes=False
)
exporter.with_hashes(False)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1409,7 +1410,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=True)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1466,9 +1467,8 @@ def test_exporter_exports_requirements_txt_with_url_false(tmp_dir: str, poetry:
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export(
"requirements.txt", Path(tmp_dir), "requirements.txt", dev=True, with_urls=False
)
exporter.with_urls(False)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1517,7 +1517,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host(
)
set_package_requires(poetry)
exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=True)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1599,7 +1599,9 @@ def test_exporter_exports_requirements_txt_with_dev_extras(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=dev)
if not dev:
exporter.only_groups(["default"])
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1672,7 +1674,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_so
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt", dev=True)
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
content = f.read()
Expand Down Expand Up @@ -1737,12 +1739,11 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.with_credentials()
exporter.export(
"requirements.txt",
Path(tmp_dir),
"requirements.txt",
dev=True,
with_credentials=True,
)

with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
Expand All @@ -1761,7 +1762,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials(


def test_exporter_exports_requirements_txt_to_standard_output(
tmp_dir: str, poetry: Poetry, capsys: CaptureFixture
tmp_dir: str, poetry: Poetry
):
poetry.locker.mock_lock_data(
{
Expand Down Expand Up @@ -1791,20 +1792,18 @@ def test_exporter_exports_requirements_txt_to_standard_output(
set_package_requires(poetry)

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), sys.stdout)
io = BufferedIO()
exporter.export("requirements.txt", Path(tmp_dir), io)

out, err = capsys.readouterr()
expected = f"""\
bar==4.5.6 ; {MARKER_PY}
foo==1.2.3 ; {MARKER_PY}
"""

assert out == expected
assert io.fetch_output() == expected


def test_exporter_doesnt_confuse_repeated_packages(
tmp_dir: str, poetry: Poetry, capsys: CaptureFixture
):
def test_exporter_doesnt_confuse_repeated_packages(tmp_dir: str, poetry: Poetry):
# Testcase derived from <https://github.com/python-poetry/poetry/issues/5141>.
poetry.locker.mock_lock_data(
{
Expand Down Expand Up @@ -1905,9 +1904,9 @@ def test_exporter_doesnt_confuse_repeated_packages(
poetry._package = root

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), sys.stdout)
io = BufferedIO()
exporter.export("requirements.txt", Path(tmp_dir), io)

out, err = capsys.readouterr()
expected = f"""\
celery==5.1.2 ; {MARKER_PY36_ONLY}
celery==5.2.3 ; {MARKER_PY37}
Expand All @@ -1918,12 +1917,10 @@ def test_exporter_doesnt_confuse_repeated_packages(
click==8.0.3 ; {MARKER_PY37.union(MARKER_PY37_PY400)}
"""

assert out == expected
assert io.fetch_output() == expected


def test_exporter_handles_extras_next_to_non_extras(
tmp_dir: str, poetry: Poetry, capsys: CaptureFixture
):
def test_exporter_handles_extras_next_to_non_extras(tmp_dir: str, poetry: Poetry):
# Testcase similar to the solver testcase added at #5305.
poetry.locker.mock_lock_data(
{
Expand Down Expand Up @@ -2019,14 +2016,14 @@ def test_exporter_handles_extras_next_to_non_extras(
poetry._package = root

exporter = Exporter(poetry)
exporter.export("requirements.txt", Path(tmp_dir), sys.stdout)
io = BufferedIO()
exporter.export("requirements.txt", Path(tmp_dir), io)

out, err = capsys.readouterr()
expected = f"""\
localstack-ext==1.0.0 ; {MARKER_PY36}
localstack==1.0.0 ; {MARKER_PY36}
something-else==1.0.0 ; {MARKER_PY36}
something==1.0.0 ; {MARKER_PY36}
"""

assert out == expected
assert io.fetch_output() == expected

0 comments on commit 567e9a2

Please sign in to comment.