Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: appengine/findit/crash/test/flag_manager_test.py

Issue 2593093003: [Predator] Add flag manager and flag manager test. (Closed)
Patch Set: Fix nits. Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2016 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.
4
5 from crash.flag_manager import ParsingFlag
6 from crash.flag_manager import FlagManager
7 from crash.test.stacktrace_test_suite import StacktraceTestSuite
8
9
10 class ParsingFlagTest(StacktraceTestSuite):
11
12 def setUp(self):
13 super(ParsingFlagTest, self).setUp()
14 self.flag = ParsingFlag('test_flag', lambda line: 'turn on flag' in line,
15 value=False)
16
17 def testParsingFlagNameProperty(self):
18 """Tests name property of ``ParsingFlag``"""
wrengr 2016/12/28 23:34:10 "name property" -> "the ``name`` property"
Sharu Jiang 2016/12/29 18:20:22 Done.
19 self.assertEqual(self.flag.name, 'test_flag')
20
21 def testParsingFlagValueProperty(self):
22 """Tests value property of ``ParsingFlag``"""
wrengr 2016/12/28 23:34:10 "value property" -> "the ``value`` property"
Sharu Jiang 2016/12/29 18:20:22 Done.
23 self.assertFalse(self.flag.value)
24 self.flag.On()
25 self.assertTrue(self.flag.value)
26 self.assertTrue(bool(self.flag))
27 self.flag.Off()
28 self.assertFalse(self.flag.value)
29 self.assertFalse(bool(self.flag))
30
31 def testConditionallyTurOn(self):
32 """Tests that ``ConditionallyTurnOn`` turns on flag if condiions met."""
wrengr 2016/12/28 23:34:10 "condiions" -> "conditions"
Sharu Jiang 2016/12/29 18:20:22 Done.
33 self.assertFalse(bool(self.flag))
34 self.flag.ConditionallyTurnOn('line: turn on flag')
35 self.assertTrue(bool(self.flag))
36
37
38 class FlagManagerTest(StacktraceTestSuite):
39
40 def setUp(self):
41 super(FlagManagerTest, self).setUp()
42 self.flag_manager = FlagManager()
43
44 def testClearFlags(self):
45 """Tests that ``ClearFlags`` deletes all flags."""
46 self.flag_manager.Register('test', ParsingFlag('test_flag', value=True))
47 self.assertEqual(len(self.flag_manager.flags), 1)
48 self.flag_manager.ClearFlags()
49 self.assertEqual(len(self.flag_manager.flags), 0)
50
51 def testRegister(self):
52 """Tests that ``Register`` add new flags with a certain group."""
53 self.flag_manager.Register('dummy', ParsingFlag('dummy_flag', value=True))
54 self.assertEqual(len(self.flag_manager.flag_groups['dummy']), 1)
55 self.assertEqual(len(self.flag_manager.flags), 1)
56
57 def testGetAllFlags(self):
58 """Tests that ``GetAllFlags`` returns all registered flags."""
59 flag1 = ParsingFlag('group_flag1', value=True)
60 flag2 = ParsingFlag('group_flag2', value=True)
61 self.flag_manager.Register('group1', flag1)
62 self.flag_manager.Register('group2', flag2)
63 self.assertListEqual(self.flag_manager.GetAllFlags(), [flag1, flag2])
64
65 def testGetGroupFlags(self):
66 """Tests that ``GetGroupFlags`` returns all flags with a certain group."""
67 flag1 = ParsingFlag('group_flag1', value=True)
68 flag2 = ParsingFlag('group_flag2', value=True)
69 self.flag_manager.Register('group1', flag1)
70 self.flag_manager.Register('group2', flag2)
71 self.assertListEqual(self.flag_manager.GetGroupFlags('group1'), [flag1])
72 self.assertListEqual(self.flag_manager.GetGroupFlags('group2'), [flag2])
73
74 def testResetAllFlags(self):
75 """Tests that ``ResetAllFlags`` turns off all the flags."""
76 self.flag_manager.Register('group', ParsingFlag('dummy_flag1', value=True))
77 self.flag_manager.Register('group', ParsingFlag('dummy_flag2', value=True))
78 self.flag_manager.ResetAllFlags()
79 for flag in self.flag_manager.GetAllFlags():
80 self.assertFalse(flag.value)
81
82 def testResetGroupFlags(self):
83 """Tests that ``ResetGroupFlags`` turns off flags with a certain group."""
84 self.flag_manager.Register('group1', ParsingFlag('dummy_flag1', value=True))
85 self.flag_manager.Register('group2', ParsingFlag('dummy_flag2', value=True))
86 self.flag_manager.ResetGroupFlags('group1')
87 self.assertFalse(self.flag_manager.Get('dummy_flag1'))
88 self.assertTrue(self.flag_manager.Get('dummy_flag2'))
89
90 def testConditionallyTurOnFlags(self):
wrengr 2016/12/28 23:34:10 "...TurOn..." -> "...TurnOn..."
Sharu Jiang 2016/12/29 18:20:22 Done.
91 """Tests turning on flags if their conditions met."""
92 self.flag_manager.Register(
93 'group',
94 ParsingFlag('flag1', condition=lambda line: 'flag1 marker' in line,
95 value=False))
96 self.flag_manager.Register(
97 'group',
98 ParsingFlag('flag2', condition=lambda line: 'flag2 marker' in line,
99 value=False))
100 line = 'line: flag1 marker flag2 marker'
101 self.flag_manager.ConditionallyTurnOnFlags(line)
102 self.assertTrue(bool(self.flag_manager.Get('flag1')))
103 self.assertTrue(bool(self.flag_manager.Get('flag2')))
104
105 def testDoNothingWhenConditionsNotMet(self):
106 """Tests doing nothing if flag's condition is not met."""
107 self.flag_manager.Register(
108 'group',
109 ParsingFlag('flag', condition=lambda line: 'flag marker' in line,
110 value=False))
111 line = 'dummy line'
112 self.flag_manager.ConditionallyTurnOnFlags(line)
113 self.assertFalse(bool(self.flag_manager.Get('flag')))
114
115 def testSettingFlag(self):
116 """Tests using ``TurnOn`` and ``TurnOff`` to set flags."""
117 self.flag_manager.Register('group', ParsingFlag('flag', value=False))
118 self.flag_manager.TurnOn('flag')
119 self.flag_manager.TurnOn('dummy_flag')
120 self.assertTrue(self.flag_manager.Get('flag'))
121 self.flag_manager.TurnOff('flag')
122 self.flag_manager.TurnOff('dummy_flag')
123 self.assertFalse(self.flag_manager.Get('flag'))
OLDNEW
« appengine/findit/crash/flag_manager.py ('K') | « appengine/findit/crash/flag_manager.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698