1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from telemetry import decorators
14 def GetCountCached(self, _):
16 _counter = _counter + 1
20 def CreateFooUncached(_):
25 def CreateFooCached(_):
29 class DecoratorsUnitTest(unittest.TestCase):
30 # pylint: disable=C0102
32 def testCacheDecorator(self):
33 self.assertNotEquals(CreateFooUncached(1), CreateFooUncached(2))
34 self.assertNotEquals(CreateFooCached(1), CreateFooCached(2))
36 self.assertNotEquals(CreateFooUncached(1), CreateFooUncached(1))
37 self.assertEquals(CreateFooCached(1), CreateFooCached(1))
39 def testCacheableMemberCachesOnlyForSameArgs(self):
41 value_of_one = foo.GetCountCached(1)
43 self.assertEquals(value_of_one, foo.GetCountCached(1))
44 self.assertNotEquals(value_of_one, foo.GetCountCached(2))
46 def testCacheableMemberHasSeparateCachesForSiblingInstances(self):
50 self.assertNotEquals(foo.GetCountCached(1), sibling_foo.GetCountCached(1))
52 def testCacheableMemberHasSeparateCachesForNextGenerationInstances(self):
54 last_generation_count = foo.GetCountCached(1)
58 self.assertNotEquals(last_generation_count, foo.GetCountCached(1))