Skip to content

Commit 75af77a

Browse files
committed
exporter: add test for nested local dependencies
1 parent bec722c commit 75af77a

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

tests/utils/test_exporter.py

+72
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,78 @@ def test_exporter_can_export_requirements_txt_with_directory_packages(
590590
assert expected == content
591591

592592

593+
def test_exporter_can_export_requirements_txt_with_nested_directory_packages(
594+
tmp_dir, poetry, working_directory
595+
):
596+
poetry.locker.mock_lock_data(
597+
{
598+
"package": [
599+
{
600+
"name": "foo",
601+
"version": "1.2.3",
602+
"category": "main",
603+
"optional": False,
604+
"python-versions": "*",
605+
"source": {
606+
"type": "directory",
607+
"url": "tests/fixtures/sample_project",
608+
"reference": "",
609+
},
610+
},
611+
{
612+
"name": "bar",
613+
"version": "4.5.6",
614+
"category": "main",
615+
"optional": False,
616+
"python-versions": "*",
617+
"source": {
618+
"type": "directory",
619+
"url": "tests/fixtures/sample_project/../project_with_nested_local/bar",
620+
"reference": "",
621+
},
622+
},
623+
{
624+
"name": "baz",
625+
"version": "7.8.9",
626+
"category": "main",
627+
"optional": False,
628+
"python-versions": "*",
629+
"source": {
630+
"type": "directory",
631+
"url": "tests/fixtures/sample_project/../project_with_nested_local/bar/..",
632+
"reference": "",
633+
},
634+
},
635+
],
636+
"metadata": {
637+
"python-versions": "*",
638+
"content-hash": "123456789",
639+
"hashes": {"foo": [], "bar": [], "baz": []},
640+
},
641+
}
642+
)
643+
set_package_requires(poetry)
644+
645+
exporter = Exporter(poetry)
646+
647+
exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt")
648+
649+
with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f:
650+
content = f.read()
651+
652+
expected = """\
653+
bar @ {}/tests/fixtures/project_with_nested_local/bar
654+
baz @ {}/tests/fixtures/project_with_nested_local
655+
foo @ {}/tests/fixtures/sample_project
656+
""".format(
657+
working_directory.as_uri(),
658+
working_directory.as_uri(),
659+
working_directory.as_uri(),
660+
)
661+
662+
assert expected == content
663+
664+
593665
def test_exporter_can_export_requirements_txt_with_directory_packages_and_markers(
594666
tmp_dir, poetry, working_directory
595667
):

0 commit comments

Comments
 (0)