diff --git a/anki/media.py b/anki/media.py index be1cf1b9d..0f25108c0 100644 --- a/anki/media.py +++ b/anki/media.py @@ -301,7 +301,7 @@ create table log (fname text primary key, type int); else: data = z.read(i) csum = checksum(data) - name = meta[i.filename]['name'] + name = meta[i.filename] # malicious chars? for c in '/\\': assert c not in name diff --git a/tests/test_sync.py b/tests/test_sync.py index 4f9e03baa..429dde2a8 100644 --- a/tests/test_sync.py +++ b/tests/test_sync.py @@ -372,3 +372,12 @@ def test_media(): client.sync() assert len(os.listdir(deck1.media.dir())) == 2 assert server.mediatest("count") == 2 + # if we lose our media db, we should be able to bring it back in sync + time.sleep(1) + deck1.media.close() + os.unlink(deck1.media.dir()+".db") + deck1.media.connect() + assert len(deck1.media.added().fetchall()) == 2 + client.sync() + assert len(os.listdir(deck1.media.dir())) == 2 + assert server.mediatest("count") == 2