76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
import sqlite3
|
|
import tempfile
|
|
import unittest
|
|
from unittest.mock import MagicMock, Mock
|
|
|
|
from ankisyncd.sync import SYNC_VER
|
|
from ankisyncd.sync_app import SyncCollectionHandler
|
|
from ankisyncd.sync_app import SyncUserSession
|
|
|
|
from collection_test_base import CollectionTestBase
|
|
|
|
|
|
class SyncCollectionHandlerTest(CollectionTestBase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.session = MagicMock()
|
|
self.session.name = "test"
|
|
self.syncCollectionHandler = SyncCollectionHandler(
|
|
self.collection, self.session
|
|
)
|
|
|
|
def tearDown(self):
|
|
CollectionTestBase.tearDown(self)
|
|
self.syncCollectionHandler = None
|
|
|
|
def test_old_client(self):
|
|
old = (
|
|
",".join(("ankidesktop", "2.0.12", "lin::")),
|
|
",".join(("ankidesktop", "2.0.26", "lin::")),
|
|
",".join(("ankidroid", "2.1", "")),
|
|
",".join(("ankidroid", "2.2", "")),
|
|
",".join(("ankidroid", "2.2.2", "")),
|
|
",".join(("ankidroid", "2.3alpha3", "")),
|
|
)
|
|
|
|
current = (
|
|
None,
|
|
",".join(("ankidesktop", "2.0.27", "lin::")),
|
|
",".join(("ankidesktop", "2.0.32", "lin::")),
|
|
",".join(("ankidesktop", "2.1.0", "lin::")),
|
|
",".join(("ankidesktop", "2.1.6-beta2", "lin::")),
|
|
",".join(("ankidesktop", "2.1.9 (dev)", "lin::")),
|
|
",".join(("ankidesktop", "2.1.26 (arch-linux-2.1.26-1)", "lin:arch:")),
|
|
",".join(("ankidroid", "2.2.3", "")),
|
|
",".join(("ankidroid", "2.3alpha4", "")),
|
|
",".join(("ankidroid", "2.3alpha5", "")),
|
|
",".join(("ankidroid", "2.3beta1", "")),
|
|
",".join(("ankidroid", "2.3", "")),
|
|
",".join(("ankidroid", "2.9", "")),
|
|
)
|
|
|
|
for cv in old:
|
|
if not SyncCollectionHandler._old_client(cv):
|
|
raise AssertionError('old_client("%s") is False' % cv)
|
|
|
|
for cv in current:
|
|
if SyncCollectionHandler._old_client(cv):
|
|
raise AssertionError('old_client("%s") is True' % cv)
|
|
|
|
def test_meta(self):
|
|
meta = self.syncCollectionHandler.meta(v=SYNC_VER)
|
|
self.assertEqual(meta["scm"], self.collection.scm)
|
|
self.assertTrue((type(meta["ts"]) == int) and meta["ts"] > 0)
|
|
self.assertEqual(meta["mod"], self.collection.mod)
|
|
self.assertEqual(meta["usn"], self.collection._usn)
|
|
self.assertEqual(meta["uname"], self.session.name)
|
|
self.assertEqual(meta["musn"], self.collection.media.lastUsn())
|
|
self.assertEqual(meta["msg"], "")
|
|
self.assertEqual(meta["cont"], True)
|
|
|
|
|
|
class SyncAppTest(unittest.TestCase):
|
|
pass
|