Skip to content

Commit 60b2a8a

Browse files
committed
installed repository: refactor test cases
1 parent b827c2a commit 60b2a8a

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

tests/repositories/test_installed_repository.py

+26-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
import pytest
2+
13
from poetry.repositories.installed_repository import InstalledRepository
24
from poetry.utils._compat import Path
35
from poetry.utils._compat import metadata
46
from poetry.utils._compat import zipp
57
from poetry.utils.env import MockEnv as BaseMockEnv
8+
from pytest_mock.plugin import MockFixture
69

710

811
FIXTURES_DIR = Path(__file__).parent / "fixtures"
@@ -28,7 +31,13 @@ def site_packages(self): # type: () -> Path
2831
return SITE_PACKAGES
2932

3033

31-
def test_load(mocker):
34+
@pytest.fixture
35+
def env(): # type: () -> MockEnv
36+
return MockEnv(path=ENV_DIR)
37+
38+
39+
@pytest.fixture
40+
def repository(mocker, env): # type: (MockFixture, MockEnv) -> InstalledRepository
3241
mocker.patch(
3342
"poetry.utils._compat.metadata.Distribution.discover",
3443
return_value=INSTALLED_RESULTS,
@@ -45,10 +54,19 @@ def test_load(mocker):
4554
],
4655
)
4756
mocker.patch("poetry.repositories.installed_repository._VENDORS", str(VENDOR_DIR))
48-
repository = InstalledRepository.load(MockEnv(path=ENV_DIR))
57+
return InstalledRepository.load(env)
58+
4959

60+
def test_load_successful(repository):
5061
assert len(repository.packages) == 5
5162

63+
64+
def test_load_ensure_isolation(repository):
65+
for pkg in repository.packages:
66+
assert pkg.name != "attrs"
67+
68+
69+
def test_load_standard_package(repository):
5270
cleo = repository.packages[0]
5371
assert cleo.name == "cleo"
5472
assert cleo.version.text == "0.7.6"
@@ -61,6 +79,8 @@ def test_load(mocker):
6179
assert foo.name == "foo"
6280
assert foo.version.text == "0.1.0"
6381

82+
83+
def test_load_git_package(repository):
6484
pendulum = repository.packages[4]
6585
assert pendulum.name == "pendulum"
6686
assert pendulum.version.text == "2.0.5"
@@ -69,16 +89,17 @@ def test_load(mocker):
6989
assert pendulum.source_url == "https://github.com/sdispater/pendulum.git"
7090
assert pendulum.source_reference == "bb058f6b78b2d28ef5d9a5e759cfa179a1a713d6"
7191

72-
for pkg in repository.packages:
73-
assert pkg.name != "attrs"
7492

93+
def test_load_editable_package(repository):
7594
# test editable package with text .pth file
7695
editable = repository.packages[1]
7796
assert editable.name == "editable"
7897
assert editable.version.text == "2.3.4"
7998
assert editable.source_type == "directory"
80-
assert editable.source_url == Path("/path/to/editable").as_posix()
99+
assert editable.source_url == Path("/path/to/editable").resolve().as_posix()
100+
81101

102+
def test_load_editable_with_import_package(repository):
82103
# test editable package with executable .pth file
83104
editable = repository.packages[2]
84105
assert editable.name == "editable-with-import"

0 commit comments

Comments
 (0)