summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/docs/server2/mock_function_test.py
blob: a2864ff7487629ce77c5b707f7775e191662208d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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()