55import unittest
66from unittest import mock
77
8+ API_MANUAL = "https://docs.gradle.com/enterprise/api-manual"
9+ ORIGINAL_VERSION = '2022.4'
10+
811
912class TestCheckForNewApiSpec (unittest .TestCase ):
1013
1114 def setUp (self ):
1215 self .properties_file = NamedTemporaryFile ()
13- self .properties_file .write (b'gradle.enterprise.version=2022.4\n 1=2\n ' )
16+ content = f"gradle.enterprise.version={ ORIGINAL_VERSION } \n 1=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\n 1=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\n 1=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 } \n 1=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
5149if __name__ == '__main__' :
0 commit comments