| # 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() |