getNoteTags returns [str ...] of tags for a given note (note: int)
updateNoteTags removes the existing tags and sets new tags
updateNote combines the old updateNoteFields and the new updateNoteTags
Closes#369
* Import things from `aqt.qt` not `PyQt5`/`PyQt6`
* When testing with Qt6, disable Anki's Qt5 compatibility mode
* Depend on `pytest-anki` that is also Qt version agnostic
Waitress is a WSGI server that Anki starts to serve css etc to
its web views. It seems to have a race condition issue;
the main loop thread is trying to `select.select` the sockets
which a worker thread is closing because of a dead connection.
This makes waitress skip actually closing the sockets.
Before, pressing the Browse button would only show browser
with the cards or notes corresponding to the currently edited note.
Now, it shows all cards or notes from the dialog history,
in reverse order (last seen on top),
with the currently edited note or its cards selected.
It turns out that `pytest-anki` does what we are trying to do already.
Note that `empty_anki_session_started` creates a temporary user too.
We are “overwriting“ it in `profile_created_and_loaded`
by calling `temporary_user`. It seems that doing this is safe.
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.
* Added guiCheckDatabase action
This action initiates a check database action in Anki but doesn’t wait for the action to complete before returning.
* Fixed#202 no dconf attribute in saveDeckConfig
Anki manages access to deck configuration differently now. This adapts saveDeckConfig to new style of access.
* Fix error message in updateNoteFields method
* Fix error handling in cardsInfo, notesInfo methods
* Add more tests for updateNoteFields, notesInfo
* Fix error handling in several methods
Also fixed obvious bugs in replaceTags and replaceTagsInAllNotes
methods.
* Add more tests for cards methods
* Add more tests for notes methods
* Update documentation on cards methods
* added findAndReplaceInModels api call
* added documentation for findAndReplaceInModels
* added findAndReplaceInModels api call
* updatd findAndReplaceInModels function
* added unit test for findAndReplaceInModels in models
* updated findAndReplaceInModels
* added unit test for findAndReplaceInModels
* removed 'all_models' in findAndReplaceInModels