I more-or-less took today off so far as working on pip goes, but what I mostly did would require a really extensive explanation, so I'm going to do like ten minutes of work now and write up that instead.
Looks like the "functional" test directory is a good place to start, since it has two files that mention the new resolver, and constraints. One of them is specifically for tests involving hashes, which is something I forgot about when I was writing up tests yesterday.
The basic test cases I think I need to cover are:
- URL in constraints, hash in requirements
- URL and hash in constraints (I think hashes in constraints are supported)
In both cases, resolution should succeed (absent other conflicts) if the hash matches the URL payload (I think that's the proper interpretation), and always fail if they don't match and the package is required. I think the behavior should basically match what happens if it's all in requirements, so that's a good reference point.
Anyway, that's some good stuff to have in mind when I get my focus back.