def paasta_local_run(args): if args.pull: build = False elif args.build: build = True else: build = local_makefile_present() service = figure_out_service_name(args, soa_dir=args.yelpsoa_config_root) base_docker_url = get_docker_host() docker_client = Client(base_url=base_docker_url) if build: default_tag = 'paasta-local-run-%s-%s' % (service, get_username()) tag = os.environ.get('DOCKER_TAG', default_tag) os.environ['DOCKER_TAG'] = tag pull_image = False paasta_cook_image(None, service=service, soa_dir=args.yelpsoa_config_root) else: pull_image = True tag = None try: configure_and_run_docker_container( docker_client=docker_client, docker_hash=tag, service=service, args=args, pull_image=pull_image, ) except errors.APIError as e: sys.stderr.write('Can\'t run Docker container. Error: %s\n' % str(e)) sys.exit(1)
def test_run_makefile_fail( mock_run, mock_makefile_responds_to, mock_validate_service_name, ): mock_run.return_value = (0, 'Output') mock_makefile_responds_to.return_value = False mock_validate_service_name.return_value = True args = mock.MagicMock() args.service = 'fake_service' with raises(SystemExit) as excinfo: paasta_cook_image(args) assert excinfo.value.code == 1
def test_run_keyboard_interrupt( mock_run, mock_makefile_responds_to, mock_validate_service_name, ): mock_run.return_value = (0, 'Output') mock_makefile_responds_to.return_value = True mock_validate_service_name.return_value = True mock_run.side_effect = FakeKeyboardInterrupt args = mock.MagicMock() args.service = 'fake_service' with raises(SystemExit) as excinfo: paasta_cook_image(args) assert excinfo.value.code == 2
def paasta_local_run(args): validate_environment() service = figure_out_service_name(args, soa_dir=args.yelpsoa_config_root) base_docker_url = get_docker_host() docker_client = Client(base_url=base_docker_url) default_tag = 'paasta-local-run-%s-%s' % (service, get_username()) tag = os.environ.get('DOCKER_TAG', default_tag) os.environ['DOCKER_TAG'] = tag paasta_cook_image(None, service=service, soa_dir=args.yelpsoa_config_root) try: configure_and_run_docker_container(docker_client, tag, service, args) except errors.APIError as e: sys.stderr.write('Can\'t run Docker container. Error: %s\n' % str(e)) sys.exit(1)
def test_run_success( mock_run, mock_makefile_responds_to, mock_validate_service_name, ): mock_run.return_value = (0, 'Output') mock_makefile_responds_to.return_value = True mock_validate_service_name.return_value = True args = mock.MagicMock() args.service = 'fake_service' assert paasta_cook_image(args) is None