def test_containers_are_built( self, mocked_redis_runner, mocked_consul_runner, mocked_postgres_runner, mocked_gunicorn_runner, mocked_registrator_runner, mocked_solr_runner, ): """ Tests that the containers relevant for the test environment are started """ config = {} services = config.setdefault( "services", [{"name": "adsws", "repository": "adsabs", "tag": "0596971c755855ff3f9caed2f96af7f9d5792cc2"}] ) dependencies = config.setdefault( "dependencies", [ {"name": "redis", "image": "redis:2.8.9"}, {"name": "postgres", "image": "postgres:9.3"}, {"name": "registrator", "image": "gliderlabs/registrator:latest"}, {"name": "solr", "image": "adsabs/montysolr:v48.1.0.3"}, {"name": "consul", "image": "adsabs/consul:v1.0.0"}, ], ) instance_gunicorn_runner = mocked_gunicorn_runner.return_value instance_redis_runner = mocked_redis_runner.return_value instance_consul_runner = mocked_consul_runner.return_value instance_postgres_runner = mocked_postgres_runner.return_value instance_registrator_runner = mocked_registrator_runner.return_value instance_solr_runner = mocked_solr_runner.return_value instance_list = [ instance_gunicorn_runner, instance_redis_runner, instance_consul_runner, instance_postgres_runner, instance_registrator_runner, instance_solr_runner, ] for instance in instance_list: instance.start.return_value = None instance.provision.return_value = None instance_registrator_runner.start.return_value = None instance_registrator_runner.provision.return_value = None start_test_environment(test_id=None, config=config) for instance in instance_list: self.assertTrue(instance.start.called, msg="Instance {} was not called".format(instance)) instance.provision.has_calls([call(callback=s["name"]) for s in services])
def test_start_test_environment_task(self): """ Tests that the environment is correctly setup, the containers are running and provisioned. """ start_test_environment(test_id='livetests', config=self.config) # Check redis is running redis_info = self.helper_get_container_values('redis', 6379) rs = redis.Redis('localhost', port=redis_info['port']) try: rs.client_list() except redis.ConnectionError as e: self.fail('Redis cache has not started: {}'.format(e)) # Check postgres is running postgres_info = self.helper_get_container_values('postgres', 5432) postgres_uri = 'postgresql://postgres:@{host}:{port}'.format( host=postgres_info['host'], port=postgres_info['port'] ) try: engine = create_engine(postgres_uri) engine.connect() except OperationalError as e: self.fail('Postgresql database has not started: {}'.format(e)) # Check solr is running solr_info = self.helper_get_container_values('solr', 8983) response = requests.get('http://{host}:{port}'.format( host=solr_info['host'], port=solr_info['port'] ) ) self.assertEqual( response.status_code, 404 ) # Check consul is running consul_info = self.helper_get_container_values('consul', 8500) session = Consul(host=consul_info['host'], port=consul_info['port']) self.assertEqual( session.kv.get('config/adsws/staging/DEBUG'), "false" ) self.assertEqual( session.kv.get('config/adsws/staging/SQLALCHEMY_DATABASE_URI'), '"postgresql+psycopg2://postgres:@{}:{}/adsws"'.format( '172.17.42.1', postgres_info['port'] ) ) # Check registrator is running registrator_info = self.helper_get_container_values('registrator', None)
def test_start_test_environment_task(self): """ Tests that the environment is correctly setup, the containers are running and provisioned. """ start_test_environment(test_id='livetests', config=self.config) # Check redis is running redis_info = self.helper_get_container_values('redis', 6379) rs = redis.Redis('localhost', port=redis_info['port']) try: rs.client_list() except redis.ConnectionError as e: self.fail('Redis cache has not started: {}'.format(e)) # Check postgres is running postgres_info = self.helper_get_container_values('postgres', 5432) postgres_uri = 'postgresql://postgres:@{host}:{port}'.format( host=postgres_info['host'], port=postgres_info['port']) try: engine = create_engine(postgres_uri) engine.connect() except OperationalError as e: self.fail('Postgresql database has not started: {}'.format(e)) # Check solr is running solr_info = self.helper_get_container_values('solr', 8983) response = requests.get('http://{host}:{port}'.format( host=solr_info['host'], port=solr_info['port'])) self.assertEqual(response.status_code, 404) # Check consul is running consul_info = self.helper_get_container_values('consul', 8500) session = Consul(host=consul_info['host'], port=consul_info['port']) self.assertEqual(session.kv.get('config/adsws/staging/DEBUG'), "false") self.assertEqual( session.kv.get('config/adsws/staging/SQLALCHEMY_DATABASE_URI'), '"postgresql+psycopg2://postgres:@{}:{}/adsws"'.format( '172.17.42.1', postgres_info['port'])) # Check registrator is running registrator_info = self.helper_get_container_values( 'registrator', None)
def test_containers_are_built(self, mocked_redis_runner, mocked_consul_runner, mocked_postgres_runner, mocked_gunicorn_runner, mocked_registrator_runner, mocked_solr_runner): """ Tests that the containers relevant for the test environment are started """ config = {} services = config.setdefault( 'services', [{ 'name': 'adsws', 'repository': 'adsabs', 'tag': '0596971c755855ff3f9caed2f96af7f9d5792cc2' }]) dependencies = config.setdefault( 'dependencies', [{ "name": "redis", "image": "redis:2.8.9", }, { "name": "postgres", "image": "postgres:9.3", }, { "name": "registrator", "image": "gliderlabs/registrator:latest" }, { "name": "solr", "image": "adsabs/montysolr:v48.1.0.3" }, { "name": "consul", "image": "adsabs/consul:v1.0.0", }]) instance_gunicorn_runner = mocked_gunicorn_runner.return_value instance_redis_runner = mocked_redis_runner.return_value instance_consul_runner = mocked_consul_runner.return_value instance_postgres_runner = mocked_postgres_runner.return_value instance_registrator_runner = mocked_registrator_runner.return_value instance_solr_runner = mocked_solr_runner.return_value instance_list = [ instance_gunicorn_runner, instance_redis_runner, instance_consul_runner, instance_postgres_runner, instance_registrator_runner, instance_solr_runner ] for instance in instance_list: instance.start.return_value = None instance.provision.return_value = None instance_registrator_runner.start.return_value = None instance_registrator_runner.provision.return_value = None start_test_environment(test_id=None, config=config) for instance in instance_list: self.assertTrue(instance.start.called, msg='Instance {} was not called'.format(instance)) instance.provision.has_calls( [call(callback=s['name']) for s in services])