ME REMOVING EVERY MENTION OF SHA1 FROM AN OLD, SEMI COMPLEX CODEBASE: Haha fuck yeah!!! Yes!!
ME WATCHING LARGE SWATHES OF THE TEST SUITE FAIL, INCLUDING AREAS NOT DIRECTLY RELATED TO THE CHANGES: Well this fucking sucks. What the fuck.
ME REMOVING EVERY MENTION OF SHA1 FROM AN OLD, SEMI COMPLEX CODEBASE: Haha fuck yeah!!! Yes!!
ME WATCHING LARGE SWATHES OF THE TEST SUITE FAIL, INCLUDING AREAS NOT DIRECTLY RELATED TO THE CHANGES: Well this fucking sucks. What the fuck.
Bad: paramiko's GSS support is all SHA1-based and there are no SHA256-based classes (though I haven't yet searched the issue tracker to see if anybody airdropped some)
Good: me not removing SHA1 from GSS won't cause any issues even if somebody were to scan our tests for SHA1 usage!
Bad: …that's because our GSS tests have been broken for a few years now, so they aren't run in CI 😞
Good: GSS has always been a minority feature (eg it's not part of the default pip install) so I don't feel TOO bad about letting it moulder as very few users rely/ied upon it. Just…kinda bad…
Remove old, busted, rarely used, now-insecure feature. Feelsgoodman.jpeg.
Once again, random unrelated tests fail.
Why? Classic "falsely passing test" reason: an "if not <now-nuked feature is in play>: <do things>" block had been silently skipped over due to unittest.mock.Mock objects being truthy by default.
So some additional mocking required for these tests to truly work got deferred until just now 🫠
One guess as to who the culprit (of writing the tests and apparently not doing enough 'make it fail first' due diligence) is…
@ghickman I did in fact end up simply removing the mocks! 🎉
Granted, I got lucky that they were not truly necessary, this codebase is not what you would call "designed to be tested"...