diff --git a/plum/service_collection.py b/plum/service_collection.py index b73511a9..3803bafc 100644 --- a/plum/service_collection.py +++ b/plum/service_collection.py @@ -34,4 +34,13 @@ class ServiceCollection(list): if service.name == name: return service + def start(self): + for container in self: + container.start() + + def stop(self): + for container in self: + container.stop() + + diff --git a/plum/tests/service_collection_test.py b/plum/tests/service_collection_test.py index 1715c299..080ee2cf 100644 --- a/plum/tests/service_collection_test.py +++ b/plum/tests/service_collection_test.py @@ -38,3 +38,21 @@ class ServiceCollectionTest(ServiceTestCase): self.assertEqual(collection[0].name, 'db') self.assertEqual(collection[1].name, 'web') + + def test_start_stop(self): + collection = ServiceCollection([ + self.create_service('web'), + self.create_service('db'), + ]) + + collection.start() + + self.assertEqual(len(collection[0].containers), 1) + self.assertEqual(len(collection[1].containers), 1) + + collection.stop() + + self.assertEqual(len(collection[0].containers), 0) + self.assertEqual(len(collection[1].containers), 0) + +