浏览代码

Fix improper use of project.stop

Add some better test coverage for rm --stop

Signed-off-by: Joffrey F <[email protected]>
Joffrey F 8 年之前
父节点
当前提交
d29ed0d3e4
共有 2 个文件被更改,包括 18 次插入8 次删除
  1. 1 7
      compose/cli/main.py
  2. 17 1
      tests/acceptance/cli_test.py

+ 1 - 7
compose/cli/main.py

@@ -680,13 +680,7 @@ class TopLevelCommand(object):
         one_off = OneOffFilter.include
 
         if options.get('--stop'):
-            running_containers = self.project.containers(
-                service_names=options['SERVICE'], stopped=False, one_off=one_off
-            )
-            self.project.stop(
-                service_names=running_containers,
-                one_off=one_off
-            )
+            self.project.stop(service_names=options['SERVICE'], one_off=one_off)
 
         all_containers = self.project.containers(
             service_names=options['SERVICE'], stopped=True, one_off=one_off

+ 17 - 1
tests/acceptance/cli_test.py

@@ -1627,8 +1627,24 @@ class CLITestCase(DockerClientTestCase):
         service = self.project.get_service('simple')
         service.create_container()
         self.dispatch(['rm', '-fs'], None)
+        self.assertEqual(len(service.containers(stopped=True)), 0)
+
+    def test_rm_stop(self):
+        self.dispatch(['up', '-d'], None)
         simple = self.project.get_service('simple')
-        self.assertEqual(len(simple.containers()), 0)
+        another = self.project.get_service('another')
+        assert len(simple.containers()) == 1
+        assert len(another.containers()) == 1
+        self.dispatch(['rm', '-fs'], None)
+        assert len(simple.containers(stopped=True)) == 0
+        assert len(another.containers(stopped=True)) == 0
+
+        self.dispatch(['up', '-d'], None)
+        assert len(simple.containers()) == 1
+        assert len(another.containers()) == 1
+        self.dispatch(['rm', '-fs', 'another'], None)
+        assert len(simple.containers()) == 1
+        assert len(another.containers(stopped=True)) == 0
 
     def test_rm_all(self):
         service = self.project.get_service('simple')