anki-sync-server/tests/test_sync_app.py

76 lines
2.7 KiB
Python
Raw Normal View History

# -*- 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()
2022-10-15 03:07:21 +08:00
self.session.name = "test"
self.syncCollectionHandler = SyncCollectionHandler(
2022-10-15 03:07:21 +08:00
self.collection, self.session
)
def tearDown(self):
CollectionTestBase.tearDown(self)
self.syncCollectionHandler = None
def test_old_client(self):
old = (
2022-10-15 03:07:21 +08:00
",".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,
2022-10-15 03:07:21 +08:00
",".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:
2018-12-11 03:17:53 +08:00
if not SyncCollectionHandler._old_client(cv):
2022-10-15 03:07:21 +08:00
raise AssertionError('old_client("%s") is False' % cv)
for cv in current:
2018-12-11 03:17:53 +08:00
if SyncCollectionHandler._old_client(cv):
2022-10-15 03:07:21 +08:00
raise AssertionError('old_client("%s") is True' % cv)
def test_meta(self):
2018-12-11 03:17:53 +08:00
meta = self.syncCollectionHandler.meta(v=SYNC_VER)
2022-10-15 03:07:21 +08:00
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