def test(self): script_dir = os.path.dirname(os.path.realpath(__file__)) code_dir = script_dir + "/../../sockshop/" + self.container_dir test_container_name = self.container_dir + '-test' docker = Docker() docker.execute(['docker', 'build', '-t', test_container_name, code_dir]) docker.execute(['docker', 'run', '--rm', test_container_name, 'go', 'test', 'github.com/microservices-demo/microservices-demo/' + self.container_dir])
class CatalogueApplicationTest(unittest.TestCase): TAG = "latest" container_name = 'catalogue' def __init__(self, methodName='runTest'): super(CatalogueApplicationTest, self).__init__(methodName) self.ip = "" self.front_end_ip = "" self.docker = Docker() def setUp(self): command = [ 'docker', 'run', '-d', '--name', CatalogueApplicationTest.container_name, '-h', CatalogueApplicationTest.container_name, 'weaveworksdemos/catalogue:' + self.TAG ] self.docker.execute(command) self.ip = self.docker.get_container_ip( CatalogueApplicationTest.container_name) command = [ 'docker', 'run', '-d', '--link', 'catalogue', '--name', "front-end", '-h', "front-end", 'weaveworksdemos/front-end:' + self.TAG ] self.docker.execute(command) self.front_end_ip = self.docker.get_container_ip("front-end") while Api().noResponse('http://' + self.front_end_ip + ':8079'): sleep(1) def tearDown(self): self.docker.kill_and_remove("front-end") self.docker.kill_and_remove(CatalogueApplicationTest.container_name) def test_catalogue_has_image(self): r = requests.get('http://' + self.front_end_ip + ':8079/catalogue', timeout=5) data = r.json() for item in data: for imageUrl in item['imageUrl']: r = requests.get('http://' + self.front_end_ip + ':8079' + imageUrl, timeout=5) self.assertLess(r.status_code, 299, msg=str(r.status_code) + ": error getting " + imageUrl) self.assertGreater(int(r.headers.get("Content-Length")), 0, msg="Issue with: " + imageUrl + ": " + r.headers.get("Content-Length")) self.assertEqual("image/jpeg", r.headers.get("Content-Type"), msg="Issue with: " + imageUrl + ": " + r.headers.get("Content-Type"))