actually, the more I think about it the more this is kind of awful. We have a common 'assertions' function but it changes based on the results of the calls? If I go look at a test to see why it's failing there's so many moving parts it'll be really hard to tell what's supposed to happen vs what did.