All right, next tests to write: hash checking, and then wheel compatibility tags.
Tonight, I'm just going to figure out what's required for these tests.
So, the hash tests consist of the interactions between an explicit requirement that includes a hash specification, and a constraint that points to a URL. The candidate from the URL should be checked against the hash list.
The compatibility tags tests... I'm not sure. It looks like the desired behavior (fail if wheel is incompatible with system) should just happen if everything is wired up properly, but I'm not sure how to test it. I might just be failing to see tests around that area.
Anyway, once the small tests are out of the way, I think it would be good to have a "lifecycle" kind of test that explicitly runs through one of the use cases for the URL constraints feature:
- Starting from a requirements file, set up a consistent environment
- Write the output of pip freeze to a constraint file
- Pare down the requirements file, and install in a fresh environment (or first uninstall everything) using the new requirements file constrained against the pip freeze output.
My plan is to spec these out in more detail, write the tests, then remove the xfail marks to make sure the tests are all failing for the right reasons. For now, I'm going to wrap up.