my_activity_test.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/usr/bin/env vpython3
  2. # Copyright 2020 The Chromium Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. import os
  6. import sys
  7. import unittest
  8. from datetime import datetime
  9. DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  10. sys.path.insert(0, DEPOT_TOOLS_ROOT)
  11. import my_activity
  12. class MyActivityTest(unittest.TestCase):
  13. def test_datetime_to_midnight(self):
  14. self.assertEqual(
  15. datetime(2020, 9, 12),
  16. my_activity.datetime_to_midnight(datetime(2020, 9, 12, 13, 0, 0)))
  17. self.assertEqual(
  18. datetime(2020, 12, 31),
  19. my_activity.datetime_to_midnight(datetime(2020, 12, 31, 23, 59, 59)))
  20. self.assertEqual(
  21. datetime(2020, 12, 31),
  22. my_activity.datetime_to_midnight(datetime(2020, 12, 31)))
  23. def test_get_quarter_of(self):
  24. self.assertEqual(
  25. (datetime(2020, 7, 1), datetime(2020, 10, 1)),
  26. my_activity.get_quarter_of(datetime(2020, 9, 12)))
  27. # Quarter range includes beggining
  28. self.assertEqual(
  29. (datetime(2020, 10, 1), datetime(2021, 1, 1)),
  30. my_activity.get_quarter_of(datetime(2020, 10, 1)))
  31. # Quarter range excludes end
  32. self.assertEqual(
  33. (datetime(2021, 1, 1), datetime(2021, 4, 1)),
  34. my_activity.get_quarter_of(datetime(2021, 1, 1)))
  35. self.assertEqual(
  36. (datetime(2020, 10, 1), datetime(2021, 1, 1)),
  37. my_activity.get_quarter_of(datetime(2020, 12, 31, 23, 59, 59)))
  38. def test_get_year_of(self):
  39. self.assertEqual(
  40. (datetime(2020, 1, 1), datetime(2021, 1, 1)),
  41. my_activity.get_year_of(datetime(2020, 9, 12)))
  42. # Year range includes beggining
  43. self.assertEqual(
  44. (datetime(2020, 1, 1), datetime(2021, 1, 1)),
  45. my_activity.get_year_of(datetime(2020, 1, 1)))
  46. # Year range excludes end
  47. self.assertEqual(
  48. (datetime(2021, 1, 1), datetime(2022, 1, 1)),
  49. my_activity.get_year_of(datetime(2021, 1, 1)))
  50. def test_get_week_of(self):
  51. self.assertEqual(
  52. (datetime(2020, 9, 7), datetime(2020, 9, 14)),
  53. my_activity.get_week_of(datetime(2020, 9, 12)))
  54. # Week range includes beginning
  55. self.assertEqual(
  56. (datetime(2020, 9, 7), datetime(2020, 9, 14)),
  57. my_activity.get_week_of(datetime(2020, 9, 7)))
  58. # Week range excludes beginning
  59. self.assertEqual(
  60. (datetime(2020, 9, 14), datetime(2020, 9, 21)),
  61. my_activity.get_week_of(datetime(2020, 9, 14)))
  62. def _get_issue_with_description(self, description):
  63. return {
  64. 'current_revision': 'rev',
  65. 'revisions': {'rev': {'commit': {'message': description}}},
  66. }
  67. def test_extract_bug_numbers_from_description(self):
  68. issue = self._get_issue_with_description(
  69. 'Title\n'
  70. '\n'
  71. 'Description\n'
  72. 'A comment:\n'
  73. '> Bug: 1234, another:5678\n'
  74. '\n'
  75. 'Bug: another:1234, 5678\n'
  76. 'BUG=project:13141516\n'
  77. 'Fixed: fixed:9101112\n'
  78. 'Change-Id: Iabcdef1234567890\n')
  79. self.assertEqual(
  80. ['another:1234', 'chromium:5678', 'fixed:9101112', 'project:13141516'],
  81. my_activity.extract_bug_numbers_from_description(issue))
  82. if __name__ == '__main__':
  83. unittest.main()