From 75af77ad3a4eb3dd84fe91ff78c8251641a3ab0a Mon Sep 17 00:00:00 2001 From: Maximilian Speicher Date: Thu, 8 Oct 2020 01:23:06 +0200 Subject: [PATCH] exporter: add test for nested local dependencies --- tests/utils/test_exporter.py | 72 ++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/tests/utils/test_exporter.py b/tests/utils/test_exporter.py index 1ba91697420..e14210c95ec 100644 --- a/tests/utils/test_exporter.py +++ b/tests/utils/test_exporter.py @@ -590,6 +590,78 @@ def test_exporter_can_export_requirements_txt_with_directory_packages( assert expected == content +def test_exporter_can_export_requirements_txt_with_nested_directory_packages( + tmp_dir, poetry, working_directory +): + poetry.locker.mock_lock_data( + { + "package": [ + { + "name": "foo", + "version": "1.2.3", + "category": "main", + "optional": False, + "python-versions": "*", + "source": { + "type": "directory", + "url": "tests/fixtures/sample_project", + "reference": "", + }, + }, + { + "name": "bar", + "version": "4.5.6", + "category": "main", + "optional": False, + "python-versions": "*", + "source": { + "type": "directory", + "url": "tests/fixtures/sample_project/../project_with_nested_local/bar", + "reference": "", + }, + }, + { + "name": "baz", + "version": "7.8.9", + "category": "main", + "optional": False, + "python-versions": "*", + "source": { + "type": "directory", + "url": "tests/fixtures/sample_project/../project_with_nested_local/bar/..", + "reference": "", + }, + }, + ], + "metadata": { + "python-versions": "*", + "content-hash": "123456789", + "hashes": {"foo": [], "bar": [], "baz": []}, + }, + } + ) + set_package_requires(poetry) + + exporter = Exporter(poetry) + + exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") + + with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: + content = f.read() + + expected = """\ +bar @ {}/tests/fixtures/project_with_nested_local/bar +baz @ {}/tests/fixtures/project_with_nested_local +foo @ {}/tests/fixtures/sample_project +""".format( + working_directory.as_uri(), + working_directory.as_uri(), + working_directory.as_uri(), + ) + + assert expected == content + + def test_exporter_can_export_requirements_txt_with_directory_packages_and_markers( tmp_dir, poetry, working_directory ):