@@ -49,6 +49,7 @@ def setUpTestData(cls):
49
49
50
50
def setUp (self ):
51
51
super ().setUp ()
52
+ self .client .cookies ["osf" ] = self ._user .user_uri
52
53
self ._mock_osf = MockOSF ()
53
54
self ._mock_osf .configure_user_role (
54
55
self ._user .user_uri , self ._resource .resource_uri , "admin"
@@ -108,26 +109,26 @@ def setUp(self):
108
109
def test_can_load (self ):
109
110
_addon_from_db = db .ConfiguredLinkAddon .objects .get (id = self ._addon .id )
110
111
self .assertEqual (self ._addon .target_id , _addon_from_db .target_id )
111
- self .assertEqual (self ._addon .resource_type , _addon_from_db .resource_type )
112
+ self .assertEqual (
113
+ self ._addon .resource_type .value , _addon_from_db .resource_type .value
114
+ )
112
115
113
116
def test_resource_type_property (self ):
114
117
self ._addon .resource_type = SupportedResourceTypes .Book
115
118
self ._addon .save ()
116
119
117
120
refreshed = db .ConfiguredLinkAddon .objects .get (id = self ._addon .id )
118
121
self .assertEqual (refreshed .resource_type , SupportedResourceTypes .Book )
119
- self .assertEqual (refreshed .resource_type .name , "Book" )
120
122
121
- self ._addon .resource_type = SupportedResourceTypes .Other
123
+ self ._addon .resource_type = SupportedResourceTypes .Dataset
122
124
self ._addon .save ()
123
125
124
126
refreshed = db .ConfiguredLinkAddon .objects .get (id = self ._addon .id )
125
- self .assertEqual (refreshed .resource_type , SupportedResourceTypes .Other )
126
- self .assertEqual (refreshed .resource_type .name , "Other" )
127
+ self .assertEqual (refreshed .resource_type , SupportedResourceTypes .Dataset )
127
128
128
129
def test_validator_valid_types (self ):
129
130
try :
130
- is_supported_resource_type (SupportedResourceTypes .Other .value )
131
+ is_supported_resource_type (SupportedResourceTypes .Dataset .value )
131
132
is_supported_resource_type (SupportedResourceTypes .Journal .value )
132
133
is_supported_resource_type (SupportedResourceTypes .Software .value )
133
134
except ValidationError :
@@ -138,14 +139,14 @@ def test_validator_invalid_type(self):
138
139
is_supported_resource_type (- 999 )
139
140
140
141
combined = (
141
- SupportedResourceTypes .Other .value | SupportedResourceTypes .Journal .value
142
+ SupportedResourceTypes .Dataset .value | SupportedResourceTypes .Journal .value
142
143
)
143
144
with self .assertRaises (ValidationError ):
144
145
is_supported_resource_type (combined )
145
146
146
147
def test_validation_on_save (self ):
147
148
self ._addon .int_resource_type = (
148
- SupportedResourceTypes .Other .value | SupportedResourceTypes .Journal .value
149
+ SupportedResourceTypes .Dataset .value | SupportedResourceTypes .Journal .value
149
150
)
150
151
with self .assertRaises (ValidationError ):
151
152
self ._addon .clean_fields ()
@@ -195,6 +196,7 @@ def setUp(self):
195
196
def test_get (self ):
196
197
request = get_test_request (user = self ._user )
197
198
request .session = {"user_reference_uri" : self ._user .user_uri }
199
+ request .COOKIES = {"osf" : self ._user .user_uri }
198
200
199
201
_resp = self ._view (
200
202
request ,
@@ -219,6 +221,7 @@ def test_get(self):
219
221
def test_owner_access (self ):
220
222
request = get_test_request (user = self ._user )
221
223
request .session = {"user_reference_uri" : self ._user .user_uri }
224
+ request .COOKIES = {"osf" : self ._user .user_uri }
222
225
223
226
_resp = self ._view (
224
227
request ,
@@ -232,6 +235,7 @@ def test_wrong_user(self):
232
235
233
236
request = get_test_request (user = _another_user )
234
237
request .session = {"user_reference_uri" : _another_user .user_uri }
238
+ request .COOKIES = {"osf" : _another_user .user_uri }
235
239
236
240
_resp = self ._view (
237
241
request ,
@@ -246,11 +250,12 @@ def setUpTestData(cls):
246
250
cls ._user = _factories .UserReferenceFactory ()
247
251
cls ._resource = _factories .ResourceReferenceFactory ()
248
252
cls ._authorized_account = _factories .AuthorizedLinkAccountFactory (
249
- account_owner = cls ._user ,
250
- authorized_capabilities = AddonCapabilities .ACCESS ,
253
+ account_owner = cls ._user
251
254
)
252
255
253
256
def setUp (self ):
257
+ super ().setUp ()
258
+ self .client .cookies ["osf" ] = self ._user .user_uri
254
259
self ._mock_osf = MockOSF ()
255
260
self ._mock_osf .configure_user_role (
256
261
self ._user .user_uri , self ._resource .resource_uri , "admin"
@@ -262,66 +267,65 @@ def setUp(self):
262
267
"addon_service.configured_addon.link.models.ConfiguredLinkAddon.target_url" ,
263
268
mock_target_url ,
264
269
)
265
- self .instance_patcher = patch (
266
- "addon_service.addon_imp.instantiation.get_link_addon_instance" ,
267
- mock_get_link_addon_instance ,
268
- )
269
- self .instance_blocking_patcher = patch (
270
+ self .target_url_patcher .start ()
271
+ self .addCleanup (self .target_url_patcher .stop )
272
+
273
+ self .instantiate_patcher = patch (
270
274
"addon_service.addon_imp.instantiation.get_link_addon_instance__blocking" ,
271
275
mock_get_link_addon_instance ,
272
276
)
277
+ self .instantiate_patcher .start ()
278
+ self .addCleanup (self .instantiate_patcher .stop )
273
279
274
- self .target_url_patcher .start ()
275
- self .instance_patcher .start ()
276
- self .instance_blocking_patcher .start ()
277
-
278
- self .addCleanup (self .target_url_patcher .stop )
279
- self .addCleanup (self .instance_patcher .stop )
280
- self .addCleanup (self .instance_blocking_patcher .stop )
280
+ @property
281
+ def _list_path (self ):
282
+ return reverse ("configured-link-addons-list" )
281
283
282
284
def test_create_addon (self ):
283
- self ._mock_osf .configure_user_role (
284
- self ._user .user_uri , self ._resource .resource_uri , "admin"
285
- )
286
- self ._mock_osf .configure_assumed_caller (self ._user .user_uri )
285
+ _initial_count = db .ConfiguredLinkAddon .objects .count ()
287
286
288
- request_data = {
289
- "data" : {
290
- "type" : "configured-link-addons" ,
291
- "attributes" : {
292
- "target_id" : "some-target-id" ,
293
- "resource_type" : "Other" ,
294
- "connected_capabilities" : ["ACCESS" ],
295
- "authorized_resource_uri" : self ._resource .resource_uri ,
296
- },
297
- "relationships" : {
298
- "base_account" : {
299
- "data" : {
300
- "type" : "authorized-link-accounts" ,
301
- "id" : str (self ._authorized_account .id ),
302
- }
303
- },
304
- "authorized_resource" : {
305
- "data" : {
306
- "type" : "resource-references" ,
307
- "id" : str (self ._resource .id ),
308
- }
309
- },
310
- },
311
- }
312
- }
287
+ _target_id = "12345"
288
+ _resource_type = SupportedResourceTypes .Dataset
289
+
290
+ import json
313
291
314
292
_resp = self .client .post (
315
- reverse ("configured-link-addons-list" ),
316
- request_data ,
317
- format = "vnd.api+json" ,
293
+ self ._list_path ,
294
+ data = json .dumps (
295
+ {
296
+ "data" : {
297
+ "type" : "configured-link-addons" ,
298
+ "attributes" : {
299
+ "target_id" : _target_id ,
300
+ "resource_type" : _resource_type .name ,
301
+ "connected_capabilities" : [AddonCapabilities .ACCESS .name ],
302
+ "authorized_resource_uri" : self ._resource .resource_uri ,
303
+ },
304
+ "relationships" : {
305
+ "base_account" : {
306
+ "data" : {
307
+ "id" : str (self ._authorized_account .id ),
308
+ "type" : "authorized-link-accounts" ,
309
+ }
310
+ },
311
+ "authorized_resource" : {
312
+ "data" : {
313
+ "id" : self ._resource .resource_uri ,
314
+ "type" : "resource-references" ,
315
+ }
316
+ },
317
+ },
318
+ }
319
+ }
320
+ ),
321
+ content_type = "application/vnd.api+json" ,
318
322
)
319
323
320
- self .assertEqual (_resp . status_code , HTTPStatus . CREATED )
321
-
322
- self . assertEqual ( _resp . data [ "resource_type" ], SupportedResourceTypes . Other . name )
324
+ self .assertEqual (
325
+ _resp . status_code , HTTPStatus . CREATED , f"Response content: { _resp . content } "
326
+ )
323
327
324
- addon = db .ConfiguredLinkAddon .objects .get ( id = _resp . data [ "id" ] )
325
- self . assertEqual ( addon . target_id , "some-target- id" )
326
- self .assertEqual (addon . resource_type , SupportedResourceTypes . Other )
327
- self .assertEqual (addon .resource_type .name , "Other" )
328
+ self . assertEqual ( db .ConfiguredLinkAddon .objects .count (), _initial_count + 1 )
329
+ _created = db . ConfiguredLinkAddon . objects . get ( id = _resp . data [ " id"] )
330
+ self .assertEqual (_created . target_id , _target_id )
331
+ self .assertEqual (_created .resource_type .value , _resource_type . value )
0 commit comments