Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1import json 

2 

3import responses 

4from tests.publisher.endpoint_testing import BaseTestCases 

5 

6 

7class PostPreviewPageNotAuth(BaseTestCases.EndpointLoggedOut): 

8 def setUp(self): 

9 snap_name = "test-snap" 

10 endpoint_url = "/{}/preview".format(snap_name) 

11 

12 super().setUp( 

13 snap_name=snap_name, 

14 endpoint_url=endpoint_url, 

15 method_endpoint="POST", 

16 ) 

17 

18 

19class PostPreviewPage(BaseTestCases.EndpointLoggedIn): 

20 def setUp(self): 

21 self.snap_id = "complexId" 

22 

23 snap_name = "test-snap" 

24 endpoint_url = "/{}/preview".format(snap_name) 

25 api_url = ( 

26 "https://dashboard.snapcraft.io/dev/api/" "snaps/info/{}" 

27 ).format(snap_name) 

28 

29 super().setUp( 

30 snap_name=snap_name, 

31 api_url=api_url, 

32 endpoint_url=endpoint_url, 

33 method_api="GET", 

34 method_endpoint="POST", 

35 ) 

36 

37 @responses.activate 

38 def test_renders_template(self): 

39 responses.add( 

40 responses.GET, 

41 self.api_url, 

42 json={ 

43 "publisher": { 

44 "display-name": "Test", 

45 "username": "test", 

46 "validation": "verified", 

47 } 

48 }, 

49 status=200, 

50 ) 

51 

52 state = json.dumps( 

53 { 

54 "snap_name": self.snap_name, 

55 "images": [], 

56 "title": self.snap_name, 

57 "categories": [{"slug": "devices-and-iot"}], 

58 } 

59 ) 

60 

61 response = self.client.post(self.endpoint_url, data={"state": state}) 

62 

63 self.assertEqual(response.status_code, 200) 

64 self.assertTemplateUsed("store/snap-details.html") 

65 self.assertContext("snap_name", self.snap_name) 

66 self.assertContext("is_preview", True) 

67 self.assertContext("screenshots", []) 

68 self.assertContext("icon_url", "") 

69 self.assertContext("video", None) 

70 self.assertContext("package_name", self.snap_name)