Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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')
Пример #4
0
 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)
Пример #5
0
 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))
Пример #6
0
 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)
Пример #7
0
 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))
Пример #8
0
 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)
Пример #9
0
 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)
Пример #10
0
 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)
Пример #11
0
    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)
Пример #12
0
 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
Пример #14
0
    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)
Пример #15
0
 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)
Пример #19
0
 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)
Пример #22
0
 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)
Пример #24
0
 def testBadStoryShardArgEnd(self):
     with self.assertRaises(ValueError):
         story_filter_module.StoryFilter(shard_end_index=-1)
Пример #25
0
 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)
Пример #26
0
 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)
Пример #27
0
 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)