my_activity_test.py 3.6 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,
  20. 59)))
  21. self.assertEqual(
  22. datetime(2020, 12, 31),
  23. my_activity.datetime_to_midnight(datetime(2020, 12, 31)))
  24. def test_get_quarter_of(self):
  25. self.assertEqual((datetime(2020, 7, 1), datetime(2020, 10, 1)),
  26. my_activity.get_quarter_of(datetime(2020, 9, 12)))
  27. # Quarter range includes beginning
  28. self.assertEqual((datetime(2020, 10, 1), datetime(2021, 1, 1)),
  29. my_activity.get_quarter_of(datetime(2020, 10, 1)))
  30. # Quarter range excludes end
  31. self.assertEqual((datetime(2021, 1, 1), datetime(2021, 4, 1)),
  32. my_activity.get_quarter_of(datetime(2021, 1, 1)))
  33. self.assertEqual(
  34. (datetime(2020, 10, 1), datetime(2021, 1, 1)),
  35. my_activity.get_quarter_of(datetime(2020, 12, 31, 23, 59, 59)))
  36. def test_get_year_of(self):
  37. self.assertEqual((datetime(2020, 1, 1), datetime(2021, 1, 1)),
  38. my_activity.get_year_of(datetime(2020, 9, 12)))
  39. # Year range includes beginning
  40. self.assertEqual((datetime(2020, 1, 1), datetime(2021, 1, 1)),
  41. my_activity.get_year_of(datetime(2020, 1, 1)))
  42. # Year range excludes end
  43. self.assertEqual((datetime(2021, 1, 1), datetime(2022, 1, 1)),
  44. my_activity.get_year_of(datetime(2021, 1, 1)))
  45. def test_get_week_of(self):
  46. self.assertEqual((datetime(2020, 9, 7), datetime(2020, 9, 14)),
  47. my_activity.get_week_of(datetime(2020, 9, 12)))
  48. # Week range includes beginning
  49. self.assertEqual((datetime(2020, 9, 7), datetime(2020, 9, 14)),
  50. my_activity.get_week_of(datetime(2020, 9, 7)))
  51. # Week range excludes beginning
  52. self.assertEqual((datetime(2020, 9, 14), datetime(2020, 9, 21)),
  53. my_activity.get_week_of(datetime(2020, 9, 14)))
  54. def _get_issue_with_description(self, description):
  55. return {
  56. 'current_revision': 'rev',
  57. 'revisions': {
  58. 'rev': {
  59. 'commit': {
  60. 'message': description
  61. }
  62. }
  63. },
  64. }
  65. def test_extract_bug_numbers_from_description(self):
  66. issue = self._get_issue_with_description(
  67. 'Title\n'
  68. '\n'
  69. 'Description\n'
  70. 'A comment:\n'
  71. '> Bug: 1234, another:5678\n'
  72. '\n'
  73. 'Bug: another:1234, 5678\n'
  74. 'BUG=project:13141516\n'
  75. 'Fixed: fixed:9101112\n'
  76. 'Change-Id: Iabcdef1234567890\n')
  77. self.assertEqual([
  78. 'another:1234', 'chromium:5678', 'fixed:9101112', 'project:13141516'
  79. ], my_activity.extract_bug_numbers_from_description(issue))
  80. if __name__ == '__main__':
  81. unittest.main()