def testBooleanTags(self):
   a_hist = histogram.Histogram('', 'count')
   a_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['video', 'audio'])
   b_hist = histogram.Histogram('', 'count')
   b_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['audio'])
   c_hist = histogram.Histogram('', 'count')
   c_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['video'])
   d_hist = histogram.Histogram('', 'count')
   d_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       [])
   groupings = histogram_grouping.BuildFromTags(
       ['audio', 'video'], reserved_infos.STORY_TAGS.name)
   self.assertEqual(len(groupings), 2)
   self.assertEqual(groupings[0].key, 'audioTag')
   self.assertEqual(groupings[1].key, 'videoTag')
   self.assertEqual(groupings[0].callback(a_hist), 'audio')
   self.assertEqual(groupings[0].callback(b_hist), 'audio')
   self.assertEqual(groupings[0].callback(c_hist), '~audio')
   self.assertEqual(groupings[0].callback(d_hist), '~audio')
   self.assertEqual(groupings[1].callback(a_hist), 'video')
   self.assertEqual(groupings[1].callback(b_hist), '~video')
   self.assertEqual(groupings[1].callback(c_hist), 'video')
   self.assertEqual(groupings[1].callback(d_hist), '~video')
 def testKeyValueTags(self):
   a_hist = histogram.Histogram('', 'count')
   a_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['case:load'])
   b_hist = histogram.Histogram('', 'count')
   b_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['case:browse'])
   c_hist = histogram.Histogram('', 'count')
   c_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       [])
   d_hist = histogram.Histogram('', 'count')
   d_hist.diagnostics[reserved_infos.STORY_TAGS.name] = generic_set.GenericSet(
       ['case:load', 'case:browse'])
   groupings = histogram_grouping.BuildFromTags(
       ['case:load', 'case:browse'], reserved_infos.STORY_TAGS.name)
   self.assertEqual(len(groupings), 1)
   self.assertEqual(groupings[0].key, 'caseTag')
   self.assertEqual(groupings[0].callback(a_hist), 'load')
   self.assertEqual(groupings[0].callback(b_hist), 'browse')
   self.assertEqual(groupings[0].callback(c_hist), '~case')
   self.assertEqual(groupings[0].callback(d_hist), 'browse,load')