예제 #1
0
파일: test.py 프로젝트: poldinik/openapi
def test_validate_resolved():
    simple_yaml = "tests/simple.yaml"
    oas = yaml_load_file(simple_yaml, cb=replace_branch_name)
    resolver = OpenapiResolver(oas)
    oas_resolved = resolver.dump_yaml()
    validate_spec(oas_resolved)

    Path("tests/out.simple.yaml").write_text(resolver.dump())
예제 #2
0
def test_resolve_subreference_fix7_1():
    fpath = Path("data/subreference.yaml")
    oat = yaml_load_file(str(fpath))
    resolver = OpenapiResolver(oat, str(fpath.resolve()))
    resolver.resolve()
    yaml_ = resolver.dump_yaml()
    components = defaultdict(dict, yaml_.pop("components"))
    log.debug(yaml_dump(components))
    assert components["schemas"]["TaxCode"]
예제 #3
0
def test_resolve_subreference_fix6_2():
    fpath = Path("data/subreference.yaml")
    oat = yaml_load_file(str(fpath))
    resolver = OpenapiResolver(oat, str(fpath.resolve()))
    resolver.resolve()
    yaml_ = resolver.dump_yaml()
    components = defaultdict(dict, yaml_.pop("components"))
    log.debug(yaml_dump(components))
    assert components["responses"]["429TooManyRequests"]
    assert components["schemas"]["Problem"]
    assert components["headers"]["Retry-After"]
예제 #4
0
def test_resolve_subreference_fix6():
    # preserve nested objects.
    fpath = Path("data/headers/subheaders.yaml")
    oat = yaml_load_file(str(fpath))
    resolver = OpenapiResolver(oat, str(fpath))
    resolver.resolve()
    yaml_ = resolver.dump_yaml()

    components = defaultdict(dict, yaml_.pop("components"))
    components[fpath.parent.name].update(yaml_)
    log.debug(yaml_dump(components))
    assert components["headers"]["headers"]
예제 #5
0
def test_resolve_subreference_fix6_1():
    oat = {
        "components": {
            "headers": {
                "X-Foo": {"$ref": "data/headers/subheaders.yaml#/headers/Retry-After"}
            }
        }
    }
    resolver = OpenapiResolver(oat, None)
    resolver.resolve()
    yaml_ = resolver.dump_yaml()
    components = defaultdict(dict, yaml_.pop("components"))
    log.debug(yaml_dump(components))
    assert components["headers"]["Retry-After"]
예제 #6
0
def test_resolve_local_2():
    # load files from different paths
    # and resolve relative references.
    fpath = Path("data/responses/responses.yaml")
    oat = yaml_load_file(str(fpath))
    resolver = OpenapiResolver(oat, str(fpath))
    resolver.resolve()
    yaml_ = resolver.dump_yaml()

    components = defaultdict(dict, yaml_.pop("components"))
    components[fpath.parent.name].update(yaml_)
    log.debug(yaml_dump(components))
    assert components["headers"]["Retry-After"]
    assert components["schemas"]["Problem"]
예제 #7
0
def test_resolve_local_3():
    # load files from different paths
    # and resolve relative references.
    fpath = Path("data/parameters/parameters.yaml")
    oat = yaml_load_file(str(fpath))
    resolver = OpenapiResolver(oat, str(fpath))
    resolver.resolve()
    yaml_ = resolver.dump_yaml()

    components = defaultdict(dict, yaml_.pop("components"))
    components[fpath.parent.name].update(yaml_)
    log.debug(yaml_dump(components))
    assert components["schemas"]["Person"]
    assert components["parameters"]["citizen"]["schema"]
    assert components["schemas"]["TaxCode"]