I'm reminding myself what I want for the hash tests.
- Hash requirement plus constraint to matching URL succeeds
- Hash requirement plus constraint to differing URL fails
- Hash requirement in dependency plus matching URL constraint succeeds
- Hash requirement in dependency plus differing URL fails
- Two versions of dependent, with dependencies on different hashes, always select the version compatible with the URL constraint. In particular, if the constraint matches the hash requested by the lesser version of the dependent, those versions are what get installed.
Probably want to try these with extra hashes or overlapping sets to look for something really tricky.
I'll try to get on that tomorrow. I've decided to try to be okay with taking things a little at a time.
Oof, I just realized that I hadn't twigged that hashes are supported in constraints. That's going to mildly increase the number of test cases, but it should be fine.