@@ -234,14 +234,46 @@ def test_get_tags(get_user, user, thing, message, error_code):
234234 user = get_user (user ), uid = uuid .UUID (thing )
235235 )
236236 assert len (list (thing_tags .all ())) == 1
237- assert list (thing_tags .all ())[0 ].key == "Test Key"
238- assert list (thing_tags .all ())[0 ].value == "Test Value"
237+ assert list (thing_tags .all ())[0 ].key in ["Test Public Key" , "Test Private Key" ]
238+ assert list (thing_tags .all ())[0 ].value in ["Test Public Value" , "Test Private Value" ]
239+
240+
241+ @pytest .mark .parametrize ("user, workspace, thing, length, max_queries" , [
242+ ("owner" , None , None , 2 , 2 ),
243+ ("owner" , "b27c51a0-7374-462d-8a53-d97d47176c10" , None , 1 , 2 ),
244+ ("owner" , None , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 1 , 2 ),
245+ ("owner" , "6e0deaf2-a92b-421b-9ece-86783265596f" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
246+ ("admin" , None , None , 2 , 2 ),
247+ ("admin" , "b27c51a0-7374-462d-8a53-d97d47176c10" , None , 1 , 2 ),
248+ ("admin" , None , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 1 , 2 ),
249+ ("admin" , "6e0deaf2-a92b-421b-9ece-86783265596f" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
250+ ("editor" , None , None , 2 , 2 ),
251+ ("editor" , "b27c51a0-7374-462d-8a53-d97d47176c10" , None , 1 , 2 ),
252+ ("editor" , None , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 1 , 2 ),
253+ ("editor" , "6e0deaf2-a92b-421b-9ece-86783265596f" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
254+ ("viewer" , None , None , 2 , 2 ),
255+ ("viewer" , "b27c51a0-7374-462d-8a53-d97d47176c10" , None , 1 , 2 ),
256+ ("viewer" , None , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 1 , 2 ),
257+ ("viewer" , "6e0deaf2-a92b-421b-9ece-86783265596f" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
258+ ("anonymous" , None , None , 1 , 2 ),
259+ ("anonymous" , "b27c51a0-7374-462d-8a53-d97d47176c10" , None , 0 , 2 ),
260+ ("anonymous" , None , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
261+ ("anonymous" , "6e0deaf2-a92b-421b-9ece-86783265596f" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , 0 , 2 ),
262+ ])
263+ def test_get_tag_keys (django_assert_num_queries , get_user , user , workspace , thing , length , max_queries ):
264+ with django_assert_num_queries (max_queries ):
265+ tag_key_list = thing_service .get_tag_keys (
266+ user = get_user (user ), workspace_id = uuid .UUID (workspace ) if workspace else None ,
267+ thing_id = uuid .UUID (thing ) if thing else None
268+ )
269+ assert len (tag_key_list ) == length
270+ assert (isinstance (str , tag_key ) for tag_key in tag_key_list )
239271
240272
241273@pytest .mark .parametrize ("user, thing, tag, message, error_code" , [
242274 ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "New Key" , "value" : "New Value" }, None , None ),
243275 ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "New Key" , "value" : "Test Value" }, None , None ),
244- ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, "Tag already exists" , 400 ),
276+ ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, "Tag already exists" , 400 ),
245277 ("owner" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "New Key" , "value" : "New Value" }, None , None ),
246278 ("owner" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "New Key" , "value" : "New Value" }, None , None ),
247279 ("owner" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "New Key" , "value" : "New Value" }, None , None ),
@@ -280,28 +312,28 @@ def test_add_tag(get_user, user, thing, tag, message, error_code):
280312
281313
282314@pytest .mark .parametrize ("user, thing, tag, message, error_code" , [
283- ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
284- ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
315+ ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, None , None ),
316+ ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, None , None ),
285317 ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "New Key" , "value" : "New Value" }, "Tag does not exist" , 404 ),
286- ("owner" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
287- ("owner" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
288- ("owner" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
289- ("admin" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
290- ("admin" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
291- ("admin" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
292- ("admin" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
293- ("editor" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
294- ("editor" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
295- ("editor" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
296- ("editor" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" , "value" : "New Value" }, None , None ),
297- ("viewer" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
298- ("viewer" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
299- ("viewer" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
300- ("viewer" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
301- ("anonymous" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
302- ("anonymous" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
303- ("anonymous" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
304- ("anonymous" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
318+ ("owner" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
319+ ("owner" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
320+ ("owner" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
321+ ("admin" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, None , None ),
322+ ("admin" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
323+ ("admin" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
324+ ("admin" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
325+ ("editor" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, None , None ),
326+ ("editor" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
327+ ("editor" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
328+ ("editor" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" , "value" : "New Value" }, None , None ),
329+ ("viewer" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
330+ ("viewer" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
331+ ("viewer" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
332+ ("viewer" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
333+ ("anonymous" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" , "value" : "New Value" }, "You do not have permission" , 403 ),
334+ ("anonymous" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
335+ ("anonymous" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
336+ ("anonymous" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" , "value" : "New Value" }, "Thing does not exist" , 404 ),
305337])
306338def test_update_tag (get_user , user , thing , tag , message , error_code ):
307339 if error_code :
@@ -321,28 +353,28 @@ def test_update_tag(get_user, user, thing, tag, message, error_code):
321353
322354
323355@pytest .mark .parametrize ("user, thing, tag, message, error_code" , [
324- ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, None , None ),
325- ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, None , None ),
356+ ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, None , None ),
357+ ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, None , None ),
326358 ("owner" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "New Key" }, "Tag does not exist" , 404 ),
327- ("owner" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" }, None , None ),
328- ("owner" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" }, None , None ),
329- ("owner" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" }, None , None ),
330- ("admin" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, None , None ),
331- ("admin" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" }, None , None ),
332- ("admin" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" }, None , None ),
333- ("admin" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" }, None , None ),
334- ("editor" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, None , None ),
335- ("editor" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" }, None , None ),
336- ("editor" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" }, None , None ),
337- ("editor" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" }, None , None ),
338- ("viewer" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, "You do not have permission" , 403 ),
339- ("viewer" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" }, "You do not have permission" , 403 ),
340- ("viewer" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" }, "You do not have permission" , 403 ),
341- ("viewer" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" }, "You do not have permission" , 403 ),
342- ("anonymous" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Key" }, "You do not have permission" , 403 ),
343- ("anonymous" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Key" }, "Thing does not exist" , 404 ),
344- ("anonymous" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Key" }, "Thing does not exist" , 404 ),
345- ("anonymous" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Key" }, "Thing does not exist" , 404 ),
359+ ("owner" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" }, None , None ),
360+ ("owner" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" }, None , None ),
361+ ("owner" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" }, None , None ),
362+ ("admin" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, None , None ),
363+ ("admin" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" }, None , None ),
364+ ("admin" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" }, None , None ),
365+ ("admin" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" }, None , None ),
366+ ("editor" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, None , None ),
367+ ("editor" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" }, None , None ),
368+ ("editor" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" }, None , None ),
369+ ("editor" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" }, None , None ),
370+ ("viewer" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, "You do not have permission" , 403 ),
371+ ("viewer" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" }, "You do not have permission" , 403 ),
372+ ("viewer" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" }, "You do not have permission" , 403 ),
373+ ("viewer" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" }, "You do not have permission" , 403 ),
374+ ("anonymous" , "3b7818af-eff7-4149-8517-e5cad9dc22e1" , {"key" : "Test Public Key" }, "You do not have permission" , 403 ),
375+ ("anonymous" , "76dadda5-224b-4e1f-8570-e385bd482b2d" , {"key" : "Test Private Key" }, "Thing does not exist" , 404 ),
376+ ("anonymous" , "92a3a099-f2d3-40ec-9b0e-d25ae8bf59b7" , {"key" : "Test Private Key" }, "Thing does not exist" , 404 ),
377+ ("anonymous" , "819260c8-2543-4046-b8c4-7431243ed7c5" , {"key" : "Test Private Key" }, "Thing does not exist" , 404 ),
346378])
347379def test_remove_tag (get_user , user , thing , tag , message , error_code ):
348380 if error_code :
0 commit comments