10f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#!/usr/bin/env python 20f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 30f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 40f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# found in the LICENSE file. 50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 60f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)import unittest 70f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 80f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)from mock_function import MockFunction 90f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 100f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 110f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)class MockFunctionUnittest(unittest.TestCase): 120f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) def testMockFunction(self): 130f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) @MockFunction 140f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) def calc(a, b, mult=1): 150f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) return (a + b) * mult 160f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 170f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertTrue(*calc.CheckAndReset(0)) 180f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual( 190f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) (False, 'calc: expected 1 call(s), got 0'), calc.CheckAndReset(1)) 200f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 210f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(20, calc(2, 3, mult=4)) 220f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertTrue(*calc.CheckAndReset(1)) 230f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertTrue(*calc.CheckAndReset(0)) 240f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 250f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(20, calc(2, 3, mult=4)) 260f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual( 270f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) (False, 'calc: expected 0 call(s), got 1'), calc.CheckAndReset(0)) 280f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 290f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(3, calc(1, 2)) 300f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(0, calc(3, 4, mult=0)) 310f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertTrue(*calc.CheckAndReset(2)) 320f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertTrue(*calc.CheckAndReset(0)) 330f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 340f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(3, calc(1, 2)) 350f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual(0, calc(3, 4, mult=0)) 360f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) self.assertEqual( 370f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) (False, 'calc: expected 3 call(s), got 2'), calc.CheckAndReset(3)) 380f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 390f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 400f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)if __name__ == '__main__': 410f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) unittest.main() 42