Skip to content

Commit

Permalink
Pass optional and extras specification to rewritten dependencies (#38)
Browse files Browse the repository at this point in the history
* Pass optional and extras specification to rewritten dependency

* Don't need to set groups argument
  • Loading branch information
H0R5E authored Dec 18, 2024
1 parent 2c70f61 commit 2b6a383
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
8 changes: 7 additions & 1 deletion poetry_monoranger_plugin/path_rewriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,10 @@ def _pin_dependency(self, poetry: Poetry, dependency: DirectoryDependency):
else:
raise ValueError(f"Invalid version rewrite rule: {self.plugin_conf.version_rewrite_rule}")

return Dependency(name, pinned_version, groups=dependency.groups)
return Dependency(
name,
pinned_version,
groups=dependency.groups,
optional=dependency.is_optional(),
extras=dependency.extras,
)
14 changes: 11 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import pytest
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.dependency_group import DependencyGroup
from poetry.core.packages.dependency_group import MAIN_GROUP, DependencyGroup
from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.poetry import Poetry

Expand All @@ -15,9 +15,17 @@ def mock_event_gen():
def _factory(command_cls: type[Command], disable_cache: bool):
from cleo.events.console_command_event import ConsoleCommandEvent

main_grp = DependencyGroup("main")
main_grp.add_dependency(DirectoryDependency("packageB", Path("../packageB"), develop=True))
main_grp = DependencyGroup(MAIN_GROUP)
main_grp.add_dependency(Dependency("numpy", "==1.5.0"))
main_grp.add_dependency(
DirectoryDependency(
"packageB",
Path("../packageB"),
develop=True,
optional=True,
extras=["fast"],
)
)

mock_command = Mock(spec=command_cls)
mock_command.poetry = Mock(spec=Poetry)
Expand Down
2 changes: 2 additions & 0 deletions tests/test_path_rewriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ def test_executes_path_rewriting_for_build_command(mock_event_gen, disable_cache
new_dependencies = sorted(new_dependencies.dependencies, key=lambda x: x.name)
for i, dep in enumerate(new_dependencies):
assert dep.name == original_dependencies[i].name
assert dep.is_optional() == original_dependencies[i].is_optional()
assert dep.extras == original_dependencies[i].extras
if isinstance(original_dependencies[i], DirectoryDependency):
assert dep.pretty_constraint == "0.1.0"
else:
Expand Down

0 comments on commit 2b6a383

Please sign in to comment.