def test_filter_chain_aborts_on_None_result(self): mock = unittest.mock.Mock() mock.func2.return_value = None self.f.register(mock.func1, 0) self.f.register(mock.func2, 0) self.f.register(mock.func3, 0) result = self.f.filter( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ) calls = list(mock.mock_calls) self.assertIsNone(result) self.assertSequenceEqual([ unittest.mock.call.func1( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), unittest.mock.call.func2( mock.func1(), unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), ], calls)
def test_filter_chain(self): mock = unittest.mock.Mock() self.f.register(mock.func1, 0) self.f.register(mock.func2, 0) result = self.f.filter( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ) calls = list(mock.mock_calls) self.assertEqual(mock.func2(), result) self.assertSequenceEqual([ unittest.mock.call.func1( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), unittest.mock.call.func2( mock.func1(), unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), ], calls)
def test_register_with_order(self): mock = unittest.mock.Mock() self.f.register(mock.func1, 1) self.f.register(mock.func2, 0) self.f.register(mock.func3, -1) result = self.f.filter(mock.stanza) calls = list(mock.mock_calls) self.assertEqual(mock.func1(), result) self.assertSequenceEqual([ unittest.mock.call.func3(mock.stanza), unittest.mock.call.func2(mock.func3()), unittest.mock.call.func1(mock.func2()), ], calls)
def test_register_with_order(self): mock = unittest.mock.Mock() self.f.register(mock.func1, 1) self.f.register(mock.func2, 0) self.f.register(mock.func3, -1) result = self.f.filter(mock.stanza) calls = list(mock.mock_calls) self.assertEqual( mock.func1(), result ) self.assertSequenceEqual( [ unittest.mock.call.func3(mock.stanza), unittest.mock.call.func2(mock.func3()), unittest.mock.call.func1(mock.func2()), ], calls )
def test_filter_chain_aborts_on_None_result(self): mock = unittest.mock.Mock() mock.func2.return_value = None self.f.register(mock.func1, 0) self.f.register(mock.func2, 0) self.f.register(mock.func3, 0) result = self.f.filter( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ) calls = list(mock.mock_calls) self.assertIsNone(result) self.assertSequenceEqual( [ unittest.mock.call.func1( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), unittest.mock.call.func2( mock.func1(), unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), ], calls )
def test_filter_chain(self): mock = unittest.mock.Mock() self.f.register(mock.func1, 0) self.f.register(mock.func2, 0) result = self.f.filter( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ) calls = list(mock.mock_calls) self.assertEqual( mock.func2(), result ) self.assertSequenceEqual( [ unittest.mock.call.func1( mock.stanza, unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), unittest.mock.call.func2( mock.func1(), unittest.mock.sentinel.foo, unittest.mock.sentinel.bar, fnord=unittest.mock.sentinel.fnord, ), ], calls )