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()
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()
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