* We do need to specify `wheel` version.
* We need to specify `webtest`, as at least one test uses it.
* Bumped the version of some modules as per `safety` report.
* The "testing" `eddn_message_from_file()` got renamed to, and replaced,
`eddn_message()`.
* All of the tests were updated to use this new form of the fixture.
* Next commit will add the directory containing those test files.
* Implement a new fixture `eddn_message_from_file()` for testing this.
Eventually this will get renamed to `eddn_message()`.
* Files containing one message each go under `tests/eddn_message`, with
sub-directories for `<schema>/<version>[/<event>]` and then the filename
is the nature of that file in that context.
Completely invalid files, i.e. not even valid JSON, can be placed in
the top level of `tests/eddn_message`.
* Use this for the `parse_and_error_handle()` "valid journal/1 scan" test.
Because the code itself only runs properly from inside the `src/` directory,
you cannot run `pytest` from the root directory and have the tests work.
So, set things up such that running `pytest` in the root directory will
only run the one test, and have that test point out the user error.
Unfortunately the `eddn_gateway()` fixture needs to be `module` scope, and
that means you can't use it with anything that uses a fixture that utilises
`monkeypatch`, because that's `function` scope.
So, back to directly appending to `sys.path`.
* Define our own TRACE logging level ('deeper' than DEBUG).
* Define `.trace()` method to use it.
* `logger.trace(...)` for duplicate or 'sent to Listeners' messages.
NB: mypy is still unhappy about Logger.trace, despite attempting the same
workaround asin EDMC. Hence the ` # type: ignore` on uses.
* `eddn_message()` fixture, set up to return a method when used, such that
*that* can be called with a key to look up the approproiate test message.
* `test_messages` dictionary to support that.
This is Athanasius feeling out how best to add tests to this ancient code.
* Test that eddn.Gateway.parse_and_error_handle() returns the correct error
string for:
- Invalid JSON being passed in.
- An outdated schema being cited.