示例#1
0
def update_expired_embargos():
    """Release expired embargoes every midnight."""
    record_ids = AccessRight.get_expired_embargos()
    for record in Record.get_records(record_ids):
        record['access_right'] = AccessRight.OPEN
        record.commit()
    db.session.commit()

    indexer = RecordIndexer()
    indexer.bulk_index(record_ids)
    indexer.process_bulk_queue()
示例#2
0
def update_expired_embargos():
    """Release expired embargoes every midnight."""
    record_ids = AccessRight.get_expired_embargos()
    for record in Record.get_records(record_ids):
        record['access_right'] = AccessRight.OPEN
        record.commit()
    db.session.commit()

    indexer = RecordIndexer()
    indexer.bulk_index(record_ids)
    indexer.process_bulk_queue()
示例#3
0
def test_get_expired_embargos(app):
    """Test get expired records."""
    c = MagicMock()
    id1 = str(uuid.uuid4())
    id2 = str(uuid.uuid4())
    with patch('zenodo.modules.records.models.current_search_client', c):
        c.search.return_value = dict(
            hits=dict(hits=[
                {'_id': id1},
                {'_id': id2},
            ])
        )
        assert c.search.called_with(index='records')
        assert AccessRight.get_expired_embargos() == [id1, id2]
def test_update_embargoed_records(app, db, es):
    """Test update embargoed records."""
    records = [
        Record.create({
            'title': 'yesterday',
            'access_right': 'embargoed',
            'embargo_date': _today_offset(-1)
        }),
        Record.create({
            'title': 'today',
            'access_right': 'embargoed',
            'embargo_date': _today_offset(0)
        }),
        Record.create({
            'title': 'tomorrow',
            'access_right': 'embargoed',
            'embargo_date': _today_offset(1)
        }),
        Record.create({
            'title': 'already open',
            'access_right': 'open',
            'embargo_date': _today_offset(-1)
        })
    ]
    db.session.commit()
    for r in records:
        RecordIndexer().index(r)

    current_search.flush_and_refresh('records-record-v1.0.0')

    res = AccessRight.get_expired_embargos()
    assert len(res) == 2
    assert str(records[0].id) in res
    assert str(records[1].id) in res

    update_expired_embargos()

    assert Record.get_record(records[0].id)['access_right'] == AccessRight.OPEN
    assert Record.get_record(records[1].id)['access_right'] == AccessRight.OPEN