コード例 #1
0
ファイル: match_doc.py プロジェクト: overview/osp
def match_doc(id):

    """
    Find an institution with the same base URL as a document.

    Args:
        id (int): A document id.
    """

    doc = Document.get(Document.id==id)

    # Break if no manifest.
    if not doc.syllabus.registered_domain:
        return

    # Form the domain query.
    q = '%'+doc.syllabus.registered_domain+'%'

    inst = (
        Institution
        .select()
        .where(Institution.metadata['Institution_Web_Address'] ** (q))
        .order_by(Institution.id)
        .first()
    )

    if inst:

        Document_Institution.create(
            document=doc.id,
            institution=inst
        )
コード例 #2
0
def test_state_abbreviations(add_hlom, add_doc):

    """
    HLOM_Citation.index_state() should denormalize state abbreviations.
    """

    t1 = add_hlom()
    t2 = add_hlom()
    t3 = add_hlom()

    s1 = add_doc('syllabus1')
    s2 = add_doc('syllabus2')
    s3 = add_doc('syllabus3')

    c1 = HLOM_Citation.create(document=s1, record=t1)
    c2 = HLOM_Citation.create(document=s2, record=t2)
    c3 = HLOM_Citation.create(document=s3, record=t3)

    # Create institutions with states.
    AL = Institution.create(metadata={'Institution_State': 'AL'})
    CT = Institution.create(metadata={'Institution_State': 'CT'})
    CA = Institution.create(metadata={'Institution_State': 'CA'})

    # Link documents -> institutions.
    Document_Institution.create(document=t1, institution=AL)
    Document_Institution.create(document=t2, institution=CT)
    Document_Institution.create(document=t3, institution=CA)

    HLOM_Citation.index_institutions()

    c1 = HLOM_Citation.reload(c1)
    c2 = HLOM_Citation.reload(c2)
    c3 = HLOM_Citation.reload(c3)

    assert c1.state == 'AL'
    assert c2.state == 'CT'
    assert c3.state == 'CA'
コード例 #3
0
def test_institution_ids(add_hlom, add_doc):

    """
    HLOM_Citation.index_state() should denormalize institution ids.
    """

    t1 = add_hlom()
    t2 = add_hlom()
    t3 = add_hlom()

    s1 = add_doc('syllabus1')
    s2 = add_doc('syllabus2')
    s3 = add_doc('syllabus3')

    c1 = HLOM_Citation.create(document=s1, record=t1)
    c2 = HLOM_Citation.create(document=s2, record=t2)
    c3 = HLOM_Citation.create(document=s3, record=t3)

    i1 = Institution.create()
    i2 = Institution.create()
    i3 = Institution.create()

    # Link documents -> institutions.
    Document_Institution.create(document=t1, institution=i1)
    Document_Institution.create(document=t2, institution=i2)
    Document_Institution.create(document=t3, institution=i3)

    HLOM_Citation.index_institutions()

    c1 = HLOM_Citation.reload(c1)
    c2 = HLOM_Citation.reload(c2)
    c3 = HLOM_Citation.reload(c3)

    assert c1.institution == i1
    assert c2.institution == i2
    assert c3.institution == i3
コード例 #4
0
def test_institution_counts(models):

    """
    Document_Institution.institution_counts() should provide syllabus counts
    for each institution id.
    """

    i1 = Institution.create()
    i2 = Institution.create()
    i3 = Institution.create()

    d1 = Document.create(path='d1')
    d2 = Document.create(path='d2')
    d3 = Document.create(path='d3')
    d4 = Document.create(path='d4')
    d5 = Document.create(path='d5')
    d6 = Document.create(path='d6')

    # 1 document for institution 1.
    Document_Institution.create(institution=i1, document=d1)

    # 2 documents for institution 2.
    Document_Institution.create(institution=i2, document=d2)
    Document_Institution.create(institution=i2, document=d3)

    # 3 documents for institution 3.
    Document_Institution.create(institution=i3, document=d4)
    Document_Institution.create(institution=i3, document=d5)
    Document_Institution.create(institution=i3, document=d6)

    assert Document_Institution.institution_counts() == {
        d1.id: 1,
        d2.id: 2,
        d3.id: 3,
    }