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