IMO, if there's ever a piece of functionality that isn't working as expected and you want to patch it, then you should be providing a test that shows it failing and working after your fix.
If something isn't working as expected and there's no failing test then it means there's no coverage of that scenario and it should be added.
If there's a contributor that's added a patch but can't/won't/doesn't add a test, it's my opinion that a core team member (or another community member) with knowledge of the area of code in which there's a problem should write it for them.
It becomes tricky when there are parts of the system with out a single test (I found
this was the case for RequiredFields) and that means writing an entire set of tests and defining your own rules on how you think it should work. This can be a lot of work to cover a rather trivial bug, but is for the benefit of the framework. In this scenario, if the community member isn't willing to write the whole set of tests, then a core dev should be taking on that responsibility.
If there's a bug, there should be a test to ensure it never can regress after your fix.
Dan