Both jobs were continue-on-error: true at the job level, so a failing
pytest run reported success. They are the only two jobs in the workflow
tree that do this.
Verified green before removing the flag: the last 30 completed runs of
each workflow on master (90 matrix jobs each, ubuntu/windows/macos) have
zero failing steps.
Also sets fail-fast: false so one OS failing no longer cancels the other
two matrix legs' results.
* Run unit tests on Windows as well.
* Test on mac.
* Continue running on error.
* Compared normalized paths to work cross platform.
* Only test common set of mimetypes across operating systems.