def testNoFilter(self):
     a = FakeStory('a')
     b = FakeStory('b')
     stories = (a, b)
     story_filter = story_filter_module.StoryFilter()
     output = story_filter.FilterStories(stories)
     self.assertEqual(list(stories), output)
 def testTagsAllMatch(self):
     a = FakeStory('a', {'1', '2'})
     b = FakeStory('b', {'1', '2'})
     stories = (a, b)
     story_filter = story_filter_module.StoryFilter(story_tag_filter='1,2')
     output = story_filter.FilterStories(stories)
     self.assertEqual(list(stories), output)
 def testDisabledStory(self):
   story = FakeStory()
   expectations = FakeExpectations(stories_to_disable=[story.name])
   story_filter = story_filter_module.StoryFilter(
       expectations=expectations,
       run_disabled_stories=False)
   self.assertEqual(story_filter.ShouldSkip(story), 'fake reason')
 def testSimple(self):
     a = FakeStory('a')
     foo = FakeStory('foo')  # pylint: disable=blacklisted-name
     stories = (a, foo)
     story_filter = story_filter_module.StoryFilter(story_filter='foo')
     output = story_filter.FilterStories(stories)
     self.assertEqual([foo], output)
 def testEnabledStory(self):
   story = FakeStory()
   expectations = FakeExpectations(stories_to_disable=[])
   story_filter = story_filter_module.StoryFilter(
       expectations=expectations,
       run_disabled_stories=False)
   self.assertFalse(story_filter.ShouldSkip(story))
 def testExcludetagTakesPriority(self):
     x = FakeStory('x', {'1'})
     y = FakeStory('y', {'1', '2'})
     stories = (x, y)
     story_filter = story_filter_module.StoryFilter(
         story_tag_filter='1', story_tag_filter_exclude='2')
     output = story_filter.FilterStories(stories)
     self.assertEqual([x], output)
 def testDisabledStory_StoryFlag(self):
     story = FakeStory('a_name')
     expectations = FakeExpectations(stories_to_disable=[story.name])
     story_filter = story_filter_module.StoryFilter(
         expectations=expectations,
         run_disabled_stories=False,
         stories=['a_name'])
     self.assertFalse(story_filter.ShouldSkip(story))
 def testNoMatch(self):
     a = FakeStory('a')
     foo = FakeStory('foo')  # pylint: disable=blacklisted-name
     foobar = FakeStory('foobar')
     stories = (a, foo, foobar)
     story_filter = story_filter_module.StoryFilter(story_filter='1234')
     output = story_filter.FilterStories(stories)
     self.assertEqual([], output)
 def testAbridgedStorySetTag(self):
     x = FakeStory('x', {'1'})
     y = FakeStory('y', {'1', '2'})
     stories = (x, y)
     story_filter = story_filter_module.StoryFilter(
         abridged_story_set_tag='2')
     output = story_filter.FilterStories(stories)
     self.assertEqual([y], output)
 def testExcludeTakesPriority(self):
     a = FakeStory('a')
     foo = FakeStory('foo')  # pylint: disable=blacklisted-name
     foobar = FakeStory('foobar')
     stories = (a, foo, foobar)
     story_filter = story_filter_module.StoryFilter(
         story_filter='foo', story_filter_exclude='bar')
     output = story_filter.FilterStories(stories)
     self.assertEqual([foo], output)
    def testStoryShardEndWraps(self):
        """This is needed since benchmarks may change size.

    When they change size, we will not immediately write new
    shard maps for them.
    """
        story_filter = story_filter_module.StoryFilter(shard_end_index=5)
        output = story_filter.FilterStories(self.stories)
        self.assertEqual(list(self.stories), output)
 def testStoryFlag(self):
     a = FakeStory('a')
     b = FakeStory('b')
     c = FakeStory('c')
     d = FakeStory('d')
     stories = (a, b, c, d)
     story_filter = story_filter_module.StoryFilter(stories=['a', 'c'])
     output = story_filter.FilterStories(stories)
     self.assertEqual([a, c], output)
示例#13
0
 def stories(self):
   if self._stories != None:
     return self._stories
   else:
     story_set = benchmark_utils.GetBenchmarkStorySet(self.benchmark())
     abridged_story_set_tag = (
         story_set.GetAbridgedStorySetTagFilter() if self.abridged else None)
     story_filter_obj = story_filter.StoryFilter(
         abridged_story_set_tag=abridged_story_set_tag)
     stories = story_filter_obj.FilterStories(story_set)
     self._stories = [story.name for story in stories]
     return self._stories
    def testAbridgeBeforeShardIndexing(self):
        """Test that the abridged story set tag gets applied before indexing.

    Shard maps on the chromium side allow us to distribute runtime evenly across
    shards so that we minimize waterfall cycle time. If we abridge after we
    select indexes then we cannot control how many stories is on each shard.
    """
        x = FakeStory('x', {'t'})
        y = FakeStory('y')
        z = FakeStory('z', {'t'})
        stories = (x, y, z)
        story_filter = story_filter_module.StoryFilter(
            abridged_story_set_tag='t', shard_end_index=2)
        output = story_filter.FilterStories(stories)
        self.assertEqual([x, z], output)
 def testBadStoryFilterExcludeRegexRaises(self):
     with self.assertRaises(re.error):
         story_filter_module.StoryFilter(story_filter_exclude='+')
示例#16
0
 def testStoryIndexRangeOpenBegin(self):
     story_filter = story_filter_module.StoryFilter(shard_indexes='-3')
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s1, self.s2, self.s3], output)
示例#17
0
 def testStoryIndexRangeOpenEnd(self):
     story_filter = story_filter_module.StoryFilter(shard_indexes='1-')
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s2, self.s3, self.s4, self.s5], output)
示例#18
0
 def testStoryIndexRangeSingles(self):
     story_filter = story_filter_module.StoryFilter(shard_indexes='1,3')
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s2, self.s4], output)
 def testStoryFlag_InvalidStory(self):
     a = FakeStory('a')
     stories = (a, )
     story_filter = story_filter_module.StoryFilter(stories=['a', 'c'])
     with self.assertRaises(ValueError):
         story_filter.FilterStories(stories)
示例#20
0
 def testStoryIndexRangeCombinations(self):
     story_filter = story_filter_module.StoryFilter(shard_indexes='0,2-')
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s1, self.s3, self.s4, self.s5], output)
示例#21
0
 def testStoryIndexRangeInvalidRange(self):
     with self.assertRaises(ValueError):
         story_filter = story_filter_module.StoryFilter(shard_indexes='3-1')
         story_filter.FilterStories(self.stories)
 def testMismatchedStoryShardArgEndAndBegin(self):
     with self.assertRaises(ValueError):
         story_filter_module.StoryFilter(shard_end_index=2,
                                         shard_begin_index=3)
示例#23
0
 def testStoryIndexRangeRangeOverLap(self):
     with self.assertRaises(ValueError):
         story_filter = story_filter_module.StoryFilter(
             shard_indexes='0-2,1-3')
         story_filter.FilterStories(self.stories)
 def testBadStoryShardArgEnd(self):
     with self.assertRaises(ValueError):
         story_filter_module.StoryFilter(shard_end_index=-1)
 def testStoryShardBeginWraps(self):
     story_filter = story_filter_module.StoryFilter(shard_begin_index=-1)
     output = story_filter.FilterStories(self.stories)
     self.assertEqual(list(self.stories), output)
 def testStoryShardBoth(self):
     story_filter = story_filter_module.StoryFilter(shard_begin_index=1,
                                                    shard_end_index=2)
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s2], output)
 def testStoryShardBegin(self):
     story_filter = story_filter_module.StoryFilter(shard_begin_index=1)
     output = story_filter.FilterStories(self.stories)
     self.assertEqual([self.s2, self.s3], output)
示例#28
0
 def testStoryIndexRangeOutOfOrder(self):
     with self.assertRaises(ValueError):
         story_filter = story_filter_module.StoryFilter(
             shard_indexes='2,0-2')
         story_filter.FilterStories(self.stories)