| #!/usr/bin/env python |
| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from mock_function import MockFunction |
| |
| |
| class MockFunctionUnittest(unittest.TestCase): |
| def testMockFunction(self): |
| @MockFunction |
| def calc(a, b, mult=1): |
| return (a + b) * mult |
| |
| self.assertTrue(*calc.CheckAndReset(0)) |
| self.assertEqual( |
| (False, 'calc: expected 1 call(s), got 0'), calc.CheckAndReset(1)) |
| |
| self.assertEqual(20, calc(2, 3, mult=4)) |
| self.assertTrue(*calc.CheckAndReset(1)) |
| self.assertTrue(*calc.CheckAndReset(0)) |
| |
| self.assertEqual(20, calc(2, 3, mult=4)) |
| self.assertEqual( |
| (False, 'calc: expected 0 call(s), got 1'), calc.CheckAndReset(0)) |
| |
| self.assertEqual(3, calc(1, 2)) |
| self.assertEqual(0, calc(3, 4, mult=0)) |
| self.assertTrue(*calc.CheckAndReset(2)) |
| self.assertTrue(*calc.CheckAndReset(0)) |
| |
| self.assertEqual(3, calc(1, 2)) |
| self.assertEqual(0, calc(3, 4, mult=0)) |
| self.assertEqual( |
| (False, 'calc: expected 3 call(s), got 2'), calc.CheckAndReset(3)) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |