Skip to content

Commit a5cf5c8

Browse files
authored
Fix API spec updater (#7)
Would try bumping 2022.4 to 2023.4 instead of 2023.0.
1 parent 882971b commit a5cf5c8

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

.github/scripts/test_update_api_spec_version.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55
import unittest
66
from unittest import mock
77

8+
API_MANUAL = "https://docs.gradle.com/enterprise/api-manual"
9+
ORIGINAL_VERSION = '2022.4'
10+
811

912
class TestCheckForNewApiSpec(unittest.TestCase):
1013

1114
def setUp(self):
1215
self.properties_file = NamedTemporaryFile()
13-
self.properties_file.write(b'gradle.enterprise.version=2022.4\n1=2\n')
16+
content = f"gradle.enterprise.version={ORIGINAL_VERSION}\n1=2\n"
17+
self.properties_file.write(content.encode())
1418
self.properties_file.flush()
1519

1620
def tearDown(self):
@@ -20,32 +24,26 @@ def tearDown(self):
2024
@mock.patch('requests.get')
2125
def test_main_many_updates_available(self, mock_get, mock_print):
2226
mock_get.return_value.status_code = 200
23-
2427
main(self.properties_file.name)
25-
26-
with open(self.properties_file.name) as file:
27-
self.assertEqual(file.read(),
28-
'gradle.enterprise.version=2023.4\n1=2\n')
29-
mock_get.assert_called_once_with(
30-
'https://docs.gradle.com/enterprise/api-manual/ref/gradle-enterprise-2023.4-api.yaml'
31-
)
28+
self.assert_updated_to('2023.0')
29+
self.assert_checked_for(['2023.0'], mock_get)
3230

3331
@mock.patch('builtins.print')
3432
@mock.patch('requests.get')
3533
def test_main_no_updates_available(self, mock_get, mock_print):
3634
mock_get.return_value.status_code = 404
37-
3835
main(self.properties_file.name)
36+
self.assert_updated_to(ORIGINAL_VERSION)
37+
self.assert_checked_for(['2023.0', '2022.5'], mock_get)
3938

39+
def assert_updated_to(self, version):
4040
with open(self.properties_file.name) as file:
4141
self.assertEqual(file.read(),
42-
'gradle.enterprise.version=2022.4\n1=2\n')
43-
mock_get.assert_has_calls([
44-
mock.call(
45-
'https://docs.gradle.com/enterprise/api-manual/ref/gradle-enterprise-2023.4-api.yaml'),
46-
mock.call(
47-
'https://docs.gradle.com/enterprise/api-manual/ref/gradle-enterprise-2022.5-api.yaml'),
48-
])
42+
f"gradle.enterprise.version={version}\n1=2\n")
43+
44+
def assert_checked_for(self, versions, mock_get):
45+
mock_get.assert_has_calls(
46+
[mock.call(f"{API_MANUAL}/ref/gradle-enterprise-{v}-api.yaml") for v in versions])
4947

5048

5149
if __name__ == '__main__':

.github/scripts/update_api_spec_version.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ def get_possible_version_bumps(version: str) -> list[str]:
1010
parts: list = version.split('.')
1111
possible_bumps = []
1212
for i in range(len(parts)):
13-
bump = parts.copy()
14-
bumped_part = int(bump[i]) + 1
15-
bump[i] = str(bumped_part)
16-
possible_bumps.append(".".join(bump))
13+
bump = [int(p) for p in parts]
14+
bump[i] += 1
15+
if i < len(parts) - 1:
16+
for j in range(i + 1, len(parts)):
17+
bump[j] = 0
18+
bump = ".".join([str(part) for part in bump])
19+
possible_bumps.append(bump)
1720
return possible_bumps
1821

1922

0 commit comments

Comments
 (0)