Example #1
0
def run_schema_example_test(organization, standard, name, version, check_func=None):

    import asdf
    from asdf.tests import helpers
    from asdf.types import format_tag
    from asdf.resolver import default_resolver

    tag = format_tag(organization, standard, version, name)
    schema_path = urllib.parse.urlparse(default_resolver(tag)).path

    with open(schema_path, 'rb') as ff:
        schema = yaml.load(ff)

    examples = []
    for node in asdf.treeutil.iter_tree(schema):
        if (isinstance(node, dict) and
            'examples' in node and
            isinstance(node['examples'], list)):
            for desc, example in node['examples']:
                examples.append(example)

    for example in examples:
        buff = helpers.yaml_to_asdf('example: ' + example.strip())
        ff = asdf.AsdfFile(uri=schema_path)
        # Add some dummy blocks so that the ndarray examples work
        for i in range(3):
            b = asdf.block.Block(np.zeros((1024*1024*8), dtype=np.uint8))
            b._used = True
            ff.blocks.add(b)
        ff._open_impl(ff, buff, mode='r')
        if check_func:
            check_func(ff)
Example #2
0
def run_schema_example_test(organization, standard, name, version, check_func=None):

    import asdf
    from asdf.tests import helpers
    from asdf.types import format_tag
    from asdf.schema import load_schema

    tag = format_tag(organization, standard, version, name)
    uri = asdf.resolver.default_tag_to_url_mapping(tag)
    r = asdf.AsdfFile().resolver

    examples = []
    schema = load_schema(uri, resolver=r)
    for node in asdf.treeutil.iter_tree(schema):
        if (isinstance(node, dict) and
            'examples' in node and
            isinstance(node['examples'], list)):
            for desc, example in node['examples']:
                examples.append(example)

    for example in examples:
        buff = helpers.yaml_to_asdf('example: ' + example.strip())
        ff = asdf.AsdfFile(uri=uri)
        # Add some dummy blocks so that the ndarray examples work
        for i in range(3):
            b = asdf.block.Block(np.zeros((1024*1024*8), dtype=np.uint8))
            b._used = True
            ff.blocks.add(b)
        ff._open_impl(ff, buff, mode='r')
        if check_func:
            check_func(ff)
Example #3
0
def run_schema_example_test(organization,
                            standard,
                            name,
                            version,
                            check_func=None):

    import asdf
    from asdf.tests import helpers
    from asdf.types import format_tag
    from asdf.schema import load_schema

    tag = format_tag(organization, standard, version, name)
    uri = asdf.extension.default_extensions.extension_list.tag_mapping(tag)
    r = asdf.extension.get_default_resolver()

    examples = []
    schema = load_schema(uri, resolver=r)
    for node in asdf.treeutil.iter_tree(schema):
        if (isinstance(node, dict) and 'examples' in node
                and isinstance(node['examples'], list)):
            for desc, example in node['examples']:
                examples.append(example)

    for example in examples:
        buff = helpers.yaml_to_asdf('example: ' + example.strip())
        ff = asdf.AsdfFile(uri=uri)
        # Add some dummy blocks so that the ndarray examples work
        for i in range(3):
            b = asdf.block.Block(np.zeros((1024 * 1024 * 8), dtype=np.uint8))
            b._used = True
            ff.blocks.add(b)
        ff._open_impl(ff, buff, mode='r')
        if check_func:
            check_func(ff)
Example #4
0
def test_schema_resolved_via_entry_points():
    """Test that entry points mappings to core schema works"""
    r = extension.get_default_resolver()
    tag = types.format_tag('stsci.edu', 'asdf', '1.0.0', 'fits/fits')
    url = extension.default_extensions.extension_list.tag_mapping(tag)

    s = schema.load_schema(url, resolver=r, resolve_references=True)
    assert tag in repr(s)
Example #5
0
def test_schema_resolved_via_entry_points():
    """Test that entry points mappings to core schema works"""
    r = asdf.AsdfFile().resolver
    tag = types.format_tag('stsci.edu', 'asdf', '1.0.0', 'fits/fits')
    url = resolver.default_tag_to_url_mapping(tag)

    s = schema.load_schema(url, resolver=r, resolve_references=True)
    assert tag in repr(s)