comparison Tests/Tests.py @ 521:8114f67e0f7f

labels: doc
author Alain Mazy <am@osimis.io>
date Fri, 07 Apr 2023 15:04:59 +0200
parents b1991073e4d1
children fce9e90acdc2
comparison
equal deleted inserted replaced
520:a06d0a45c62f 521:8114f67e0f7f
9340 9340
9341 for base in [ '/instances/%s' % u, 9341 for base in [ '/instances/%s' % u,
9342 '/series/%s' % series, 9342 '/series/%s' % series,
9343 '/studies/%s' % study, 9343 '/studies/%s' % study,
9344 '/patients/%s' % patient ]: 9344 '/patients/%s' % patient ]:
9345
9346 # no tags by default
9345 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) 9347 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels']))
9348
9349 # 404 if requesting a tag that does apply for a resource
9346 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) 9350 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base))
9351
9352 # delete a non existing tag does not generate an error
9347 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base)) 9353 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base))
9348 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) 9354 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels']))
9349 self.assertRaises(Exception, lambda: DoPut(_REMOTE, '%s/labels/@' % base)) # Not an alphanumeric label 9355
9356 # Not an alphanumeric label -> 400
9357 self.assertRaises(Exception, lambda: DoPut(_REMOTE, '%s/labels/@' % base))
9358
9359 # add a tag
9350 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) 9360 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base))
9351 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) # Ignore double tagging 9361 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels']))
9362 self.assertEqual('hello', DoGet(_REMOTE, base) ['Labels'][0])
9363
9364 # double tagging does not generate any error
9365 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base))
9352 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base)) 9366 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base))
9367 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels']))
9368 self.assertEqual('hello', DoGet(_REMOTE, base) ['Labels'][0])
9369
9370 # add a second tag
9371 self.assertEqual('', DoPut(_REMOTE, '%s/labels/world' % base))
9372 self.assertEqual('', DoGet(_REMOTE, '%s/labels/world' % base))
9373 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base))
9374 self.assertEqual(2, len(DoGet(_REMOTE, base) ['Labels']))
9375 self.assertIn(DoGet(_REMOTE, base) ['Labels'][0], ['hello', 'world'])
9376 self.assertIn(DoGet(_REMOTE, base) ['Labels'][1], ['hello', 'world'])
9377
9378 # list all tags defined in the system (not only on this resource)
9379
9380 # delete the first tag
9353 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base)) 9381 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base))
9382 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels']))
9383 self.assertEqual('world', DoGet(_REMOTE, base) ['Labels'][0])
9384 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base))
9385
9386 # delete the second tag
9387 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/world' % base))
9354 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) 9388 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels']))
9355 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) 9389 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/world' % base))
9390
9391 # test all valid chars
9356 self.assertEqual('', DoPut(_REMOTE, '%s/labels/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.' % base)) 9392 self.assertEqual('', DoPut(_REMOTE, '%s/labels/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.' % base))
9357 else: 9393 else:
9358 print("Your database backend doesn't support labels") 9394 print("Your database backend doesn't support labels")
9359 9395
9360 def test_find_labels(self): 9396 def test_find_labels(self):