| #!/usr/bin/env vpython3 |
| # Copyright 2020 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 os |
| import sys |
| import unittest |
| |
| from datetime import datetime |
| |
| DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| sys.path.insert(0, DEPOT_TOOLS_ROOT) |
| |
| import my_activity |
| |
| class MyActivityTest(unittest.TestCase): |
| def test_datetime_to_midnight(self): |
| self.assertEqual( |
| datetime(2020, 9, 12), |
| my_activity.datetime_to_midnight(datetime(2020, 9, 12, 13, 0, 0))) |
| self.assertEqual( |
| datetime(2020, 12, 31), |
| my_activity.datetime_to_midnight(datetime(2020, 12, 31, 23, 59, 59))) |
| self.assertEqual( |
| datetime(2020, 12, 31), |
| my_activity.datetime_to_midnight(datetime(2020, 12, 31))) |
| |
| def test_get_quarter_of(self): |
| self.assertEqual( |
| (datetime(2020, 7, 1), datetime(2020, 10, 1)), |
| my_activity.get_quarter_of(datetime(2020, 9, 12))) |
| # Quarter range includes beginning |
| self.assertEqual( |
| (datetime(2020, 10, 1), datetime(2021, 1, 1)), |
| my_activity.get_quarter_of(datetime(2020, 10, 1))) |
| # Quarter range excludes end |
| self.assertEqual( |
| (datetime(2021, 1, 1), datetime(2021, 4, 1)), |
| my_activity.get_quarter_of(datetime(2021, 1, 1))) |
| self.assertEqual( |
| (datetime(2020, 10, 1), datetime(2021, 1, 1)), |
| my_activity.get_quarter_of(datetime(2020, 12, 31, 23, 59, 59))) |
| |
| def test_get_year_of(self): |
| self.assertEqual( |
| (datetime(2020, 1, 1), datetime(2021, 1, 1)), |
| my_activity.get_year_of(datetime(2020, 9, 12))) |
| # Year range includes beginning |
| self.assertEqual( |
| (datetime(2020, 1, 1), datetime(2021, 1, 1)), |
| my_activity.get_year_of(datetime(2020, 1, 1))) |
| # Year range excludes end |
| self.assertEqual( |
| (datetime(2021, 1, 1), datetime(2022, 1, 1)), |
| my_activity.get_year_of(datetime(2021, 1, 1))) |
| |
| def test_get_week_of(self): |
| self.assertEqual( |
| (datetime(2020, 9, 7), datetime(2020, 9, 14)), |
| my_activity.get_week_of(datetime(2020, 9, 12))) |
| # Week range includes beginning |
| self.assertEqual( |
| (datetime(2020, 9, 7), datetime(2020, 9, 14)), |
| my_activity.get_week_of(datetime(2020, 9, 7))) |
| # Week range excludes beginning |
| self.assertEqual( |
| (datetime(2020, 9, 14), datetime(2020, 9, 21)), |
| my_activity.get_week_of(datetime(2020, 9, 14))) |
| |
| def _get_issue_with_description(self, description): |
| return { |
| 'current_revision': 'rev', |
| 'revisions': {'rev': {'commit': {'message': description}}}, |
| } |
| |
| def test_extract_bug_numbers_from_description(self): |
| issue = self._get_issue_with_description( |
| 'Title\n' |
| '\n' |
| 'Description\n' |
| 'A comment:\n' |
| '> Bug: 1234, another:5678\n' |
| '\n' |
| 'Bug: another:1234, 5678\n' |
| 'BUG=project:13141516\n' |
| 'Fixed: fixed:9101112\n' |
| 'Change-Id: Iabcdef1234567890\n') |
| self.assertEqual( |
| ['another:1234', 'chromium:5678', 'fixed:9101112', 'project:13141516'], |
| my_activity.extract_bug_numbers_from_description(issue)) |
| |
| if __name__ == '__main__': |
| unittest.main() |