diff --git a/dlx_dl/scripts/sync/__init__.py b/dlx_dl/scripts/sync/__init__.py index 78ca0a3..3c63d79 100644 --- a/dlx_dl/scripts/sync/__init__.py +++ b/dlx_dl/scripts/sync/__init__.py @@ -204,6 +204,9 @@ def run(**kwargs): Auth.build_cache() for i, record in enumerate(records.records): + if record.user is None: + record.user = 'system' + if record.user[:10] == 'batch_edit': # skip syncing batch edited records for now so as not to overwhelm DL queue continue diff --git a/tests/test_dlx_dl.py b/tests/test_dlx_dl.py index 588f2e5..8ae67f3 100644 --- a/tests/test_dlx_dl.py +++ b/tests/test_dlx_dl.py @@ -225,6 +225,7 @@ def test_561(db, tmp_path): def test_sync(db, capsys, mock_get_post): # todo: expand this test from http.server import HTTPServer + from dlx import DB from dlx.marc import Bib bib = Bib().set('245', 'a', 'Will self destruct') @@ -234,5 +235,19 @@ def test_sync(db, capsys, mock_get_post): sync.run(connect=db, source='test', type='bib', modified_within=100, force=True) data = list(filter(None, capsys.readouterr().out.split('\n'))) assert data - + + # skip special user + bib = Bib().set('245', 'a', 'Moar testing') + bib.commit(user='batch_edit_x') + sync.run(connect=db, source='test', type='bib', id=bib.id, force=True) + data = list(filter(None, capsys.readouterr().out.split('\n'))) + assert 'Updated 0 records' in data + + # no user + bib = Bib().set('245', 'a', 'Moar testing') + bib.commit(user='') + sync.run(connect=db, source='test', type='bib', id=bib.id, force=True) + data = list(filter(None, capsys.readouterr().out.split('\n'))) + assert DB.handle['dlx_dl_log'].find_one({'record_id': bib.id}) + ### end \ No newline at end of file