def test_process_view_skips_exempt(self):
        anything = lambda *a: a
        anything.mithril_exempt = True
        mw = WhitelistMiddleware()

        self.assertEqual(
            mw.process_view(None, anything, None, None),
            None
        )
    def test_process_view_delegates_to_strategy(self):
        strategy = FakeStrategy()
        expected = random.randint(0, 10)

        def collect(*a, **kw):
            strategy.args = a
            strategy.kwargs = kw
            return expected

        strategy.process_view = collect

        mw = WhitelistMiddleware()
        mw.get_strategy = lambda *a: strategy

        result = mw.process_view(expected, expected, [], {})

        self.assertEqual(result, expected)
        self.assertEqual(strategy.args, (expected, expected))
        self.assertEqual(strategy.kwargs, {})