def test_stop_next_middleware_execute(self): mid_1_class, mid_1 = build_middleware(True) mid_2_class, mid_2 = build_middleware() middleware.execute([mid_1_class, mid_2_class], None) mid_1_class.assert_called_once_with(None, {}, {}) self.assertFalse(mid_2_class.called) mid_1.set_up.assert_called_once_with() self.assertFalse(mid_2.set_up.called) mid_1.tear_down.assert_called_once_with() self.assertFalse(mid_2.tear_down.called)
def test_successful_execute(self): mid_1_class, mid_1 = build_middleware() mid_2_class, mid_2 = build_middleware() middleware.execute([mid_1_class, mid_2_class], None) mid_1_class.assert_called_once_with(None, {}, {}) mid_2_class.assert_called_once_with(None, {}, {}) mid_1.set_up.assert_called_once_with() mid_2.set_up.assert_called_once_with() mid_1.tear_down.assert_called_once_with() mid_2.tear_down.assert_called_once_with()
def test_execute(self): mid_flags = [False, False] def middleware_1(next_process, handler, dependencies, **kwargs): mid_flags[0] = True dependencies['_foo'] = 'foo' next_process(dependencies, kwarg_1='bar1') def middleware_2(next_process, handler, dependencies, **kwargs): mid_flags[1] = True self.assertEqual('foo', dependencies['_foo']) self.assertDictEqual({'kwarg_1': 'bar1'}, kwargs) next_process(dependencies, **kwargs) middleware.execute([middleware_1, middleware_2], None) self.assertListEqual([True, True], mid_flags)
def test_middleware_with_error(self): mid_1_class, mid_1 = build_middleware() mid_2_class, mid_2 = build_middleware() mid_3_class, mid_3 = build_middleware() def f(): raise Exception() mid_2.set_up = f middleware.execute([mid_1_class, mid_2_class, mid_3_class], None) mid_1_class.assert_called_once_with(None, {}, {}) mid_2_class.assert_called_once_with(None, {}, {}) self.assertFalse(mid_3_class.called) mid_1.set_up.assert_called_once_with() self.assertFalse(mid_3.set_up.called) self.assertFalse(mid_1.tear_down.called) self.assertFalse(mid_2.tear_down.called) self.assertFalse(mid_3.tear_down.called) self.assertTrue(mid_1.handle_error.called) self.assertTrue(mid_2.handle_error.called)
def make_convention(self): middleware.execute(settings.MIDDLEWARE_LIST, self)
def make_convetion(self): middleware.execute(settings.MIDDLEWARES, self)