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

Unified Diff: tools/telemetry/telemetry/user_story/user_story_filter_unittest.py

Issue 994683003: Rename page filter options to story options. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename filter options in benchmarks. Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/telemetry/telemetry/user_story/user_story_filter.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/user_story/user_story_filter_unittest.py
diff --git a/tools/telemetry/telemetry/user_story/user_story_filter_unittest.py b/tools/telemetry/telemetry/user_story/user_story_filter_unittest.py
index 8445e70dcc5a06cad7731f477a8f0e0e3fc44290..58386a7ea2cf8cad2500ce6fa65aef7dfb299287 100644
--- a/tools/telemetry/telemetry/user_story/user_story_filter_unittest.py
+++ b/tools/telemetry/telemetry/user_story/user_story_filter_unittest.py
@@ -4,92 +4,91 @@
import unittest
-from telemetry.user_story import user_story_filter
from telemetry.page import page
from telemetry.page import page_set
-
-
-class MockUrlFilterOptions(object):
- def __init__(self, page_filter_include, page_filter_exclude):
- self.page_filter = page_filter_include
- self.page_filter_exclude = page_filter_exclude
- self.page_label_filter = None
- self.page_label_filter_exclude = None
-
-
-class MockLabelFilterOptions(object):
- def __init__(self, page_label_filter, page_label_filter_exclude):
- self.page_filter = None
- self.page_filter_exclude = None
- self.page_label_filter = page_label_filter
- self.page_label_filter_exclude = page_label_filter_exclude
+from telemetry.user_story import user_story_filter
class UserStoryFilterTest(unittest.TestCase):
+
def setUp(self):
ps = page_set.PageSet()
self.p1 = page.Page(
- 'file://conformance/textures/tex-sub-image-2d.html', page_set=ps,
- name='WebglConformance.conformance_textures_tex_sub_image_2d',
- labels=['label1', 'label2'])
+ url='file://your/smile/widen.html', page_set=ps,
+ name='MayYour.smile_widen', labels=['label1', 'label2'])
self.p2 = page.Page(
- 'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
- name='OtherSuite.textures_tex_sub_image_3d',
- labels=['label1'])
+ url='file://share_a/smile/too.html', page_set=ps,
+ name='ShareA.smiles_too', labels=['label1'])
self.p3 = page.Page(
- 'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
+ url='file://share_a/smile/too.html', page_set=ps,
labels=['label2'])
+ self.pages = [self.p1, self.p2, self.p3]
+
+ @staticmethod
+ def ProcessCommandLineArgs(parser=None, **kwargs):
+ class Options(object):
+ def __init__(
+ self, story_filter=None, story_filter_exclude=None,
+ story_label_filter=None, story_label_filter_exclude=None):
+ self.story_filter = story_filter
+ self.story_filter_exclude = story_filter_exclude
+ self.story_label_filter = story_label_filter
+ self.story_label_filter_exclude = story_label_filter_exclude
+ user_story_filter.UserStoryFilter.ProcessCommandLineArgs(
+ parser, Options(**kwargs))
+
+ def PageSelections(self):
+ return [user_story_filter.UserStoryFilter.IsSelected(p) for p in self.pages]
+
+ def testNoFilterMatchesAll(self):
+ self.ProcessCommandLineArgs()
+ self.assertEquals([True, True, True], self.PageSelections())
+
+ def testBadRegexCallsParserError(self):
+ class MockParserException(Exception):
+ pass
+ class MockParser(object):
+ def error(self, _):
+ raise MockParserException
+ with self.assertRaises(MockParserException):
+ self.ProcessCommandLineArgs(parser=MockParser(), story_filter='+')
+
+ def testUniqueSubstring(self):
+ self.ProcessCommandLineArgs(story_filter='smile_widen')
+ self.assertEquals([True, False, False], self.PageSelections())
+
+ def testSharedSubstring(self):
+ self.ProcessCommandLineArgs(story_filter='smile')
+ self.assertEquals([True, True, True], self.PageSelections())
+
+ def testNoMatch(self):
+ self.ProcessCommandLineArgs(story_filter='frown')
+ self.assertEquals([False, False, False], self.PageSelections())
+
+ def testExclude(self):
+ self.ProcessCommandLineArgs(story_filter_exclude='ShareA')
+ self.assertEquals([True, False, True], self.PageSelections())
+
+ def testExcludeTakesPriority(self):
+ self.ProcessCommandLineArgs(
+ story_filter='smile',
+ story_filter_exclude='wide')
+ self.assertEquals([False, True, True], self.PageSelections())
+
+ def testNoNameMatchesDisplayName(self):
+ self.ProcessCommandLineArgs(story_filter='share_a/smile')
+ self.assertEquals([False, False, True], self.PageSelections())
+
+ def testNoLabelMatch(self):
+ self.ProcessCommandLineArgs(story_label_filter='labelX')
+ self.assertEquals([False, False, False], self.PageSelections())
+
+ def testLabelsAllMatch(self):
+ self.ProcessCommandLineArgs(story_label_filter='label1,label2')
+ self.assertEquals([True, True, True], self.PageSelections())
- def testURLPattern(self):
- options = MockUrlFilterOptions('conformance_textures', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- options = MockUrlFilterOptions('textures', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- options = MockUrlFilterOptions('somethingelse', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p2))
-
- def testName(self):
- options = MockUrlFilterOptions('somethingelse', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- options = MockUrlFilterOptions('textures_tex_sub_image', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- options = MockUrlFilterOptions('WebglConformance', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- options = MockUrlFilterOptions('OtherSuite', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p2))
-
- def testNameNone(self):
- options = MockUrlFilterOptions('othersuite/textures', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p3))
- options = MockUrlFilterOptions('conformance/textures', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p3))
-
- def testLabelFilters(self):
- # Include both labels
- options = MockLabelFilterOptions('label1,label2', '')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p3))
- # Exclude takes priority
- options = MockLabelFilterOptions('label1', 'label2')
- user_story_filter.UserStoryFilter.ProcessCommandLineArgs(None, options)
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p1))
- self.assertTrue(user_story_filter.UserStoryFilter.IsSelected(self.p2))
- self.assertFalse(user_story_filter.UserStoryFilter.IsSelected(self.p3))
+ def testExcludeLabelTakesPriority(self):
+ self.ProcessCommandLineArgs(
+ story_label_filter='label1',
+ story_label_filter_exclude='label2')
+ self.assertEquals([False, True, False], self.PageSelections())
« no previous file with comments | « tools/telemetry/telemetry/user_story/user_story_filter.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698