Coverage for tests/publisher/tests_agreement.py: 100%

35 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-28 22:05 +0000

1import responses 

2from tests.publisher.endpoint_testing import BaseTestCases 

3 

4 

5class GetAgreementPage(BaseTestCases.BaseAppTesting): 

6 def setUp(self): 

7 endpoint_url = "/account/agreement" 

8 super().setUp(snap_name=None, api_url=None, endpoint_url=endpoint_url) 

9 

10 @responses.activate 

11 def test_agreement_logged_in(self): 

12 self._log_in(self.client) 

13 response = self.client.get("/account/agreement") 

14 

15 assert response.status_code == 200 

16 self.assert_template_used( 

17 "publisher/developer_programme_agreement.html" 

18 ) 

19 

20 

21class PostAgreementPage(BaseTestCases.EndpointLoggedIn): 

22 def setUp(self): 

23 api_url = "https://dashboard.snapcraft.io/dev/api/agreement/" 

24 data = {"i_agree": "on"} 

25 endpoint_url = "/account/agreement" 

26 

27 super().setUp( 

28 snap_name=None, 

29 endpoint_url=endpoint_url, 

30 api_url=api_url, 

31 method_endpoint="POST", 

32 method_api="POST", 

33 data=data, 

34 ) 

35 

36 @responses.activate 

37 def test_post_agreement_on(self): 

38 responses.add(responses.POST, self.api_url, json={}, status=200) 

39 

40 response = self.client.post(self.endpoint_url, data={"i_agree": "on"}) 

41 

42 self.assertEqual(1, len(responses.calls)) 

43 called = responses.calls[0] 

44 self.assertEqual(self.api_url, called.request.url) 

45 self.assertEqual( 

46 self.authorization, called.request.headers.get("Authorization") 

47 ) 

48 self.assertEqual(called.response.json(), {}) 

49 self.assertEqual(b'{"latest_tos_accepted": true}', called.request.body) 

50 

51 self.assertEqual(302, response.status_code) 

52 self.assertEqual("/account/", response.location) 

53 

54 @responses.activate 

55 def test_post_agreement_off(self): 

56 response = self.client.post(self.endpoint_url, data={"i_agree": "off"}) 

57 

58 self.assertEqual(302, response.status_code) 

59 self.assertEqual("/account/agreement", response.location)