blob: d3e8f91b5a29c11bd5677483a193d819ecc3305c [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from dashboard import testing_common
from dashboard import units_to_direction
from dashboard.models import anomaly
class UnitsToDirectionTest(testing_common.TestCase):
def testUpdateFromJson_SetsImprovementDirections(self):
units_to_direction.UpdateFromJson({
'description': 'this is ignored',
'ms': {'improvement_direction': 'down'},
'score': {'improvement_direction': 'up'},
})
self.assertEqual(
anomaly.DOWN, units_to_direction.GetImprovementDirection('ms'))
self.assertEqual(
anomaly.UP, units_to_direction.GetImprovementDirection('score'))
self.assertEqual(
anomaly.UNKNOWN,
units_to_direction.GetImprovementDirection('does-not-exist'))
def testUpdateFromJson_UnknownUnit_Added(self):
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'down'},
})
self.assertEqual(
anomaly.UNKNOWN, units_to_direction.GetImprovementDirection('runs/s'))
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'down'},
'runs/s': {'improvement_direction': 'up'},
})
self.assertEqual(
anomaly.UP, units_to_direction.GetImprovementDirection('runs/s'))
def testUpdateFromJson_ExistingUnitNotInNewList_RemovesUnit(self):
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'down'},
'score': {'improvement_direction': 'up'},
})
self.assertEqual(
anomaly.UP, units_to_direction.GetImprovementDirection('score'))
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'down'},
})
self.assertEqual(
anomaly.UNKNOWN, units_to_direction.GetImprovementDirection('score'))
def testUpdateFromJson_ExistingUnit_ChangesDirection(self):
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'down'},
})
self.assertEqual(
anomaly.DOWN, units_to_direction.GetImprovementDirection('ms'))
units_to_direction.UpdateFromJson({
'ms': {'improvement_direction': 'up'},
})
self.assertEqual(
anomaly.UP, units_to_direction.GetImprovementDirection('ms'))
if __name__ == '__main__':
unittest.main()