77 lines
2.7 KiB
Python
77 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
|