8f1a2cc5fd
Previously, tests were run against Anki launched by user. Now, * most tests run against isolated Anki in current process; * tests in `test_server.py` launch another Anki in a separate process and run a few commands to test the server; * nearly all tests were preserved in the sense that what was being tested is tested still. A few tests in `test_graphical.py` are skipped due to a problem with the method tests, see the comments; * tests can be run: * In a single profile, using --no-tear-down-profile-after-each-test; * In a single app instance, but with the profile being torn down after each test--default; * In separate processes, using --forked.
51 lines
1.7 KiB
Python
Executable File
51 lines
1.7 KiB
Python
Executable File
import aqt
|
|
|
|
from conftest import ac, anki_connect_config_loaded, \
|
|
set_up_test_deck_and_test_model_and_two_notes, \
|
|
current_decks_and_models_etc_preserved, wait
|
|
|
|
|
|
# version is retrieved from config
|
|
def test_version(session_with_profile_loaded):
|
|
with anki_connect_config_loaded(
|
|
session=session_with_profile_loaded,
|
|
web_bind_port=0,
|
|
):
|
|
assert ac.version() == 6
|
|
|
|
|
|
def test_reloadCollection(setup):
|
|
ac.reloadCollection()
|
|
|
|
|
|
class TestProfiles:
|
|
def test_getProfiles(self, session_with_profile_loaded):
|
|
result = ac.getProfiles()
|
|
assert result == ["User 1"]
|
|
|
|
# waiting a little while gets rid of the cryptic warning:
|
|
# Qt warning: QXcbConnection: XCB error: 8 (BadMatch), sequence: 658,
|
|
# resource id: 2097216, major code: 42 (SetInputFocus), minor code: 0
|
|
def test_loadProfile(self, session_with_profile_loaded):
|
|
aqt.mw.unloadProfileAndShowProfileManager()
|
|
wait(0.1)
|
|
ac.loadProfile(name="User 1")
|
|
|
|
|
|
class TestExportImport:
|
|
def test_exportPackage(self, session_with_profile_loaded, setup):
|
|
filename = session_with_profile_loaded.base + "/export.apkg"
|
|
ac.exportPackage(deck="test_deck", path=filename)
|
|
|
|
def test_importPackage(self, session_with_profile_loaded):
|
|
filename = session_with_profile_loaded.base + "/export.apkg"
|
|
|
|
with current_decks_and_models_etc_preserved():
|
|
set_up_test_deck_and_test_model_and_two_notes()
|
|
ac.exportPackage(deck="test_deck", path=filename)
|
|
|
|
with current_decks_and_models_etc_preserved():
|
|
assert "test_deck" not in ac.deckNames()
|
|
ac.importPackage(path=filename)
|
|
assert "test_deck" in ac.deckNames()
|