Skip to content

Commit 9d6dd3c

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 39141ae commit 9d6dd3c

File tree

2 files changed

+60
-37
lines changed

2 files changed

+60
-37
lines changed

ogr/services/forgejo/commit_flag.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# Copyright Contributors to the Packit project.
22
# SPDX-License-Identifier: MIT
33

4+
from datetime import datetime
5+
from typing import Any, List
6+
47
import requests
58

6-
from datetime import datetime
7-
from typing import Any, List, Optional
89
from ogr.abstract import CommitFlag, CommitStatus
910

11+
1012
class ForgejoCommitFlag(CommitFlag):
1113
"""
1214
CommitFlag implementation for Forgejo.
@@ -18,17 +20,20 @@ def _state_from_str(cls, state: str) -> CommitStatus:
1820
state = state.lower()
1921
if state == "success":
2022
return CommitStatus.success
21-
elif state == "failure":
23+
if state == "failure":
2224
return CommitStatus.failure
23-
elif state == "pending":
25+
if state == "pending":
2426
return CommitStatus.pending
25-
else:
26-
raise ValueError(f"Unknown commit state from Forgejo: {state}")
27+
raise ValueError(f"Unknown commit state from Forgejo: {state}")
2728

2829
@classmethod
2930
def _validate_state(cls, state: CommitStatus) -> CommitStatus:
3031
# Validate that the provided state is acceptable for Forgejo.
31-
valid_states = {CommitStatus.success, CommitStatus.failure, CommitStatus.pending}
32+
valid_states = {
33+
CommitStatus.success,
34+
CommitStatus.failure,
35+
CommitStatus.pending,
36+
}
3237
if state in valid_states:
3338
return state
3439
raise ValueError(f"Invalid commit state for Forgejo: {state}")
@@ -62,7 +67,11 @@ def get(project: Any, commit: str) -> List["CommitFlag"]:
6267
response = requests.get(url, headers=headers)
6368
flags = []
6469
for raw_flag in response.json():
65-
flags.append(ForgejoCommitFlag(raw_commit_flag=raw_flag, project=project, commit=commit))
70+
flags.append(
71+
ForgejoCommitFlag(
72+
raw_commit_flag=raw_flag, project=project, commit=commit,
73+
),
74+
)
6675
return flags
6776

6877
@staticmethod
@@ -86,7 +95,9 @@ def set(
8695
}
8796
headers = project.get_auth_header()
8897
response = requests.post(url, json=payload, headers=headers)
89-
return ForgejoCommitFlag(raw_commit_flag=response.json(), project=project, commit=commit)
98+
return ForgejoCommitFlag(
99+
raw_commit_flag=response.json(), project=project, commit=commit,
100+
)
90101

91102
@property
92103
def created(self) -> datetime:

tests/integration/forgejo/test_commit_flag.py

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
# SPDX-License-Identifier: MIT
33

44
import datetime
5+
from typing import Dict, List
6+
57
import responses
6-
import pytest
7-
from typing import Any, Dict, List, Optional
8-
import requests
98

10-
from ogr.abstract import CommitStatus, CommitFlag
9+
from ogr.abstract import CommitFlag, CommitStatus
1110
from ogr.services.forgejo.commit_flag import ForgejoCommitFlag
1211

12+
1313
class MockProject:
1414
forge_api_url = "http://dummy-forgejo/api/v1"
1515
owner = "dummy_owner"
@@ -18,28 +18,31 @@ class MockProject:
1818
def get_auth_header(self) -> Dict[str, str]:
1919
return {"Authorization": "Bearer dummy_token"}
2020

21+
2122
@responses.activate
2223
def test_get_commit_flag_integration():
2324
project = MockProject()
2425
commit = "abcdef123456"
2526
url = f"{project.forge_api_url}/repos/{project.owner}/{project.repo}/commits/{commit}/statuses"
26-
27+
2728
# Dummy response data simulating Forgejo API output.
28-
dummy_response = [{
29-
"commit": commit,
30-
"state": "success",
31-
"context": "CI",
32-
"comment": "All tests passed",
33-
"id": "123",
34-
"url": "http://dummy-forgejo/commit/abcdef123456/status",
35-
"created": "2023-01-01T12:00:00Z",
36-
"updated": "2023-01-01T12:30:00Z"
37-
}]
29+
dummy_response = [
30+
{
31+
"commit": commit,
32+
"state": "success",
33+
"context": "CI",
34+
"comment": "All tests passed",
35+
"id": "123",
36+
"url": "http://dummy-forgejo/commit/abcdef123456/status",
37+
"created": "2023-01-01T12:00:00Z",
38+
"updated": "2023-01-01T12:30:00Z",
39+
},
40+
]
3841
responses.add(responses.GET, url, json=dummy_response, status=200)
39-
42+
4043
# Call the method under test.
4144
flags: List[CommitFlag] = ForgejoCommitFlag.get(project, commit)
42-
45+
4346
# Assertions using CommitStatus from packit.ogr.abstract.
4447
assert len(flags) == 1
4548
flag = flags[0]
@@ -48,18 +51,23 @@ def test_get_commit_flag_integration():
4851
assert flag.context == "CI"
4952
assert flag.comment == "All tests passed"
5053
assert flag.uid == "123"
51-
52-
expected_created = datetime.datetime.strptime("2023-01-01T12:00:00Z", "%Y-%m-%dT%H:%M:%SZ")
53-
expected_updated = datetime.datetime.strptime("2023-01-01T12:30:00Z", "%Y-%m-%dT%H:%M:%SZ")
54+
55+
expected_created = datetime.datetime.strptime(
56+
"2023-01-01T12:00:00Z", "%Y-%m-%dT%H:%M:%SZ",
57+
)
58+
expected_updated = datetime.datetime.strptime(
59+
"2023-01-01T12:30:00Z", "%Y-%m-%dT%H:%M:%SZ",
60+
)
5461
assert flag.created == expected_created
5562
assert flag.edited == expected_updated
5663

64+
5765
@responses.activate
5866
def test_set_commit_flag_integration():
5967
project = MockProject()
6068
commit = "abcdef123456"
6169
url = f"{project.forge_api_url}/repos/{project.owner}/{project.repo}/commits/{commit}/statuses"
62-
70+
6371
# Dummy response for setting a commit status.
6472
dummy_response = {
6573
"commit": commit,
@@ -69,28 +77,32 @@ def test_set_commit_flag_integration():
6977
"id": "456",
7078
"url": "http://dummy-forgejo/commit/abcdef123456/status",
7179
"created": "2023-02-01T12:00:00Z",
72-
"updated": "2023-02-01T12:30:00Z"
80+
"updated": "2023-02-01T12:30:00Z",
7381
}
7482
responses.add(responses.POST, url, json=dummy_response, status=200)
75-
83+
7684
# Call the set method to create a new commit flag.
7785
flag = ForgejoCommitFlag.set(
7886
project=project,
7987
commit=commit,
8088
state=CommitStatus.success,
8189
target_url="http://dummy-target",
8290
description="Build succeeded",
83-
context="CI"
91+
context="CI",
8492
)
85-
93+
8694
# Assertions to verify correct mapping using CommitStatus.
8795
assert flag.commit == commit
8896
assert flag.state == CommitStatus.success
8997
assert flag.context == "CI"
9098
assert flag.comment == "Build succeeded"
9199
assert flag.uid == "456"
92-
93-
expected_created = datetime.datetime.strptime("2023-02-01T12:00:00Z", "%Y-%m-%dT%H:%M:%SZ")
94-
expected_updated = datetime.datetime.strptime("2023-02-01T12:30:00Z", "%Y-%m-%dT%H:%M:%SZ")
100+
101+
expected_created = datetime.datetime.strptime(
102+
"2023-02-01T12:00:00Z", "%Y-%m-%dT%H:%M:%SZ",
103+
)
104+
expected_updated = datetime.datetime.strptime(
105+
"2023-02-01T12:30:00Z", "%Y-%m-%dT%H:%M:%SZ",
106+
)
95107
assert flag.created == expected_created
96108
assert flag.edited == expected_updated

0 commit comments

Comments
 (0)