MCPcopy Create free account
hub / github.com/apache/arrow / FakeGitHub

Class FakeGitHub

dev/test_merge_arrow_pr.py:55–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53
54
55class FakeGitHub:
56
57 def __init__(self, issues=None, project_versions=None, state='open'):
58 self._issues = issues
59 self._project_versions = project_versions
60 self._state = state
61 self._transitions = []
62
63 @property
64 def issue(self):
65 return self._issues[fake_issue_id].fields._asdict()
66
67 @property
68 def current_versions(self):
69 return [
70 v.title for v in self._project_versions if not v.state == 'closed'
71 ]
72
73 @property
74 def current_fix_versions(self):
75 return 'JS-0.4.0'
76
77 @property
78 def state(self):
79 return self._state
80
81 def get_issue_data(self, issue_id):
82 return self._issues.get(issue_id).fields._asdict()
83
84 def get_milestones(self):
85 return [v._asdict() for v in self._project_versions]
86
87 def assign_milestone(self, issue_id, milestone):
88 self._transitions.append(
89 {'action': 'assign_milestone', 'issue_id': issue_id,
90 'milestone': milestone})
91
92 def close_issue(self, issue_id, comment):
93 self._transitions.append(
94 {'action': 'close_issue', 'issue_id': issue_id, 'comment': comment})
95
96 @property
97 def captured_transitions(self):
98 return self._transitions
99
100
101class FakeCLI:

Calls

no outgoing calls