Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 523:767840cb4d3f
test /tools/labels
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 08 Apr 2023 10:13:11 +0200 |
parents | fce9e90acdc2 |
children | 0699890b9961 b60a0cc28c34 |
comparison
equal
deleted
inserted
replaced
522:fce9e90acdc2 | 523:767840cb4d3f |
---|---|
9329 self.assertEqual(upload1["ParentStudy"], upload2["ParentStudy"]) | 9329 self.assertEqual(upload1["ParentStudy"], upload2["ParentStudy"]) |
9330 self.assertEqual(2, len(changes2)) | 9330 self.assertEqual(2, len(changes2)) |
9331 self.assertEqual(changes1[0], changes2[0]) | 9331 self.assertEqual(changes1[0], changes2[0]) |
9332 | 9332 |
9333 def test_labels(self): | 9333 def test_labels(self): |
9334 def CheckAllLabels(expected): | |
9335 actual = DoGet(_REMOTE, '/tools/labels') | |
9336 self.assertEqual(len(actual), len(expected)) | |
9337 for i in expected: | |
9338 self.assertTrue(i in actual) | |
9339 for i in actual: | |
9340 self.assertTrue(i in expected) | |
9341 | |
9334 if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and | 9342 if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and |
9335 DoGet(_REMOTE, '/system') ['HasLabels']): | 9343 DoGet(_REMOTE, '/system') ['HasLabels']): |
9336 u = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID'] | 9344 u = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID'] |
9337 patient = DoGet(_REMOTE, '/instances/%s/patient' % u) ['ID'] | 9345 patient = DoGet(_REMOTE, '/instances/%s/patient' % u) ['ID'] |
9338 study = DoGet(_REMOTE, '/instances/%s/study' % u) ['ID'] | 9346 study = DoGet(_REMOTE, '/instances/%s/study' % u) ['ID'] |
9343 '/studies/%s' % study, | 9351 '/studies/%s' % study, |
9344 '/patients/%s' % patient ]: | 9352 '/patients/%s' % patient ]: |
9345 | 9353 |
9346 # no tags by default | 9354 # no tags by default |
9347 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) | 9355 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) |
9356 CheckAllLabels([]) | |
9348 | 9357 |
9349 # 404 if requesting a tag that does apply for a resource | 9358 # 404 if requesting a tag that does apply for a resource |
9350 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) | 9359 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) |
9351 | 9360 |
9352 # delete a non existing tag does not generate an error | 9361 # delete a non existing tag does not generate an error |
9358 | 9367 |
9359 # add a tag | 9368 # add a tag |
9360 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) | 9369 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) |
9361 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) | 9370 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) |
9362 self.assertEqual('hello', DoGet(_REMOTE, base) ['Labels'][0]) | 9371 self.assertEqual('hello', DoGet(_REMOTE, base) ['Labels'][0]) |
9372 CheckAllLabels([ 'hello' ]) | |
9363 | 9373 |
9364 # double tagging does not generate any error | 9374 # double tagging does not generate any error |
9365 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) | 9375 self.assertEqual('', DoPut(_REMOTE, '%s/labels/hello' % base)) |
9366 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base)) | 9376 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base)) |
9367 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) | 9377 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) |
9372 self.assertEqual('', DoGet(_REMOTE, '%s/labels/world' % base)) | 9382 self.assertEqual('', DoGet(_REMOTE, '%s/labels/world' % base)) |
9373 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base)) | 9383 self.assertEqual('', DoGet(_REMOTE, '%s/labels/hello' % base)) |
9374 self.assertEqual(2, len(DoGet(_REMOTE, base) ['Labels'])) | 9384 self.assertEqual(2, len(DoGet(_REMOTE, base) ['Labels'])) |
9375 self.assertIn(DoGet(_REMOTE, base) ['Labels'][0], ['hello', 'world']) | 9385 self.assertIn(DoGet(_REMOTE, base) ['Labels'][0], ['hello', 'world']) |
9376 self.assertIn(DoGet(_REMOTE, base) ['Labels'][1], ['hello', 'world']) | 9386 self.assertIn(DoGet(_REMOTE, base) ['Labels'][1], ['hello', 'world']) |
9377 | 9387 CheckAllLabels([ 'hello', 'world' ]) |
9378 # list all tags defined in the system (not only on this resource) | |
9379 | 9388 |
9380 # delete the first tag | 9389 # delete the first tag |
9381 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base)) | 9390 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base)) |
9382 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) | 9391 self.assertEqual(1, len(DoGet(_REMOTE, base) ['Labels'])) |
9383 self.assertEqual('world', DoGet(_REMOTE, base) ['Labels'][0]) | 9392 self.assertEqual('world', DoGet(_REMOTE, base) ['Labels'][0]) |
9384 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) | 9393 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) |
9394 CheckAllLabels([ 'world' ]) | |
9385 | 9395 |
9386 # delete the second tag | 9396 # delete the second tag |
9387 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/world' % base)) | 9397 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/world' % base)) |
9388 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) | 9398 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) |
9389 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/world' % base)) | 9399 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/world' % base)) |
9400 CheckAllLabels([ ]) | |
9390 | 9401 |
9391 # test all valid chars | 9402 # test all valid chars |
9392 self.assertEqual('', DoPut(_REMOTE, '%s/labels/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.' % base)) | 9403 VALID = r'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' |
9404 self.assertEqual('', DoPut(_REMOTE, '%s/labels/%s' % (base, VALID))) | |
9405 CheckAllLabels([ VALID ]) | |
9406 DoDelete(_REMOTE, '%s/labels/%s' % (base, VALID)) | |
9407 CheckAllLabels([ ]) | |
9408 | |
9393 else: | 9409 else: |
9394 print("Your database backend doesn't support labels") | 9410 print("Your database backend doesn't support labels") |
9395 | 9411 |
9396 def test_find_labels(self): | 9412 def test_find_labels(self): |
9397 def Execute(labels, constraint): | 9413 def Execute(labels, constraint): |