test_api.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # Copyright 2014 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. from recipe_engine import recipe_test_api
  5. class GerritTestApi(recipe_test_api.RecipeTestApi):
  6. @staticmethod
  7. def _gerrit_change_data(change_number=91827, patchset=1, **kwargs):
  8. # Exemplary change. Note: This contains only a subset of the key/value pairs
  9. # present in production to limit recipe simulation output.
  10. data = {
  11. 'status': 'NEW',
  12. 'created': '2017-01-30 13:11:20.000000000',
  13. '_number': str(change_number),
  14. 'change_id': 'Ideadbeef',
  15. 'project': 'chromium/src',
  16. 'has_review_started': False,
  17. 'branch': 'main',
  18. 'subject': 'Change title',
  19. 'revisions': {
  20. '184ebe53805e102605d11f6b143486d15c23a09c': {
  21. '_number': str(patchset),
  22. 'commit': {
  23. 'message': 'Change commit message',
  24. },
  25. },
  26. },
  27. }
  28. data.update(kwargs)
  29. return data
  30. @staticmethod
  31. def _related_changes_data(**kwargs):
  32. data = {
  33. "changes": [{
  34. "project": "gerrit",
  35. "change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5",
  36. "commit": {
  37. "commit": "78847477532e386f5a2185a4e8c90b2509e354e3",
  38. "parents": [{
  39. "commit": "bb499510bbcdbc9164d96b0dbabb4aa45f59a87e"
  40. }],
  41. "author": {
  42. "name": "Example Name",
  43. "email": "example@example.com",
  44. "date": "2014-07-12 15:04:24.000000000",
  45. "tz": 120
  46. },
  47. "subject": "Remove Solr"
  48. },
  49. "_change_number": 58478,
  50. "_revision_number": 2,
  51. "_current_revision_number": 2,
  52. "status": "NEW"
  53. }]
  54. }
  55. data.update(kwargs)
  56. return data
  57. def _make_gerrit_response_json(self, data):
  58. return self.m.json.output(data)
  59. def make_gerrit_create_branch_response_data(self):
  60. return self._make_gerrit_response_json({
  61. "ref": "refs/heads/test",
  62. "revision": "76016386a0d8ecc7b6be212424978bb45959d668",
  63. "can_delete": True
  64. })
  65. def make_gerrit_create_tag_response_data(self):
  66. return self._make_gerrit_response_json({
  67. "ref": "refs/tags/1.0",
  68. "revision": "67ebf73496383c6777035e374d2d664009e2aa5c",
  69. "can_delete": True
  70. })
  71. def make_gerrit_get_branch_response_data(self):
  72. return self._make_gerrit_response_json({
  73. "ref": "refs/heads/main",
  74. "revision": "67ebf73496383c6777035e374d2d664009e2aa5c"
  75. })
  76. def get_one_change_response_data(self, **kwargs):
  77. return self._make_gerrit_response_json([self._gerrit_change_data(**kwargs)])
  78. def update_files_response_data(self, **kwargs):
  79. return self._make_gerrit_response_json(self._gerrit_change_data(**kwargs))
  80. def get_empty_changes_response_data(self):
  81. return self._make_gerrit_response_json([])
  82. def get_move_change_response_data(self, **kwargs):
  83. return self._make_gerrit_response_json([self._gerrit_change_data(**kwargs)])
  84. def get_related_changes_response_data(self, **kwargs):
  85. return self._make_gerrit_response_json(self._related_changes_data(**kwargs))