Commit Graph

287 Commits

Author SHA1 Message Date
flan
55bdbfacaa Remove unused lines 2017-10-30 19:56:17 +01:00
flan
39f3ee110d Make test file names follow a single convention
Makes it possible to run all tests by executing
`python -m unittest discover ./tests`.
2017-10-30 19:28:56 +01:00
flan
765cce3d74 Move hostKey handling to a separate function 2017-10-30 19:23:32 +01:00
flan
ce6433b9ba Add functional tests for authentication 2017-10-30 19:19:04 +01:00
flan
3792c89ecb Fix authentication
c7d7ff3e85 broke it
2017-10-29 19:36:51 +01:00
flan
3f3e2f4df4 Fix inconsistent indentation of README code blocks 2017-10-29 04:29:44 +01:00
flan
bf1bf4de72 Add some context from upstream README 2017-10-29 04:21:22 +01:00
flan
6154cfde62 Don't leave an empty directory in cwd after running tests 2017-10-28 23:40:42 +02:00
flan
e464592a57 Add gitignore 2017-10-28 23:18:18 +02:00
Christoph Mack
c805468449 Refactor ankiserverctl.py to delegate database operations to SqliteUserManager and use python3 compatible print calls. 2017-10-28 23:13:46 +02:00
Christoph Mack
c7d7ff3e85 Merge SyncApp's SqliteUserManager and the newly introduced UserManager and group all user managers in user_managers.py. 2017-10-28 22:45:27 +02:00
Christoph Mack
573aeece81 Add more test helpers and integration tests for SyncApp's media sync feature using WebTest's TestApp.
Add test helpers for creating, inspecting and manipulating instances of SyncApp and RestApp.
Add subclasses of Anki's RemoteServer and RemoteMediaServer for communicating with the wrapped SyncApp instance under test.
Add helpers for monkey patching Anki's MediaManager and DB for easier testing.
Add test assets directory.
2017-10-28 22:36:48 +02:00
Christoph Mack
cb574aa0a7 Add test helper classes for creating and managing temporary files, working with anki collections and sqlite dbs. Add class for
managing users so users can be added programmatically without using ankiserverctl.
2017-10-28 21:55:19 +02:00
Christoph Mack
28e950c138 Added unit tests for SimpleUserManager, SqliteUserManagerTest, SimpleSessionManager and SqliteSessionManagerTest. 2017-10-28 21:20:47 +02:00
Christoph Mack
6e881bfb85 Added unit test for SyncCollectionHandler. Moved CollectionTestBase to a separate file. 2017-10-28 21:19:50 +02:00
flan
99adc658d5 Remove support for legacy modules 2017-10-28 20:43:24 +02:00
flan
86b63d51b5 Remove superfluous/outdated instructions 2017-10-28 20:40:32 +02:00
Christoph Mack
2cb5871ba3 Safer handling of uploaded database files during full sync.
Before overwriting its version of a user's collection database file with one uploaded by the client, the server now performs a basic integrity check using SQLite's 'pragma integrity_check'.
2017-10-28 20:02:59 +02:00
Christoph Mack
f3788fc2c8 fix syntax error causing failure in error handler in SyncMediaHandler._remove_media_files() 2017-10-28 19:58:34 +02:00
flan
67830218eb Drop support for Anki <2.0.27 2017-10-28 19:55:50 +02:00
flan
b0cb424770 Use os.path.join() for path concatenation 2017-10-28 19:55:50 +02:00
flan
ceb931519d Bring back authentication 2017-10-28 19:55:40 +02:00
flan
48cfa9a029 Remove unused lines 2017-10-28 18:25:23 +02:00
flan
4a9ee4d40c Rewrite command handling 2017-10-28 17:54:58 +02:00
flan
91b5a6e052 Remove redundant messages 2017-10-28 17:50:43 +02:00
flan
098c9dff4a Use user-prefixed data directory by default 2017-10-28 17:35:38 +02:00
flan
16d8bd9b78 Drop service management from ankisyncctl 2017-10-28 17:04:24 +02:00
flan
bd2c5bdff9 Remove SSL support
If there's a need for SSL, you can always use a reverse proxy or
a more advanced WSGI server.

This reverts commit 1678890d3d.
2017-10-28 05:50:18 +02:00
jdoe0
c398ccdb89 Apply @ndl's patches
The patches fix the issue where syncing across different profiles will
always trigger a full sync if there's any change in either of the
profiles.
2016-11-03 22:32:19 +07:00
jdoe0
1678890d3d Add SSL support 2016-06-25 23:59:59 +07:00
jdoe0
e093e3981e Update README.md 2016-04-05 23:30:30 +07:00
Christoph Mack
e32bceccf3 Not only add, but also remove files when adopting changes to client media files in SyncMediaHandler.uploadChanges().
Count added and removed files as processed and increment media usn accodingly.
Refactor SyncMediaHandler.uploadChanges().
2016-04-05 23:24:12 +07:00
Christoph Mack
87ee726d25 Define skey once when creating user session, not each time when beginning media sync. 2016-04-05 23:24:00 +07:00
Christoph Mack
1b1a3d8e22 Define a random skey to return to the client when media syncing begins, so we don't send a null skey value. 2016-04-05 23:21:05 +07:00
Christoph Mack
f03aea67c1 SyncMediaHandler.begin(): return media database usn instead of collection database usn.
If the wrong usn is returned, media syncing on the client will not finish with status "noChanges" even if there have been no changes since the last media sync.
2016-01-24 01:54:35 +07:00
jdoe0
3baad9cfac Fix syncing with AnkiDroid 2015-11-29 11:53:58 +07:00
jdoe0
d3eab4266e Update addon code in README.md 2015-11-27 12:27:07 +07:00
jdoe0
dfe62472a1 Update config file
Add base_media_url.
2015-11-27 12:25:52 +07:00
jdoe0
ab40509cb2 Add missing function _execute_handler_method_in_thread() 2015-11-27 12:17:49 +07:00
jdoe0
8066fba1fe Update for Anki >= 2.0.27
This breaks compatibility with Anki < 2.0.27
2015-11-27 12:17:49 +07:00
jdoe0
40d515234e Update README.md 2014-07-22 20:29:02 +07:00
jdoe0
07ed4dfb75 ankisyncd.sh: Disable python version check 2014-01-18 01:40:43 +07:00
jdoe0
8c3a53c3f4 ankisyncd.sh: Look for 'python2' before checking the version of 'python' 2014-01-10 19:39:57 +07:00
David Snopek
0311e25574 Collection.media.illegal() was renamed to Collection.media.hasIllegal() in Anki 2.0.12. 2014-01-04 21:09:56 +07:00
David Snopek
f210f728ea Updated the bundled Anki 2.0.20 and made some fixes for that version. Fixes #9.
Conflicts:
	AnkiServer/importer.py
	anki-bundled
	tests/test_importer.py
2014-01-04 21:09:23 +07:00
jdoe0
525652dad0 Renamed config file to ankisyncd.conf 2014-01-04 20:06:14 +07:00
jdoe0
bce42dd297 ankisyncd.sh: Check python version and look for python2 if it's not the default
python
2014-01-04 19:58:44 +07:00
jdoe0
29e8f8177e ankisyncd.sh: Use '/usr/bin/env bash' in shebang for better portability 2014-01-04 19:34:58 +07:00
jdoe0
42f91cce80 thread.py: Remove unused imports 2014-01-04 19:31:29 +07:00
jdoe0
8733e5c22a Update README.md 2013-12-22 22:01:44 -06:00