@@ -1680,7 +1680,9 @@ def test_show_tree_no_dev(tester: CommandTester, poetry: Poetry, installed: Repo
1680
1680
assert tester .io .fetch_output () == expected
1681
1681
1682
1682
1683
- def test_show_tree_why (tester : CommandTester , poetry : Poetry , installed : Repository ):
1683
+ def test_show_tree_why_package (
1684
+ tester : CommandTester , poetry : Poetry , installed : Repository
1685
+ ):
1684
1686
poetry .package .add_dependency (Factory .create_dependency ("a" , "=0.0.1" ))
1685
1687
1686
1688
a = get_package ("a" , "0.0.1" )
@@ -1732,8 +1734,63 @@ def test_show_tree_why(tester: CommandTester, poetry: Poetry, installed: Reposit
1732
1734
expected = """\
1733
1735
a 0.0.1
1734
1736
└── b =0.0.1
1735
- └── c =0.0.1
1736
- """
1737
+ └── c =0.0.1 \n """
1738
+
1739
+ assert tester .io .fetch_output () == expected
1740
+
1741
+
1742
+ def test_show_tree_why (tester : CommandTester , poetry : Poetry , installed : Repository ):
1743
+ poetry .package .add_dependency (Factory .create_dependency ("a" , "=0.0.1" ))
1744
+
1745
+ a = get_package ("a" , "0.0.1" )
1746
+ installed .add_package (a )
1747
+ a .add_dependency (Factory .create_dependency ("b" , "=0.0.1" ))
1748
+
1749
+ b = get_package ("b" , "0.0.1" )
1750
+ a .add_dependency (Factory .create_dependency ("c" , "=0.0.1" ))
1751
+ installed .add_package (b )
1752
+
1753
+ c = get_package ("c" , "0.0.1" )
1754
+ installed .add_package (c )
1755
+
1756
+ poetry .locker .mock_lock_data (
1757
+ {
1758
+ "package" : [
1759
+ {
1760
+ "name" : "a" ,
1761
+ "version" : "0.0.1" ,
1762
+ "dependencies" : {"b" : "=0.0.1" },
1763
+ "python-versions" : "*" ,
1764
+ "optional" : False ,
1765
+ },
1766
+ {
1767
+ "name" : "b" ,
1768
+ "version" : "0.0.1" ,
1769
+ "dependencies" : {"c" : "=0.0.1" },
1770
+ "python-versions" : "*" ,
1771
+ "optional" : False ,
1772
+ },
1773
+ {
1774
+ "name" : "c" ,
1775
+ "version" : "0.0.1" ,
1776
+ "python-versions" : "*" ,
1777
+ "optional" : False ,
1778
+ },
1779
+ ],
1780
+ "metadata" : {
1781
+ "python-versions" : "*" ,
1782
+ "platform" : "*" ,
1783
+ "content-hash" : "123456789" ,
1784
+ "hashes" : {"a" : [], "b" : [], "c" : []},
1785
+ },
1786
+ }
1787
+ )
1788
+
1789
+ tester .execute ("--why" )
1790
+
1791
+ # this has to be on a single line due to the padding whitespace, which gets stripped
1792
+ # by pre-commit.
1793
+ expected = """a 0.0.1 \n b 0.0.1 from a \n c 0.0.1 from b \n """
1737
1794
1738
1795
assert tester .io .fetch_output () == expected
1739
1796
0 commit comments