Coverage for shps/tests.py: 98%

92 statements  

« prev     ^ index     » next       coverage.py v7.6.0, created at 2024-07-27 11:19 +0000

1from django.apps import apps 

2from django.contrib.auth.models import User 

3from django.test import Client, TestCase 

4from django.urls import reverse 

5 

6 

7MODELS = list(apps.all_models["shps"].values()) 

8 

9client = Client() 

10USER = {"username": "testuser", "password": "somepassword"} 

11 

12 

13class ArchivTestCase(TestCase): 

14 fixtures = ["dump.json"] 

15 

16 def setUp(self): 

17 # Create two users 

18 User.objects.create_user(**USER) 

19 

20 def test_002_listviews(self): 

21 for x in MODELS: 

22 try: 

23 url = x.get_listview_url() 

24 except AttributeError: 

25 url = False 

26 if url: 

27 response = client.get(url) 

28 self.assertEqual(response.status_code, 200) 

29 client.login(**USER) 

30 for x in MODELS: 

31 try: 

32 url = x.get_listview_url() 

33 except AttributeError: 

34 url = False 

35 if url: 

36 response = client.get(url) 

37 self.assertEqual(response.status_code, 200) 

38 

39 def test_003_detailviews(self): 

40 for x in MODELS: 

41 item = x.objects.first() 

42 try: 

43 url = item.get_absolute_url() 

44 except AttributeError: 

45 url = False 

46 if url: 

47 response = client.get(url, {"pk": item.id}) 

48 self.assertEqual(response.status_code, 200) 

49 

50 def test_004_editviews(self): 

51 client.login(**USER) 

52 for x in MODELS: 

53 item = x.objects.first() 

54 try: 

55 url = item.get_edit_url() 

56 except AttributeError: 

57 url = False 

58 if url: 

59 response = client.get(url, {"pk": item.id}) 

60 self.assertEqual(response.status_code, 200) 

61 

62 def test_005_createviews_not_logged_in(self): 

63 for x in MODELS: 

64 item = x.objects.first() 

65 try: 

66 url = item.get_createview_url() 

67 except AttributeError: 

68 url = False 

69 if url: 

70 response = client.get(url, {"pk": item.id}) 

71 self.assertEqual(response.status_code, 302) 

72 

73 def test_006_createviews_logged_in(self): 

74 client.login(**USER) 

75 for x in MODELS: 

76 item = x.objects.first() 

77 try: 

78 url = item.get_createview_url() 

79 except AttributeError: 

80 url = False 

81 if url: 

82 response = client.get(url, {"pk": item.id}) 

83 self.assertEqual(response.status_code, 200) 

84 

85 def test_007_where_was(self): 

86 url = reverse("where_was_api") 

87 r = client.get(url) 

88 self.assertFalse(r.json()["features"]) 

89 

90 params = {"lat": "48.36", "lng": "14.3"} 

91 r = client.get(url, params) 

92 self.assertTrue(r.json()["features"]) 

93 

94 params = {"lat": "48.36", "lng": "14.3", "when": "1870-01-01"} 

95 r = client.get(url, params) 

96 self.assertTrue(r.json()["features"]) 

97 

98 params = {"lat": "48.36", "lng": "14.3", "when": "187110-01-01"} 

99 r = client.get(url, params) 

100 self.assertTrue(r.json()["features"]) 

101 

102 def test_008_shps_api_filters(self): 

103 url = "/api/tempspatial/" 

104 params = { 

105 "name": "Linz", 

106 } 

107 r = client.get(url) 

108 all_shapes = r.json()["count"] 

109 r = client.get(url, params) 

110 some_shapes = r.json()["count"] 

111 self.assertTrue(all_shapes > some_shapes)