@@ -590,6 +590,78 @@ def test_exporter_can_export_requirements_txt_with_directory_packages(
590
590
assert expected == content
591
591
592
592
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
+
593
665
def test_exporter_can_export_requirements_txt_with_directory_packages_and_markers (
594
666
tmp_dir , poetry , working_directory
595
667
):
0 commit comments