send 'continue' for multiple zips; test splitting

This commit is contained in:
Damien Elmes 2011-10-06 13:51:44 +09:00
parent 8c1f397459
commit b4fdf1c690
2 changed files with 12 additions and 3 deletions

View file

@ -547,7 +547,7 @@ class MediaSyncer(object):
while 1:
runHook("mediaSync", "stream")
zip = self.server.files()
if self.addFiles(zip=zip):
if self.addFiles(zip=zip) != "continue":
break
# step 3: stream files to the server
runHook("mediaSync", "client")
@ -555,7 +555,7 @@ class MediaSyncer(object):
runHook("mediaSync", "stream")
zip = self.files()
usn = self.server.addFiles(zip=zip)
if usn:
if usn != "continue":
# when server has run out of files, it returns bumped usn
break
self.deck.media.setUsn(usn)

View file

@ -358,8 +358,17 @@ def test_media():
assert server.mediatest("count") == 0
# we should be able to add it again
time.sleep(1)
p = os.path.join(deck1.media.dir(), "foo.jpg")
open(p, "wb").write("foo")
client.sync()
assert len(os.listdir(deck1.media.dir())) == 1
assert server.mediatest("count") == 1
# if we modify it, it should get sent too. also we set the zip size very
# low here, so that we can test splitting into multiple zips
import anki.media; anki.media.SYNC_ZIP_SIZE = 1
time.sleep(1)
open(p, "wb").write("bar")
open(p+"2", "wb").write("baz")
assert len(os.listdir(deck1.media.dir())) == 2
client.sync()
assert len(os.listdir(deck1.media.dir())) == 2
assert server.mediatest("count") == 2