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

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, 11 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
« no previous file with comments | « appengine/findit/crash/flag_manager.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 the ``name`` property of ``ParsingFlag``"""
19 self.assertEqual(self.flag.name, 'test_flag')
20
21 def testParsingFlagValueProperty(self):
22 """Tests the ``value`` property of ``ParsingFlag``"""
23 self.assertFalse(self.flag.value)
24 self.flag.TurnOn()
25 self.assertTrue(self.flag.value)
26 self.assertTrue(bool(self.flag))
27 self.flag.TurnOff()
28 self.assertFalse(self.flag.value)
29 self.assertFalse(bool(self.flag))
30
31 def testConditionallyTurnOn(self):
32 """Tests that ``ConditionallyTurnOn`` turns on flag if conditions met."""
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 testConditionallyTurnOnFlags(self):
91 """Tests turning on flags if their conditions met."""
92 self.flag_manager.Register(
93 'group',
94 ParsingFlag('flag1',
95 turn_on_condition=lambda line: 'flag1 marker' in line,
96 value=False))
97 self.flag_manager.Register(
98 'group',
99 ParsingFlag('flag2',
100 turn_on_condition=lambda line: 'flag2 marker' in line,
101 value=False))
102 line = 'line: flag1 marker flag2 marker'
103 self.flag_manager.ConditionallyTurnOnFlags(line)
104 self.assertTrue(bool(self.flag_manager.Get('flag1')))
105 self.assertTrue(bool(self.flag_manager.Get('flag2')))
106
107 def testDoNothingWhenConditionsNotMet(self):
108 """Tests doing nothing if flag's condition is not met."""
109 self.flag_manager.Register(
110 'group',
111 ParsingFlag('flag',
112 turn_on_condition=lambda line: 'flag marker' in line,
113 value=False))
114 line = 'dummy line'
115 self.flag_manager.ConditionallyTurnOnFlags(line)
116 self.assertFalse(bool(self.flag_manager.Get('flag')))
117
118 def testSettingFlag(self):
119 """Tests using ``TurnOn`` and ``TurnOff`` to set flags."""
120 self.flag_manager.Register('group', ParsingFlag('flag', value=False))
121 self.flag_manager.TurnOn('flag')
122 self.flag_manager.TurnOn('dummy_flag')
123 self.assertTrue(self.flag_manager.Get('flag'))
124 self.flag_manager.TurnOff('flag')
125 self.flag_manager.TurnOff('dummy_flag')
126 self.assertFalse(self.flag_manager.Get('flag'))
OLDNEW
« no previous file with comments | « appengine/findit/crash/flag_manager.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698