def test_validation_error_if_no_role_provided_when_manage_false(sample_app): # We're indicating that we should not be managing the # IAM role, but we're not giving a role ARN to use. # This is a validation error. config = Config.create(chalice_app=sample_app, manage_iam_role=False) with pytest.raises(ValueError): validate_configuration(config)
def test_queue_arn_must_be_arn(sample_app): @sample_app.on_sqs_message( queue_arn='https://sqs.us-west-2.amazonaws.com/12345/myqueue') def handler(event): pass config = Config.create(chalice_app=sample_app) with pytest.raises(ValueError): validate_configuration(config)
def test_validation_error_if_minimum_compression_size_invalid_int(sample_app): config = Config.create(chalice_app=sample_app, minimum_compression_size=MIN_COMPRESSION_SIZE - 1) with pytest.raises(ValueError): validate_configuration(config) config = Config.create(chalice_app=sample_app, minimum_compression_size=MAX_COMPRESSION_SIZE + 1) with pytest.raises(ValueError): validate_configuration(config)
def test_can_use_queue_arn(sample_app): @sample_app.on_sqs_message(queue_arn='arn:sqs:...:myqueue') def handler(event): pass config = Config.create(chalice_app=sample_app) assert validate_configuration(config) is None
def test_validate_env_var_is_string_for_lambda_functions(sample_app): @sample_app.lambda_function() def foo(event, context): pass config = Config( chalice_stage='dev', config_from_disk={ 'stages': { 'dev': { 'lambda_functions': { 'foo': {'environment_variables': {'BAR': 2}}} } } }, user_provided_params={'chalice_app': sample_app} ) with pytest.raises(ValueError): validate_configuration(config)
def _validate_config(self, config): # type: (Config) -> None try: validate_configuration(config) except ValueError as e: raise ChaliceDeploymentError(e)
def test_manage_iam_role_false_requires_role_arn(sample_app): config = Config.create(chalice_app=sample_app, manage_iam_role=False, iam_role_arn='arn:::foo') assert validate_configuration(config) is None
def test_trailing_slash_routes_result_in_error(): app = Chalice('appname') app.routes = {'/trailing-slash/': None} config = Config.create(chalice_app=app) with pytest.raises(ValueError): validate_configuration(config)
def test_validate_environment_variables_value_type_not_str(sample_app): config = Config.create(chalice_app=sample_app, environment_variables={"ENV_KEY": 1}) with pytest.raises(ValueError): validate_configuration(config)
def test_validate_unicode_is_valid_env_var(sample_app): config = Config.create(chalice_app=sample_app, environment_variables={"ENV_KEY": u'unicode-val'}) assert validate_configuration(config) is None
def test_empty_route_results_in_error(): app = Chalice('appname') app.routes = {'': {}} config = Config.create(chalice_app=app) with pytest.raises(ValueError): validate_configuration(config)
def test_valid_minimum_compression_size(sample_app): config = Config.create(chalice_app=sample_app, minimum_compression_size=1) assert validate_configuration(config) is None
def test_validation_error_if_minimum_compression_size_not_int(sample_app): config = Config.create(chalice_app=sample_app, minimum_compression_size='not int') with pytest.raises(ValueError): validate_configuration(config)