Chromium Code Reviews| Index: appengine/findit/model/test/base_analysis_test.py |
| diff --git a/appengine/findit/model/test/base_analysis_test.py b/appengine/findit/model/test/base_analysis_test.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..728f99e000c711310fc6c2e0afb5ad761f68c97b |
| --- /dev/null |
| +++ b/appengine/findit/model/test/base_analysis_test.py |
| @@ -0,0 +1,76 @@ |
| +# Copyright 2016 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. |
| +from datetime import datetime |
| +import unittest |
| + |
| +from model import analysis_status |
| +from model.base_analysis import BaseAnalysis |
| + |
| +from google.appengine.ext import ndb |
| + |
| + |
| +class _DummyModel(BaseAnalysis): |
| + |
| + @staticmethod |
| + def Create(key_string): |
| + key = ndb.Key('_DummyModel', key_string) |
| + return _DummyModel(key=key) |
| + |
| + |
| +class BaseModelTest(unittest.TestCase): |
| + |
| + def setUp(self): |
| + self.dummy_model = _DummyModel.Create('dummy_key') |
| + |
| + def testBaseAnalysisStatusIsCompleted(self): |
| + for status in (analysis_status.COMPLETED, analysis_status.ERROR): |
| + self.dummy_model.status = status |
| + self.assertTrue(self.dummy_model.completed) |
| + |
| + def testBaseAnalysisStatusIsNotCompleted(self): |
| + for status in (analysis_status.PENDING, analysis_status.RUNNING): |
| + self.dummy_model.status = status |
| + self.assertFalse(self.dummy_model.completed) |
| + |
| + def testBaseAnalysisDurationWhenNotCompleted(self): |
| + self.dummy_model.status = analysis_status.RUNNING |
| + self.assertIsNone(self.dummy_model.duration) |
| + |
| + def testBaseAnalysisDurationWhenStartTimeNotSet(self): |
| + self.dummy_model.status = analysis_status.COMPLETED |
| + self.dummy_model.end_time = datetime(2015, 07, 30, 21, 15, 30, 40) |
| + self.assertIsNone(self.dummy_model.duration) |
| + |
| + def testBaseAnalysisDurationWhenEndTimeNotSet(self): |
| + self.dummy_model.status = analysis_status.COMPLETED |
| + self.dummy_model.start_time = datetime(2015, 07, 30, 21, 15, 30, 40) |
| + self.assertIsNone(self.dummy_model.duration) |
| + |
| + def testBaseAnalysisDurationWhenCompleted(self): |
| + |
| + self.dummy_model.status = analysis_status.COMPLETED |
| + self.dummy_model.start_time = datetime(2015, 07, 30, 21, 15, 30, 40) |
| + self.dummy_model.end_time = datetime(2015, 07, 30, 21, 16, 15, 50) |
| + self.assertEqual(45, self.dummy_model.duration) |
| + |
| + def testBaseAnalysisStatusIsFailed(self): |
| + self.dummy_model.status = analysis_status.ERROR |
| + self.assertTrue(self.dummy_model.failed) |
| + |
| + def testBaseAnalysisStatusIsNotFailed(self): |
| + for status in (analysis_status.PENDING, analysis_status.RUNNING, |
| + analysis_status.COMPLETED): |
| + |
| + self.dummy_model.status = status |
| + self.assertFalse(self.dummy_model.failed) |
| + |
| + def testBaseAnalysisStatusDescription(self): |
| + self.dummy_model.status = analysis_status.PENDING |
| + self.assertEqual('Pending', self.dummy_model.status_description) |
| + self.dummy_model.status = analysis_status.RUNNING |
| + self.assertEqual('Running', self.dummy_model.status_description) |
| + self.dummy_model.status = analysis_status.COMPLETED |
| + self.assertEqual('Completed', self.dummy_model.status_description) |
|
lijeffrey
2016/07/27 21:28:30
same here, you may want to break this test into se
|
| + self.dummy_model.status = analysis_status.ERROR |
| + self.assertEqual('Error', self.dummy_model.status_description) |