def test_make_validator_handlers_use_local_meta_schema(): try: validator = make_validator( {"$ref": "https://somewhere/does/not/exist"}, base_uri="http://localhost/") validator.validate(True) except Exception: # pylint: disable=broad-except pytest.fail("Unexpect error, should success")
def test_make_validator_handlers_time_out(): from time import sleep @Request.application def application(request): # pylint: disable=unused-argument sleep(3) return Response("true", mimetype="application/json") with wsgi_serve(application) as server: with pytest.raises(jsonschema.exceptions.RefResolutionError) as excinfo: validator = make_validator( {"$ref": server.url}, base_uri="http://localhost/", timeout=0.5 ) validator.validate(True) assert "Read timed out" in str(excinfo.value)
def __make_resource_validator(base_uri=None, timeout=TIMEOUT_IN_SECONDS): schema = resource_json( __name__, "../../src/rpdk/core/data/schema/provider.definition.schema.modules.v1.json", ) return make_validator(schema, base_uri=base_uri)
def test_tag_wrong(schema): tag_config = schema["definitions"]["Tag"] validator = make_validator(tag_config) with pytest.raises(ValidationError): validator.validate({"Key": "aws:123abc", "Value": "aws:123abc"})
def test_tag_correct(schema): tag_config = schema["definitions"]["Tag"] validator = make_validator(tag_config) validator.validate({"Key": "123abc", "Value": "123abc"})
def test_availbilityzone_wrong(schema): availbilityzone_config = schema["definitions"]["AvailabilityZone"] validator = make_validator(availbilityzone_config) with pytest.raises(ValidationError): validator.validate("us-west")
def test_availbilityzone_correct(schema): availbilityzone_config = schema["definitions"]["AvailabilityZone"] validator = make_validator(availbilityzone_config) validator.validate("us-wast-2b")
def test_arn_wrong(schema): arn_config = schema["definitions"]["Arn"] validator = make_validator(arn_config) with pytest.raises(ValidationError): validator.validate("arn:aws:rds:eu-west-1:1234")
def test_arn_correct(schema): arn_config = schema["definitions"]["Arn"] validator = make_validator(arn_config) validator.validate("arn:aws:rds:eu-west-1:123456789012:db:mysql-db")