'plum up' is now the special magic

'start' and 'stop' are now analogous to their Docker namesakes.
This commit is contained in:
Aanand Prasad 2013-12-20 16:22:54 +00:00
commit a4710fa9e1
6 changed files with 119 additions and 69 deletions

View file

@ -42,18 +42,52 @@ class ProjectTest(DockerClientTestCase):
project = Project('test', [web], self.client)
self.assertEqual(project.get_service('web'), web)
def test_up(self):
web = self.create_service('web')
db = self.create_service('db')
project = Project('test', [web, db], self.client)
web.create_container()
self.assertEqual(len(web.containers()), 0)
self.assertEqual(len(db.containers()), 0)
self.assertEqual(len(web.containers(stopped=True)), 1)
self.assertEqual(len(db.containers(stopped=True)), 0)
unstarted = project.create_containers()
self.assertEqual(len(unstarted), 2)
self.assertEqual(unstarted[0][0], web)
self.assertEqual(unstarted[1][0], db)
self.assertEqual(len(web.containers()), 0)
self.assertEqual(len(db.containers()), 0)
self.assertEqual(len(web.containers(stopped=True)), 2)
self.assertEqual(len(db.containers(stopped=True)), 1)
project.kill_and_remove(unstarted)
self.assertEqual(len(web.containers()), 0)
self.assertEqual(len(db.containers()), 0)
self.assertEqual(len(web.containers(stopped=True)), 1)
self.assertEqual(len(db.containers(stopped=True)), 0)
def test_start_stop(self):
project = Project('test', [
self.create_service('web'),
self.create_service('db'),
], self.client)
web = self.create_service('web')
db = self.create_service('db')
project = Project('test', [web, db], self.client)
project.start()
self.assertEqual(len(project.get_service('web').containers()), 1)
self.assertEqual(len(project.get_service('db').containers()), 1)
self.assertEqual(len(web.containers()), 0)
self.assertEqual(len(db.containers()), 0)
project.stop()
web.create_container()
project.start()
self.assertEqual(len(project.get_service('web').containers()), 0)
self.assertEqual(len(project.get_service('db').containers()), 0)
self.assertEqual(len(web.containers()), 1)
self.assertEqual(len(db.containers()), 0)
project.stop(timeout=1)
self.assertEqual(len(web.containers()), 0)
self.assertEqual(len(db.containers()), 0)

View file

@ -26,13 +26,14 @@ class ServiceTest(DockerClientTestCase):
foo = self.create_service('foo')
bar = self.create_service('bar')
foo.start()
foo.start_container()
self.assertEqual(len(foo.containers()), 1)
self.assertEqual(foo.containers()[0].name, '/default_foo_1')
self.assertEqual(len(bar.containers()), 0)
bar.scale(2)
bar.start_container()
bar.start_container()
self.assertEqual(len(foo.containers()), 1)
self.assertEqual(len(bar.containers()), 2)
@ -49,30 +50,28 @@ class ServiceTest(DockerClientTestCase):
def test_project_is_added_to_container_name(self):
service = self.create_service('web', project='myproject')
service.start()
service.start_container()
self.assertEqual(service.containers()[0].name, '/myproject_web_1')
def test_up_scale_down(self):
def test_start_stop(self):
service = self.create_service('scalingtest')
self.assertEqual(len(service.containers(stopped=True)), 0)
service.create_container()
self.assertEqual(len(service.containers()), 0)
self.assertEqual(len(service.containers(stopped=True)), 1)
service.start()
self.assertEqual(len(service.containers()), 1)
self.assertEqual(len(service.containers(stopped=True)), 1)
service.start()
self.assertEqual(len(service.containers()), 1)
service.scale(2)
self.assertEqual(len(service.containers()), 2)
service.scale(1)
self.assertEqual(len(service.containers()), 1)
service.stop()
service.stop(timeout=1)
self.assertEqual(len(service.containers()), 0)
self.assertEqual(len(service.containers(stopped=True)), 1)
service.stop()
service.stop(timeout=1)
self.assertEqual(len(service.containers()), 0)
self.assertEqual(len(service.containers(stopped=True)), 1)
def test_create_container_with_one_off(self):
db = self.create_service('db')
@ -101,8 +100,8 @@ class ServiceTest(DockerClientTestCase):
db.start_container()
web.start_container()
self.assertIn('default_db_1', web.containers()[0].links())
db.stop()
web.stop()
db.stop(timeout=1)
web.stop(timeout=1)
def test_start_container_builds_images(self):
service = Service(
@ -110,7 +109,7 @@ class ServiceTest(DockerClientTestCase):
client=self.client,
build='tests/fixtures/simple-dockerfile',
)
container = service.start()
container = service.start_container()
container.wait()
self.assertIn('success', container.logs())
self.assertEqual(len(self.client.images(name='default_test')), 1)