Completely test the OAuth module and streams/core.py file.
Add pytest-mock as well as a convenience wrapper to run the type checker and the test together when developing.
Also configure pytest to pick up loggers at the INFO level and above, and pick up standard out for easier debugging.
Some of the script bits are unpolished - will improve them as we go along.
closes#2722
I don't love the current structure. There is a number of improvements that can be made:
JsonSchemaResolver can be refactored to have the following signature:
def __init__(schemas: Mapping[str, any], refs: Mapping[str, any])
# schemas are all json files in `schemas/`, refs are all json files in `schemas/shared/`
Then we can thoroughly test the resolving behavior in JsonSchemaResolver independently from the logic for where we actually load schemas from.
I was tempted to make this refactor now but I'd rather cover more ground with tests then revisit. I created an issue to track this: #3222