예제 #1
0
def test_delete(db, capsys):
    import json
    from http.server import HTTPServer
    from xmldiff.main import diff_texts
    from dlx.marc import Bib

    server = HTTPServer(('127.0.0.1', 9090), None)
    responses.add(responses.POST, 'http://127.0.0.1:9090', body='test OK')
    dlx_dl.API_URL = 'http://127.0.0.1:9090'

    bib = Bib().set('245', 'a', 'Will self destruct')
    bib.commit()
    bib.delete()

    dlx_dl.run(connect=db,
               source='test',
               type='bib',
               modified_within=100,
               use_api=True,
               api_key='x')
    data = list(filter(None, capsys.readouterr().out.split('\n')))
    assert len(data) == 3
    assert json.loads(data[2])['record_id'] == 3


### end
예제 #2
0
def test_delete(db):
    from dlx import DB
    from dlx.marc import Bib
    from datetime import datetime
    
    bib = Bib().set('245', 'a', 'This record will self-destruct')
    bib.commit()    
    bib.delete()
    
    assert Bib.match_id(bib.id) == None
    
    history = DB.handle['bib_history'].find_one({'_id': bib.id})
    assert history['deleted']['user'] == 'admin'
    assert isinstance(history['deleted']['time'], datetime)
예제 #3
0
def test_commit(db, bibs, auths):
    from dlx import DB
    from dlx.marc import Bib, Auth
    from datetime import datetime
    from bson import ObjectId
    from jsonschema.exceptions import ValidationError
    
    with pytest.raises(Exception):
        Bib({'_id': 'I am invalid'}).commit()
    
    for bib in [Bib(x) for x in bibs]:
        assert bib.commit().acknowledged
        
    for auth in [Auth(x) for x in auths]:
        assert auth.commit().acknowledged
        
    bib = Bib({'_id': 3})
    assert bib.commit().acknowledged
    assert isinstance(bib.updated, datetime)
    assert bib.user == 'admin'
    assert bib.history()[0].to_dict() == bib.to_dict()
    assert bib.history()[0].user == 'admin'
    assert Bib.max_id() == 3
    
    Bib().commit()
    Bib().commit()
    assert Bib.max_id() == 5