Example #1
0
def update_sets():
    """Check that each community has a corresponding oai set"""
    for community in Community.get_all():
        dirty = False
        oaiset = OAISet.query.filter(
            OAISet.spec == str(community.id)).one_or_none()
        if not oaiset:
            click.secho('Adding new oai set {}'.format(community.name),
                        fg='yellow',
                        bold=True)
            oaiset = OAISet(spec=str(community.id),
                            name=community.name,
                            description=community.description)
            dirty = True
        else:
            if oaiset.name != community.name:
                oaiset.name = community.name
                dirty = True
                click.secho('Update name for set {}'.format(oaiset.spec),
                            fg='yellow',
                            bold=True)
            if oaiset.description != community.description:
                oaiset.description = community.description
                dirty = True
                click.secho('Update description for set {}'.format(
                    oaiset.spec),
                            fg='yellow',
                            bold=True)
        if dirty:
            db.session.add(oaiset)
    db.session.commit()
Example #2
0
def update_sets():
    """Check that each community has a corresponding oai set"""
    for community in Community.get_all():
        dirty = False
        oaiset = OAISet.query.filter(OAISet.spec == str(community.id)).one_or_none()
        if not oaiset:
            click.secho('Adding new oai set {}'.format(community.name),
                        fg='yellow', bold=True)
            oaiset = OAISet(spec=str(community.id),
                            name=community.name,
                            description=community.description)
            dirty = True
        else:
            if oaiset.name != community.name:
                oaiset.name = community.name
                dirty = True
                click.secho('Update name for set {}'.format(oaiset.spec),
                            fg='yellow', bold=True)
            if oaiset.description != community.description:
                oaiset.description = community.description
                dirty = True
                click.secho('Update description for set {}'.format(oaiset.spec),
                            fg='yellow', bold=True)
        if dirty:
            db.session.add(oaiset)
    db.session.commit()
Example #3
0
def _try_populate_oaisets():
    """Try to update collections."""
    schema = {
        'type': 'object',
        'properties': {
            'title': {
                'type': 'string'
            },
            'field': {
                'type': 'boolean'
            },
        },
        'required': ['title'],
    }

    a = OAISet(name="a")
    b = OAISet(name="b")
    e = OAISet(name="e", search_pattern="title:Test2 OR title:Test3")
    c = OAISet(name="c", search_pattern="title:Test0")
    d = OAISet(name="d", search_pattern="title:Test1")
    f = OAISet(name="f", search_pattern="title:Test2")
    g = OAISet(name="g")
    h = OAISet(name="h")
    i = OAISet(name="i", search_pattern="title:Test3")
    j = OAISet(name="j", search_pattern="title:Test4")

    with db.session.begin_nested():
        for coll in [a, b, c, d, e, f, g, h, i, j]:
            db.session.add(coll)

    db.session.commit()

    # start tests

    record0 = Record.create({'title': 'Test0', '$schema': schema})

    assert 'c' in record0['_oaisets']
    assert len(record0['_oaisets']) == 1

    record = Record.create({'title': 'TestNotFound', '$schema': schema})

    assert record['_oaisets'] == []

    record = Record.create({'title': 'Test1', '$schema': schema})

    assert 'd' in record['_oaisets']
    assert len(record['_oaisets']) == 1

    record = Record.create({'title': 'Test2', '$schema': schema})

    assert 'e' in record['_oaisets']
    assert 'f' in record['_oaisets']
    assert len(record['_oaisets']) == 2

    record3 = Record.create({'title': 'Test3', '$schema': schema})

    assert 'e' in record3['_oaisets']
    assert 'i' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    record4 = Record.create({'title': 'Test4', '$schema': schema})

    assert 'j' in record4['_oaisets']
    assert len(record4['_oaisets']) == 1

    # test delete
    db.session.delete(j)
    db.session.commit()
    record4.commit()

    assert 'h' not in record4['_oaisets']
    assert 'j' not in record4['_oaisets']
    assert len(record4['_oaisets']) == 0

    # test update search_pattern
    i.search_pattern = None
    db.session.add(i)
    db.session.commit()
    record3.commit()

    assert 'e' in record3['_oaisets']
    assert len(record3['_oaisets']) == 1

    # test update search_pattern
    i.search_pattern = 'title:Test3'
    db.session.add(i)
    db.session.commit()
    record3.commit()

    assert 'e' in record3['_oaisets']
    assert 'i' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    # test update name
    a.name = "new-a"
    db.session.add(a)
    db.session.commit()
    record3.commit()

    assert 'i' in record3['_oaisets']
    assert 'e' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    # test update name
    c.name = "new-c"
    db.session.add(c)
    db.session.commit()
    record0.commit()

    assert 'new-c' in record0['_oaisets']
    assert len(record0['_oaisets']) == 1
def _try_populate_oaisets():
    """Try to update collections."""
    schema = {
        'type': 'object',
        'properties': {
                'title': {'type': 'string'},
                'field': {'type': 'boolean'},
            },
        'required': ['title'],
    }

    a = OAISet(name="a")
    b = OAISet(name="b")
    e = OAISet(
        name="e", search_pattern="title:Test2 OR title:Test3")
    c = OAISet(name="c", search_pattern="title:Test0")
    d = OAISet(name="d", search_pattern="title:Test1")
    f = OAISet(name="f", search_pattern="title:Test2")
    g = OAISet(name="g")
    h = OAISet(name="h")
    i = OAISet(name="i", search_pattern="title:Test3")
    j = OAISet(name="j", search_pattern="title:Test4")

    with db.session.begin_nested():
        for coll in [a, b, c, d, e, f, g, h, i, j]:
            db.session.add(coll)

    db.session.commit()

    # start tests

    record0 = Record.create({'title': 'Test0', '$schema': schema})

    assert 'c' in record0['_oaisets']
    assert len(record0['_oaisets']) == 1

    record = Record.create({'title': 'TestNotFound', '$schema': schema})

    assert record['_oaisets'] == []

    record = Record.create({'title': 'Test1', '$schema': schema})

    assert 'd' in record['_oaisets']
    assert len(record['_oaisets']) == 1

    record = Record.create({'title': 'Test2', '$schema': schema})

    assert 'e' in record['_oaisets']
    assert 'f' in record['_oaisets']
    assert len(record['_oaisets']) == 2

    record3 = Record.create({'title': 'Test3', '$schema': schema})

    assert 'e' in record3['_oaisets']
    assert 'i' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    record4 = Record.create({'title': 'Test4', '$schema': schema})

    assert 'j' in record4['_oaisets']
    assert len(record4['_oaisets']) == 1

    # test delete
    db.session.delete(j)
    db.session.commit()
    record4.commit()

    assert 'h' not in record4['_oaisets']
    assert 'j' not in record4['_oaisets']
    assert len(record4['_oaisets']) == 0

    # test update search_pattern
    i.search_pattern = None
    db.session.add(i)
    db.session.commit()
    record3.commit()

    assert 'e' in record3['_oaisets']
    assert len(record3['_oaisets']) == 1

    # test update search_pattern
    i.search_pattern = 'title:Test3'
    db.session.add(i)
    db.session.commit()
    record3.commit()

    assert 'e' in record3['_oaisets']
    assert 'i' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    # test update name
    a.name = "new-a"
    db.session.add(a)
    db.session.commit()
    record3.commit()

    assert 'i' in record3['_oaisets']
    assert 'e' in record3['_oaisets']
    assert len(record3['_oaisets']) == 2

    # test update name
    c.name = "new-c"
    db.session.add(c)
    db.session.commit()
    record0.commit()

    assert 'new-c' in record0['_oaisets']
    assert len(record0['_oaisets']) == 1