77from typing import Dict , Any , List
88from uuid_extensions import uuid7str
99import copy
10+ from utils .auth_token import rbac_auth_token_factory
1011
1112
1213class SignedDocument :
@@ -66,8 +67,9 @@ def comment_templates() -> List[str]:
6667
6768# return a Proposal document which is already published to the cat-gateway
6869@pytest .fixture
69- def proposal_doc_factory (proposal_templates ):
70+ def proposal_doc_factory (proposal_templates , rbac_auth_token_factory ):
7071 def __proposal_doc_factory () -> SignedDocument :
72+ rbac_auth_token = rbac_auth_token_factory ()
7173 proposal_doc_id = uuid7str ()
7274 proposal_metadata_json = {
7375 "id" : proposal_doc_id ,
@@ -85,7 +87,7 @@ def __proposal_doc_factory() -> SignedDocument:
8587 proposal_json = json .load (proposal_json_file )
8688
8789 doc = SignedDocument (proposal_metadata_json , proposal_json )
88- resp = document .put (data = doc .hex ())
90+ resp = document .put (data = doc .hex (), token = rbac_auth_token )
8991 assert (
9092 resp .status_code == 201
9193 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
@@ -97,8 +99,9 @@ def __proposal_doc_factory() -> SignedDocument:
9799
98100# return a Comment document which is already published to the cat-gateway
99101@pytest .fixture
100- def comment_doc_factory (proposal_doc_factory , comment_templates ) -> SignedDocument :
102+ def comment_doc_factory (proposal_doc_factory , comment_templates , rbac_auth_token_factory ) -> SignedDocument :
101103 def __comment_doc_factory () -> SignedDocument :
104+ rbac_auth_token = rbac_auth_token_factory ()
102105 proposal_doc = proposal_doc_factory ()
103106 comment_doc_id = uuid7str ()
104107 comment_metadata_json = {
@@ -115,7 +118,7 @@ def __comment_doc_factory() -> SignedDocument:
115118 comment_json = json .load (comment_json_file )
116119
117120 doc = SignedDocument (comment_metadata_json , comment_json )
118- resp = document .put (data = doc .hex ())
121+ resp = document .put (data = doc .hex (), token = rbac_auth_token )
119122 assert (
120123 resp .status_code == 201
121124 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
@@ -128,9 +131,10 @@ def __comment_doc_factory() -> SignedDocument:
128131# return a submission action document.
129132@pytest .fixture
130133def submission_action_factory (
131- proposal_doc_factory , comment_templates
134+ proposal_doc_factory , comment_templates , rbac_auth_token_factory
132135) -> SignedDocument :
133136 def __submission_action_factory () -> SignedDocument :
137+ rbac_auth_token = rbac_auth_token_factory ()
134138 proposal_doc = proposal_doc_factory ()
135139 submission_action_id = uuid7str ()
136140 sub_action_metadata_json = {
@@ -148,7 +152,7 @@ def __submission_action_factory() -> SignedDocument:
148152 comment_json = json .load (comment_json_file )
149153
150154 doc = SignedDocument (sub_action_metadata_json , comment_json )
151- resp = document .put (data = doc .hex ())
155+ resp = document .put (data = doc .hex (), token = rbac_auth_token )
152156 assert (
153157 resp .status_code == 201
154158 ), f"Failed to publish sub_action: { resp .status_code } - { resp .text } "
@@ -158,41 +162,43 @@ def __submission_action_factory() -> SignedDocument:
158162 return __submission_action_factory
159163
160164
161- def test_templates (proposal_templates , comment_templates ):
165+ def test_templates (proposal_templates , comment_templates , rbac_auth_token_factory ):
166+ rbac_auth_token = rbac_auth_token_factory ()
162167 templates = proposal_templates + comment_templates
163168 for template_id in templates :
164- resp = document .get (document_id = template_id )
169+ resp = document .get (document_id = template_id , token = rbac_auth_token )
165170 assert (
166171 resp .status_code == 200
167172 ), f"Failed to get document: { resp .status_code } - { resp .text } for id { template_id } "
168173
169174
170- def test_proposal_doc (proposal_doc_factory ):
175+ def test_proposal_doc (proposal_doc_factory , rbac_auth_token_factory ):
176+ rbac_auth_token = rbac_auth_token_factory ()
171177 proposal_doc = proposal_doc_factory ()
172178 proposal_doc_id = proposal_doc .metadata ["id" ]
173179
174180 # Put a proposal document again
175- resp = document .put (data = proposal_doc .hex ())
181+ resp = document .put (data = proposal_doc .hex (), token = rbac_auth_token )
176182 assert (
177183 resp .status_code == 204
178184 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
179185
180186 # Get the proposal document
181- resp = document .get (document_id = proposal_doc_id )
187+ resp = document .get (document_id = proposal_doc_id , token = rbac_auth_token )
182188 assert (
183189 resp .status_code == 200
184190 ), f"Failed to get document: { resp .status_code } - { resp .text } "
185191
186192 # Post a signed document with filter ID
187- resp = document .post ("/index" , filter = {"id" : {"eq" : proposal_doc_id }})
193+ resp = document .post ("/index" , filter = {"id" : {"eq" : proposal_doc_id }}, token = rbac_auth_token )
188194 assert (
189195 resp .status_code == 200
190196 ), f"Failed to post document: { resp .status_code } - { resp .text } "
191197
192198 # Put a proposal document with same ID different content
193199 invalid_doc = proposal_doc .copy ()
194200 invalid_doc .content ["setup" ]["title" ]["title" ] = "another title"
195- resp = document .put (data = invalid_doc .hex ())
201+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
196202 assert (
197203 resp .status_code == 422
198204 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
@@ -201,15 +207,15 @@ def test_proposal_doc(proposal_doc_factory):
201207 new_doc = proposal_doc .copy ()
202208 new_doc .metadata ["ver" ] = uuid7str ()
203209 new_doc .content ["setup" ]["title" ]["title" ] = "another title"
204- resp = document .put (data = new_doc .hex ())
210+ resp = document .put (data = new_doc .hex (), token = rbac_auth_token )
205211 assert (
206212 resp .status_code == 201
207213 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
208214
209215 # Put a proposal document with the not known template field
210216 invalid_doc = proposal_doc .copy ()
211217 invalid_doc .metadata ["template" ] = {"id" : uuid7str ()}
212- resp = document .put (data = invalid_doc .hex ())
218+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
213219 assert (
214220 resp .status_code == 422
215221 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
@@ -218,32 +224,33 @@ def test_proposal_doc(proposal_doc_factory):
218224 invalid_doc = proposal_doc .copy ()
219225 invalid_doc .metadata ["ver" ] = uuid7str ()
220226 invalid_doc .content = {}
221- resp = document .put (data = invalid_doc .hex ())
227+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
222228 assert (
223229 resp .status_code == 422
224230 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
225231
226232 logger .info ("Proposal document test successful." )
227233
228234
229- def test_comment_doc (comment_doc_factory ):
235+ def test_comment_doc (comment_doc_factory , rbac_auth_token_factory ):
236+ rbac_auth_token = rbac_auth_token_factory ()
230237 comment_doc = comment_doc_factory ()
231238 comment_doc_id = comment_doc .metadata ["id" ]
232239
233240 # Put a comment document again
234- resp = document .put (data = comment_doc .hex ())
241+ resp = document .put (data = comment_doc .hex (), token = rbac_auth_token )
235242 assert (
236243 resp .status_code == 204
237244 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
238245
239246 # Get the comment document
240- resp = document .get (document_id = comment_doc_id )
247+ resp = document .get (document_id = comment_doc_id , token = rbac_auth_token )
241248 assert (
242249 resp .status_code == 200
243250 ), f"Failed to get document: { resp .status_code } - { resp .text } "
244251
245252 # Post a signed document with filter ID
246- resp = document .post ("/index" , filter = {"id" : {"eq" : comment_doc_id }})
253+ resp = document .post ("/index" , filter = {"id" : {"eq" : comment_doc_id }}, token = rbac_auth_token )
247254 assert (
248255 resp .status_code == 200
249256 ), f"Failed to post document: { resp .status_code } - { resp .text } "
@@ -252,72 +259,74 @@ def test_comment_doc(comment_doc_factory):
252259 invalid_doc = comment_doc .copy ()
253260 invalid_doc .metadata ["ver" ] = uuid7str ()
254261 invalid_doc .content = {}
255- resp = document .put (data = invalid_doc .hex ())
262+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
256263 assert (
257264 resp .status_code == 422
258265 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
259266
260267 # Put a comment document referencing to the not known proposal
261268 invalid_doc = comment_doc .copy ()
262269 invalid_doc .metadata ["ref" ] = {"id" : uuid7str ()}
263- resp = document .put (data = invalid_doc .hex ())
270+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
264271 assert (
265272 resp .status_code == 422
266273 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
267274
268275 logger .info ("Comment document test successful." )
269276
270277
271- def test_submission_action (submission_action_factory ):
278+ def test_submission_action (submission_action_factory , rbac_auth_token_factory ):
279+ rbac_auth_token = rbac_auth_token_factory ()
272280 submission_action = submission_action_factory ()
273281 submission_action_id = submission_action .metadata ["id" ]
274282
275283 # Put a submission action document
276- resp = document .put (data = submission_action .hex ())
284+ resp = document .put (data = submission_action .hex (), token = rbac_auth_token )
277285 assert (
278286 resp .status_code == 204
279287 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
280288
281289 # Get the submission action doc
282- resp = document .get (document_id = submission_action_id )
290+ resp = document .get (document_id = submission_action_id , token = rbac_auth_token )
283291 assert (
284292 resp .status_code == 200
285293 ), f"Failed to get document: { resp .status_code } - { resp .text } "
286294
287295 # Post a signed document with filter ID
288- resp = document .post ("/index" , filter = {"id" : {"eq" : submission_action_id }})
296+ resp = document .post ("/index" , filter = {"id" : {"eq" : submission_action_id }}, token = rbac_auth_token )
289297 assert (
290298 resp .status_code == 200
291299 ), f"Failed to post document: { resp .status_code } - { resp .text } "
292300
293301 # Submission action document MUST have a ref
294302 invalid_doc = submission_action .copy ()
295303 invalid_doc .metadata ["ref" ] = {}
296- resp = document .put (data = invalid_doc .hex ())
304+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
297305 assert (
298306 resp .status_code == 422
299307 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
300308
301309 # Put a submission action document referencing an unknown proposal
302310 invalid_doc = submission_action .copy ()
303311 invalid_doc .metadata ["ref" ] = {"id" : uuid7str ()}
304- resp = document .put (data = invalid_doc .hex ())
312+ resp = document .put (data = invalid_doc .hex (), token = rbac_auth_token )
305313 assert (
306314 resp .status_code == 422
307315 ), f"Publish document, expected 422 Unprocessable Content: { resp .status_code } - { resp .text } "
308316
309317 logger .info ("Submission action document test successful." )
310318
311319
312- def test_document_index_endpoint (proposal_doc_factory ):
320+ def test_document_index_endpoint (proposal_doc_factory , rbac_auth_token_factory ):
321+ rbac_auth_token = rbac_auth_token_factory ()
313322 # submiting 10 proposal documents
314323 total_amount = 10
315324 first_proposal = proposal_doc_factory ()
316325 for _ in range (total_amount - 1 ):
317326 doc = first_proposal .copy ()
318327 # keep the same id, but different version
319328 doc .metadata ["ver" ] = uuid7str ()
320- resp = document .put (data = doc .hex ())
329+ resp = document .put (data = doc .hex (), token = rbac_auth_token )
321330 assert (
322331 resp .status_code == 201
323332 ), f"Failed to publish document: { resp .status_code } - { resp .text } "
@@ -328,6 +337,7 @@ def test_document_index_endpoint(proposal_doc_factory):
328337 resp = document .post (
329338 f"/index?limit={ limit } &page={ page } " ,
330339 filter = filter ,
340+ token = rbac_auth_token
331341 )
332342 assert (
333343 resp .status_code == 200
@@ -342,6 +352,7 @@ def test_document_index_endpoint(proposal_doc_factory):
342352 resp = document .post (
343353 f"/index?limit={ limit } &page={ page } " ,
344354 filter = filter ,
355+ token = rbac_auth_token
345356 )
346357 assert (
347358 resp .status_code == 200
@@ -355,6 +366,7 @@ def test_document_index_endpoint(proposal_doc_factory):
355366 resp = document .post (
356367 f"/index?limit={ total_amount } " ,
357368 filter = filter ,
369+ token = rbac_auth_token
358370 )
359371 assert (
360372 resp .status_code == 200
@@ -368,6 +380,7 @@ def test_document_index_endpoint(proposal_doc_factory):
368380 resp = document .post (
369381 "/index?page=92233720368547759" ,
370382 filter = {},
383+ token = rbac_auth_token
371384 )
372385 assert (
373386 resp .status_code == 412
0 commit comments