From 62a4d214e8bebf94e43f01be7ee7c997fc34da79 Mon Sep 17 00:00:00 2001 From: Aanand Prasad Date: Mon, 28 Jul 2014 18:37:17 -0700 Subject: [PATCH] Default link alias which is just the service name Closes #37. Signed-off-by: Aanand Prasad --- fig/service.py | 4 +-- tests/integration/service_test.py | 51 +++++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/fig/service.py b/fig/service.py index 65bcf5197..2059024af 100644 --- a/fig/service.py +++ b/fig/service.py @@ -282,12 +282,12 @@ class Service(object): links = [] for service, link_name in self.links: for container in service.containers(): - if link_name: - links.append((container.name, link_name)) + links.append((container.name, link_name or service.name)) links.append((container.name, container.name)) links.append((container.name, container.name_without_project)) if link_to_self: for container in self.containers(): + links.append((container.name, self.name)) links.append((container.name, container.name)) links.append((container.name, container.name_without_project)) return links diff --git a/tests/integration/service_test.py b/tests/integration/service_test.py index 75275d8a7..7860e3023 100644 --- a/tests/integration/service_test.py +++ b/tests/integration/service_test.py @@ -171,29 +171,62 @@ class ServiceTest(DockerClientTestCase): def test_start_container_creates_links(self): db = self.create_service('db') web = self.create_service('web', links=[(db, None)]) + + db.start_container() db.start_container() web.start_container() - self.assertIn('figtest_db_1', web.containers()[0].links()) - self.assertIn('db_1', web.containers()[0].links()) + + self.assertEqual( + set(web.containers()[0].links()), + set([ + 'figtest_db_1', 'db_1', + 'figtest_db_2', 'db_2', + 'db', + ]), + ) def test_start_container_creates_links_with_names(self): db = self.create_service('db') web = self.create_service('web', links=[(db, 'custom_link_name')]) + + db.start_container() db.start_container() web.start_container() - self.assertIn('custom_link_name', web.containers()[0].links()) + + self.assertEqual( + set(web.containers()[0].links()), + set([ + 'figtest_db_1', 'db_1', + 'figtest_db_2', 'db_2', + 'custom_link_name', + ]), + ) def test_start_normal_container_does_not_create_links_to_its_own_service(self): db = self.create_service('db') - c1 = db.start_container() - c2 = db.start_container() - self.assertNotIn(c1.name, c2.links()) + + db.start_container() + db.start_container() + + c = db.start_container() + self.assertEqual(set(c.links()), set([])) def test_start_one_off_container_creates_links_to_its_own_service(self): db = self.create_service('db') - c1 = db.start_container() - c2 = db.start_container(one_off=True) - self.assertIn(c1.name, c2.links()) + + db.start_container() + db.start_container() + + c = db.start_container(one_off=True) + + self.assertEqual( + set(c.links()), + set([ + 'figtest_db_1', 'db_1', + 'figtest_db_2', 'db_2', + 'db', + ]), + ) def test_start_container_builds_images(self): service = Service(