10
10
from poetry .core .packages .package import Package
11
11
12
12
from poetry .factory import Factory
13
+ from tests .helpers import TestLocker
13
14
from tests .helpers import get_package
14
15
15
16
@@ -33,12 +34,16 @@ def poetry_with_up_to_date_lockfile(
33
34
) -> Poetry :
34
35
source = fixture_dir ("up_to_date_lock" )
35
36
36
- return project_factory (
37
+ poetry = project_factory (
37
38
name = "foobar" ,
38
39
pyproject_content = (source / "pyproject.toml" ).read_text (encoding = "utf-8" ),
39
40
poetry_lock_content = (source / "poetry.lock" ).read_text (encoding = "utf-8" ),
40
41
)
41
42
43
+ assert isinstance (poetry .locker , TestLocker )
44
+ poetry .locker .locked (True )
45
+ return poetry
46
+
42
47
43
48
@pytest .fixture ()
44
49
def tester (command_tester_factory : CommandTesterFactory ) -> CommandTester :
@@ -49,7 +54,6 @@ def test_remove_without_specific_group_removes_from_all_groups(
49
54
tester : CommandTester ,
50
55
app : PoetryTestApplication ,
51
56
repo : TestRepository ,
52
- command_tester_factory : CommandTesterFactory ,
53
57
installed : Repository ,
54
58
) -> None :
55
59
"""
@@ -108,7 +112,6 @@ def test_remove_without_specific_group_removes_from_specific_groups(
108
112
tester : CommandTester ,
109
113
app : PoetryTestApplication ,
110
114
repo : TestRepository ,
111
- command_tester_factory : CommandTesterFactory ,
112
115
installed : Repository ,
113
116
) -> None :
114
117
"""
@@ -166,7 +169,6 @@ def test_remove_does_not_live_empty_groups(
166
169
tester : CommandTester ,
167
170
app : PoetryTestApplication ,
168
171
repo : TestRepository ,
169
- command_tester_factory : CommandTesterFactory ,
170
172
installed : Repository ,
171
173
) -> None :
172
174
"""
@@ -213,7 +215,6 @@ def test_remove_canonicalized_named_removes_dependency_correctly(
213
215
tester : CommandTester ,
214
216
app : PoetryTestApplication ,
215
217
repo : TestRepository ,
216
- command_tester_factory : CommandTesterFactory ,
217
218
installed : Repository ,
218
219
) -> None :
219
220
"""
@@ -308,3 +309,47 @@ def test_remove_with_dry_run_keep_files_intact(
308
309
assert (
309
310
poetry_with_up_to_date_lockfile ._locker .lock_data == original_lockfile_content
310
311
)
312
+
313
+
314
+ def test_remove_performs_uninstall_op (
315
+ poetry_with_up_to_date_lockfile : Poetry ,
316
+ command_tester_factory : CommandTesterFactory ,
317
+ installed : Repository ,
318
+ ) -> None :
319
+ installed .add_package (get_package ("docker" , "4.3.1" ))
320
+ tester = command_tester_factory ("remove" , poetry = poetry_with_up_to_date_lockfile )
321
+
322
+ tester .execute ("docker" )
323
+
324
+ expected = """\
325
+ Updating dependencies
326
+ Resolving dependencies...
327
+
328
+ Package operations: 0 installs, 0 updates, 1 removal
329
+
330
+ • Removing docker (4.3.1)
331
+
332
+ Writing lock file
333
+ """
334
+
335
+ assert tester .io .fetch_output () == expected
336
+
337
+
338
+ def test_remove_with_lock_does_not_perform_uninstall_op (
339
+ poetry_with_up_to_date_lockfile : Poetry ,
340
+ command_tester_factory : CommandTesterFactory ,
341
+ installed : Repository ,
342
+ ) -> None :
343
+ installed .add_package (get_package ("docker" , "4.3.1" ))
344
+ tester = command_tester_factory ("remove" , poetry = poetry_with_up_to_date_lockfile )
345
+
346
+ tester .execute ("docker --lock" )
347
+
348
+ expected = """\
349
+ Updating dependencies
350
+ Resolving dependencies...
351
+
352
+ Writing lock file
353
+ """
354
+
355
+ assert tester .io .fetch_output () == expected
0 commit comments