1
- import requests_mock
1
+ from pathlib import Path
2
+
2
3
from furl import furl
3
4
from rest_framework import status
4
5
from rest_framework .reverse import reverse
5
6
from rest_framework .test import APITestCase
6
- from zgw_consumers .test import generate_oas_component
7
+ from zgw_consumers .constants import APITypes , AuthTypes
8
+ from zgw_consumers .test .factories import ServiceFactory
7
9
8
10
from openforms .accounts .tests .factories import StaffUserFactory , UserFactory
9
- from openforms .registrations .contrib .objects_api .models import ObjectsAPIGroupConfig
11
+ from openforms .registrations .contrib .objects_api .tests .factories import (
12
+ ObjectsAPIGroupConfigFactory ,
13
+ )
10
14
from openforms .registrations .contrib .zgw_apis .tests .factories import (
11
15
ZGWApiGroupConfigFactory ,
12
16
)
17
+ from openforms .utils .tests .vcr import OFVCRMixin
18
+
13
19
20
+ class GetInformatieObjecttypesViewTests (OFVCRMixin , APITestCase ):
21
+
22
+ VCR_TEST_FILES = Path (__file__ ).parent / "files"
14
23
15
- @requests_mock .Mocker ()
16
- class GetInformatieObjecttypesView (APITestCase ):
17
24
@classmethod
18
25
def setUpTestData (cls ):
19
26
super ().setUpTestData ()
20
27
21
- cls .zgw_group1 = ZGWApiGroupConfigFactory .create (
22
- zrc_service__api_root = "https://zaken-1.nl/api/v1/" ,
23
- drc_service__api_root = "https://documenten-1.nl/api/v1/" ,
24
- ztc_service__api_root = "https://catalogus-1.nl/api/v1/" ,
25
- )
26
- cls .zgw_group2 = ZGWApiGroupConfigFactory .create (
27
- zrc_service__api_root = "https://zaken-2.nl/api/v1/" ,
28
- drc_service__api_root = "https://documenten-2.nl/api/v1/" ,
29
- ztc_service__api_root = "https://catalogus-2.nl/api/v1/" ,
30
- )
31
- cls .objects_api_group1 = ObjectsAPIGroupConfig .objects .create (
32
- catalogi_service = cls .zgw_group1 .ztc_service
33
- )
34
-
35
- def install_mocks (self , m ):
36
- informatieobjecttypen1 = [
37
- generate_oas_component (
38
- "catalogi" ,
39
- "schemas/InformatieObjectType" ,
40
- url = "https://catalogus-1.nl/api/v1/informatieobjecttypen/111" ,
41
- catalogus = "https://catalogus-1.nl/api/v1/catalogussen/111" ,
42
- ),
43
- generate_oas_component (
44
- "catalogi" ,
45
- "schemas/InformatieObjectType" ,
46
- url = "https://catalogus-1.nl/api/v1/informatieobjecttypen/222" ,
47
- catalogus = "https://catalogus-1.nl/api/v1/catalogussen/111" ,
48
- ),
49
- ]
50
- m .get (
51
- "https://catalogus-1.nl/api/v1/catalogussen" ,
52
- status_code = 200 ,
53
- json = {
54
- "count" : 1 ,
55
- "next" : None ,
56
- "previous" : None ,
57
- "results" : [
58
- generate_oas_component (
59
- "catalogi" ,
60
- "schemas/Catalogus" ,
61
- url = "https://catalogus-1.nl/api/v1/catalogussen/111" ,
62
- volgnummer = 1 ,
63
- informatieobjecttypen = informatieobjecttypen1 ,
64
- ),
65
- ],
66
- },
67
- )
68
- m .get (
69
- "https://catalogus-1.nl/api/v1/informatieobjecttypen" ,
70
- status_code = 200 ,
71
- json = {
72
- "count" : 2 ,
73
- "next" : None ,
74
- "previous" : None ,
75
- "results" : informatieobjecttypen1 ,
76
- },
28
+ # create services for the docker-compose Open Zaak instance.
29
+ catalogi_service = ServiceFactory .create (
30
+ api_root = "http://localhost:8003/catalogi/api/v1/" ,
31
+ api_type = APITypes .ztc ,
32
+ auth_type = AuthTypes .zgw ,
33
+ client_id = "test_client_id" ,
34
+ secret = "test_secret_key" ,
77
35
)
78
-
79
- informatieobjecttypen2 = [
80
- generate_oas_component (
81
- "catalogi" ,
82
- "schemas/InformatieObjectType" ,
83
- url = "https://catalogus-2.nl/api/v1/informatieobjecttypen/111" ,
84
- catalogus = "https://catalogus-2.nl/api/v1/catalogussen/111" ,
85
- ),
86
- ]
87
- m .get (
88
- "https://catalogus-2.nl/api/v1/catalogussen" ,
89
- status_code = 200 ,
90
- json = {
91
- "count" : 1 ,
92
- "next" : None ,
93
- "previous" : None ,
94
- "results" : [
95
- generate_oas_component (
96
- "catalogi" ,
97
- "schemas/Catalogus" ,
98
- url = "https://catalogus-2.nl/api/v1/catalogussen/111" ,
99
- volgnummer = 1 ,
100
- informatieobjecttypen = informatieobjecttypen2 ,
101
- ),
102
- ],
103
- },
36
+ cls .zgw_group = ZGWApiGroupConfigFactory .create (
37
+ ztc_service = catalogi_service ,
104
38
)
105
- m .get (
106
- "https://catalogus-2.nl/api/v1/informatieobjecttypen" ,
107
- status_code = 200 ,
108
- json = {
109
- "count" : 1 ,
110
- "next" : None ,
111
- "previous" : None ,
112
- "results" : informatieobjecttypen2 ,
113
- },
39
+ cls .objects_api_group = ObjectsAPIGroupConfigFactory .create (
40
+ catalogi_service = catalogi_service ,
114
41
)
115
42
116
- def test_must_be_logged_in_as_admin (self , m ):
43
+ def test_must_be_logged_in_as_admin (self ):
117
44
user = UserFactory .create ()
118
45
url = reverse ("api:iotypen-list" )
119
46
self .client .force_login (user )
@@ -122,24 +49,22 @@ def test_must_be_logged_in_as_admin(self, m):
122
49
123
50
self .assertEqual (response .status_code , status .HTTP_403_FORBIDDEN )
124
51
125
- def test_retrieve_with_explicit_zgw_api_group (self , m ):
52
+ def test_retrieve_with_explicit_zgw_api_group (self ):
126
53
user = StaffUserFactory .create ()
127
54
url = furl (reverse ("api:iotypen-list" ))
128
- url .args ["zgw_api_group" ] = self .zgw_group2 .pk
55
+ url .args ["zgw_api_group" ] = self .zgw_group .pk
129
56
url .args ["registration_backend" ] = "zgw-create-zaak"
130
57
self .client .force_login (user )
131
58
132
- self .install_mocks (m )
133
-
134
59
response = self .client .get (url .url )
135
60
136
61
self .assertEqual (response .status_code , status .HTTP_200_OK )
137
62
138
63
data = response .json ()
139
64
140
- self .assertEqual (len (data ), 1 )
65
+ self .assertEqual (len (data ), 3 )
141
66
142
- def test_filter_with_invalid_zgw_group (self , m ):
67
+ def test_filter_with_invalid_zgw_group (self ):
143
68
user = StaffUserFactory .create ()
144
69
url = furl (reverse ("api:iotypen-list" ))
145
70
url .args ["zgw_api_group" ] = "INVALID"
@@ -150,7 +75,7 @@ def test_filter_with_invalid_zgw_group(self, m):
150
75
151
76
self .assertEqual (response .status_code , status .HTTP_400_BAD_REQUEST )
152
77
153
- def test_missing_zgw_api_group (self , m ):
78
+ def test_missing_zgw_api_group (self ):
154
79
user = StaffUserFactory .create ()
155
80
url = furl (reverse ("api:iotypen-list" ))
156
81
url .args ["registration_backend" ] = "zgw-create-zaak"
@@ -160,7 +85,7 @@ def test_missing_zgw_api_group(self, m):
160
85
161
86
self .assertEqual (response .status_code , status .HTTP_400_BAD_REQUEST )
162
87
163
- def test_missing_objects_api_group (self , m ):
88
+ def test_missing_objects_api_group (self ):
164
89
user = StaffUserFactory .create ()
165
90
url = furl (reverse ("api:iotypen-list" ))
166
91
url .args ["registration_backend" ] = "objects_api"
@@ -170,19 +95,17 @@ def test_missing_objects_api_group(self, m):
170
95
171
96
self .assertEqual (response .status_code , status .HTTP_400_BAD_REQUEST )
172
97
173
- def test_retrieve_with_explicit_objects_api_group (self , m ):
98
+ def test_retrieve_with_explicit_objects_api_group (self ):
174
99
user = StaffUserFactory .create ()
175
100
url = furl (reverse ("api:iotypen-list" ))
176
- url .args ["objects_api_group" ] = self .objects_api_group1 .pk
101
+ url .args ["objects_api_group" ] = self .objects_api_group .pk
177
102
url .args ["registration_backend" ] = "objects_api"
178
103
self .client .force_login (user )
179
104
180
- self .install_mocks (m )
181
-
182
105
response = self .client .get (url .url )
183
106
184
107
self .assertEqual (response .status_code , status .HTTP_200_OK )
185
108
186
109
data = response .json ()
187
110
188
- self .assertEqual (len (data ), 2 )
111
+ self .assertEqual (len (data ), 3 )
0 commit comments