#!/bin/python
# Tests for schema validation
# A. Schlemmer, 06/2021

from importlib_resources import files
import caosdb as db

from os.path import join, dirname
from caoscrawler import Crawler

import pytest
from pytest import raises

from jsonschema.exceptions import ValidationError

from caoscrawler.scanner import load_definition


def rfp(*pathcomponents):
    """
    Return full path.
    Shorthand convenience function.
    """
    return join(dirname(__file__), *pathcomponents)


def test_schema_validation():
    load_definition(rfp("scifolder_cfood.yml"))
    load_definition(rfp("scifolder_extended.yml"))

    with raises(ValidationError, match=".*enum.*"):
        load_definition(rfp("broken_cfoods", "broken1.yml"))