예제 #1
0
def get_term(slug):
    res = current_flask_taxonomies_es.get('licenses', slug)
    if not res:
        res = get_taxonomy_term(code="licenses", slug=slug)
    if not res:
        res = current_flask_taxonomies_es.get('licenses', "copyright")
    return get_ref_es(res)
예제 #2
0
def test_set_get_remove(app, db, root_taxonomy, sample_term, sample_term_dict):
    current_flask_taxonomies_es.set(sample_term)
    time.sleep(1)
    result = current_flask_taxonomies_es.get(root_taxonomy.slug, sample_term.slug)
    del result['date_of_serialization']
    assert result == sample_term_dict
    current_flask_taxonomies_es.remove(sample_term)
    time.sleep(1)
    result = current_flask_taxonomies_es.get(root_taxonomy.slug, sample_term.slug)
    assert result is None
예제 #3
0
def test_after_taxonomy_term_deleted(app, db, sample_term, sample_term_dict):
    taxonomy_code = sample_term.taxonomy.slug
    slug = sample_term.slug
    current_flask_taxonomies_es.set(sample_term)
    time.sleep(1)
    taxonomy_dict = current_flask_taxonomies_es.get(taxonomy_code, slug)
    del taxonomy_dict['date_of_serialization']
    assert taxonomy_dict == sample_term_dict
    after_taxonomy_term_deleted.connect(delete_taxonomy_term)
    after_taxonomy_term_deleted.send(term=sample_term)
    time.sleep(1)
    term_dict = current_flask_taxonomies_es.get(taxonomy_code, slug)
    time.sleep(1)
    assert term_dict is None
예제 #4
0
def test_get_ref(app, db, root_taxonomy, child_term, child_term_dict):
    current_flask_taxonomies_es.set(child_term)
    time.sleep(1)
    res = current_flask_taxonomies_es.get(root_taxonomy.slug, child_term.slug)
    res2 = current_flask_taxonomies_es.get_ref(res["links"]["self"])
    del res['date_of_serialization']
    del res2['date_of_serialization']
    assert res == res2 == child_term_dict
def get_ref_by_provider(provider):
    provider_slug = get_slug(provider)
    if not provider_slug:
        return
    provider = current_flask_taxonomies_es.get('institutions', provider_slug)
    if provider:
        return provider
    return get_taxonomy_term(TAXONOMY_CODE, provider_slug)
예제 #6
0
def test_reindex(app, db, root_taxonomy, sample_term, child_term):
    current_flask_taxonomies_es.set(sample_term)
    time.sleep(1)
    term1 = current_flask_taxonomies_es.get(sample_term.taxonomy.slug, sample_term.slug)
    timestamp1 = term1['date_of_serialization']
    time.sleep(1)
    reindex_timestamp = current_flask_taxonomies_es.reindex()
    time.sleep(1)
    term2 = current_flask_taxonomies_es.get(sample_term.taxonomy.slug, sample_term.slug)
    time.sleep(1)
    timestamp2 = term2["date_of_serialization"]
    assert timestamp1 != timestamp2
    time.sleep(1)
    terms = current_flask_taxonomies_es.list("root")
    assert len(terms) == 2
    for term in terms:
        assert term['date_of_serialization'] == str(reindex_timestamp)
예제 #7
0
def get_ref(slug, code):
    res = current_flask_taxonomies_es.get(code, slug)
    if len(res) > 0 and isinstance(res, dict):
        return get_ref_es(res)
    tax = Taxonomy.get(code)
    term = tax.get_term(slug)
    if term is None:
        return None
    return {"$ref": link_self(tax.slug, term)}
def doctype(self, key, values):
    doc_type = values[0].get('a')
    es_result = current_flask_taxonomies_es.get("doctypes", doc_type)
    if es_result:
        return get_ref_es(es_result)
    doctype_tax = Taxonomy.get("doctypes", required=True)
    doctype = doctype_tax.descendants.filter(
        TaxonomyTerm.slug == doc_type).one()

    return {"$ref": link_self(doctype_tax.slug, doctype)}
예제 #9
0
def get_ref(lang, taxonomy):
    res = current_flask_taxonomies_es.get("languages", lang)
    if len(res) > 0 and isinstance(res, dict):
        return get_ref_es(res)
    lang_tax = taxonomy.get_term(lang)
    if lang_tax is None:
        return None
    return {
        "$ref": link_self(taxonomy.slug, lang_tax)
    }
예제 #10
0
def test_set_remove_2(app, db, root_taxonomy, sample_term):
    current_flask_taxonomies_es.set(sample_term)
    time.sleep(1)
    current_flask_taxonomies_es.remove(
        taxonomy_code=sample_term.taxonomy.slug,
        slug=sample_term.slug
    )
    time.sleep(1)
    result = current_flask_taxonomies_es.get(root_taxonomy.slug, sample_term.slug)
    assert result is None
예제 #11
0
def get_ref(slug):
    res = current_flask_taxonomies_es.get("accessRights", slug)
    if len(res) > 0 and isinstance(res, dict):
        return get_ref_es(res)
    tax = Taxonomy.get("accessRights", required=True)
    res = tax.get_term(slug)
    if res is None:
        return None
    return {
        "$ref": link_self(res.slug, tax)
    }
def get_role(role):
    res = current_flask_taxonomies_es.get("contributor-type", role)
    if not res:
        tax = Taxonomy.get("contributor-type")
        term = tax.get_term(role)
        if term:
            return {
                "$ref": link_self(tax.slug, term)
            }
        else:
            return
    return get_ref_es(res)
def provider(self, key, value):
    nusl_slug = value.get("a")
    slug = get_slug(nusl_slug).strip()
    if not slug:
        return
    provider = current_flask_taxonomies_es.get('institutions', slug)
    if provider:
        return get_ref_es(provider)
    tax = Taxonomy.get("institutions", required=True)
    provider = tax.descendants.filter(TaxonomyTerm.slug == slug).one()  # viz:
    # https://stackoverflow.com/questions/29974143/python-sqlalchemy-and-postgres-how-to-query-a
    # -json-element
    return {"$ref": link_self(tax.slug, provider)}
예제 #14
0
def test_before_taxonomy_jsonresolve(app, db, sample_term, sample_term_dict):
    taxonomy_code = sample_term.taxonomy.slug
    slug = sample_term.slug
    current_flask_taxonomies_es.set(sample_term)
    time.sleep(1)
    taxonomy_dict = current_flask_taxonomies_es.get(taxonomy_code, slug)
    del taxonomy_dict['date_of_serialization']
    assert taxonomy_dict == sample_term_dict
    resp = before_taxonomy_jsonresolve.send(None,
                                            code=taxonomy_code,
                                            slug=slug)
    sample_term_dict = sample_term_dict
    del sample_term_dict["taxonomy"]
    assert resp[0][1] == sample_term_dict
def test_subject_1(app, db, overdo_instance):
    value = [
        {
            '2': 'mednas',
            '7': 'nlk20040148348',
            'a': 'přírodní vědy',
        },
        {
            '2': 'czmesh',
            '7': 'D002626',
            'a': 'chemie farmaceutická',
        },
        {
            '2': 'czmesh',
            '7': 'D002620',
            'a': 'farmakologické a toxikologické jevy a procesy',
        },
        {
            '2': 'czenas',
            '0': 'ph114722',
            'a': 'hudebniny',
        },
        {
            '2': 'czenas',
            '0': 'ph114722',
            'a': 'hudba',
        },
        {
            '0': 'http://psh.ntkcz.cz/skos/PSH11857',
            '2': 'PSH',
            'a': 'hudba',
            'j': 'music'
        },
    ]
    results = subject(overdo_instance, "key", value)
    assert len(results) == 6
    for result in results:
        assert "$ref" in result.keys()
        url = urlparse(result["$ref"])
        path_array = url.path.split("/")
        slug = path_array[-2]
        assert current_flask_taxonomies_es.get("subjects", slug) is not None
def find_org_by_slug(slug):
    result = current_flask_taxonomies_es.get(TAXONOMY_CODE, slug)
    if not result:
        result = get_taxonomy_term(code=TAXONOMY_CODE, slug=slug)
    return get_ref_es(result)
예제 #17
0
def test_set_get_child_term(app, db, root_taxonomy, child_term):
    current_flask_taxonomies_es.set(child_term)
    time.sleep(1)
    result = current_flask_taxonomies_es.get(root_taxonomy.slug, child_term.slug)
    del result['date_of_serialization']
    assert result["path"] == '/1/3'
예제 #18
0
def get_(taxonomy: str, slug: str):
    current_flask_taxonomies_es.get(taxonomy, slug)