Coverage for professional_python_exercises_2_githubcli\test_github_cli.py: 100%

33 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-11-05 18:08 +0100

1from contextlib import suppress 

2from unittest import mock 

3import requests 

4from professional_python_exercises_2_githubcli.github_cli import _rate_stars_to_repos 

5from professional_python_exercises_2_githubcli.github_cli import setstatus 

6 

7 

8def test_ratings(): 

9 assert _rate_stars_to_repos(0, 10) == "This poor fellar. Work harder!" 

10 assert _rate_stars_to_repos(0, 0) == "This poor fellar. Work harder!" 

11 assert _rate_stars_to_repos(1, 10) == "Keep doing what you're doing. But do more!" 

12 assert _rate_stars_to_repos(20, 10) == "Not bad ey, not bad." 

13 assert _rate_stars_to_repos(2000, 10) == "Greetings, Mr. Starlord" 

14 

15 

16class TestSetStatus: 

17 @mock.patch( 

18 "professional_python_exercises_2_githubcli.github_cli.get_github_token", autospec=True 

19 ) 

20 @mock.patch("professional_python_exercises_2_githubcli.github_cli.requests.post", autospec=True) 

21 def test_set_status_all_good(self, request_mock: mock.Mock, api_mock: mock.Mock): 

22 api_mock.return_value = "0000000000000000000000000000000000000000" 

23 all_good_response = requests.Response() 

24 all_good_response.status_code = 200 

25 request_mock.return_value: requests.Response = all_good_response 

26 success = setstatus() 

27 assert request_mock.called 

28 assert success 

29 

30 @mock.patch( 

31 "professional_python_exercises_2_githubcli.github_cli.get_github_token", autospec=True 

32 ) 

33 @mock.patch("professional_python_exercises_2_githubcli.github_cli.requests.post", autospec=True) 

34 def test_set_status_not_good(self, request_mock: mock.Mock, api_mock: mock.Mock): 

35 api_mock.return_value = "0000000000000000000000000000000000000000" 

36 not_good_response = requests.Response() 

37 not_good_response.status_code = 401 

38 request_mock.return_value: requests.Response = not_good_response 

39 with suppress(Exception): 

40 success = setstatus() 

41 assert request_mock.called 

42 assert success is False