comparison Tests/Tests.py @ 518:43a323de0b02

added test_find_labels
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 05 Apr 2023 11:00:41 +0200
parents 692f2956ddab
children b1991073e4d1
comparison
equal deleted inserted replaced
517:692f2956ddab 518:43a323de0b02
9352 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base)) 9352 self.assertEqual('', DoDelete(_REMOTE, '%s/labels/hello' % base))
9353 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels'])) 9353 self.assertEqual(0, len(DoGet(_REMOTE, base) ['Labels']))
9354 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) 9354 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base))
9355 else: 9355 else:
9356 print("Your database backend doesn't support labels") 9356 print("Your database backend doesn't support labels")
9357
9358 def test_find_labels(self):
9359 def Execute(withLabels, withoutLabels):
9360 return DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance',
9361 'Query' : { },
9362 'WithLabels' : withLabels,
9363 'WithoutLabels' : withoutLabels, })
9364
9365 if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and
9366 DoGet(_REMOTE, '/system') ['HasLabels']):
9367 u = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID']
9368
9369 self.assertEqual(1, len(Execute([], [])))
9370 self.assertEqual(0, len(Execute([ 'a' ], [])))
9371 self.assertEqual(0, len(Execute([ 'a', 'b' ], [])))
9372 self.assertEqual(1, len(Execute([], [ 'c' ])))
9373 self.assertEqual(1, len(Execute([], [ 'c', 'd' ])))
9374 self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ])))
9375 self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ])))
9376 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ])))
9377 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9378
9379 DoPut(_REMOTE, '/instances/%s/labels/a' % u)
9380 self.assertEqual(1, len(Execute([], [])))
9381 self.assertEqual(1, len(Execute([ 'a' ], [])))
9382 self.assertEqual(0, len(Execute([ 'a', 'b' ], [])))
9383 self.assertEqual(1, len(Execute([], [ 'c' ])))
9384 self.assertEqual(1, len(Execute([], [ 'c', 'd' ])))
9385 self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ])))
9386 self.assertEqual(1, len(Execute([ 'a' ], [ 'c', 'd' ])))
9387 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ])))
9388 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9389
9390 DoPut(_REMOTE, '/instances/%s/labels/b' % u)
9391 self.assertEqual(1, len(Execute([], [])))
9392 self.assertEqual(1, len(Execute([ 'a' ], [])))
9393 self.assertEqual(1, len(Execute([ 'a', 'b' ], [])))
9394 self.assertEqual(1, len(Execute([], [ 'c' ])))
9395 self.assertEqual(1, len(Execute([], [ 'c', 'd' ])))
9396 self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ])))
9397 self.assertEqual(1, len(Execute([ 'a' ], [ 'c', 'd' ])))
9398 self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c' ])))
9399 self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9400
9401 DoPut(_REMOTE, '/instances/%s/labels/d' % u)
9402 self.assertEqual(1, len(Execute([], [])))
9403 self.assertEqual(1, len(Execute([ 'a' ], [])))
9404 self.assertEqual(1, len(Execute([ 'a', 'b' ], [])))
9405 self.assertEqual(1, len(Execute([], [ 'c' ])))
9406 self.assertEqual(0, len(Execute([], [ 'c', 'd' ])))
9407 self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ])))
9408 self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ])))
9409 self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c' ])))
9410 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9411
9412 DoPut(_REMOTE, '/instances/%s/labels/c' % u)
9413 self.assertEqual(1, len(Execute([], [])))
9414 self.assertEqual(1, len(Execute([ 'a' ], [])))
9415 self.assertEqual(1, len(Execute([ 'a', 'b' ], [])))
9416 self.assertEqual(0, len(Execute([], [ 'c' ])))
9417 self.assertEqual(0, len(Execute([], [ 'c', 'd' ])))
9418 self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ])))
9419 self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ])))
9420 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ])))
9421 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9422
9423 DoDelete(_REMOTE, '/instances/%s/labels/b' % u)
9424 self.assertEqual(1, len(Execute([], [])))
9425 self.assertEqual(1, len(Execute([ 'a' ], [])))
9426 self.assertEqual(0, len(Execute([ 'a', 'b' ], [])))
9427 self.assertEqual(0, len(Execute([], [ 'c' ])))
9428 self.assertEqual(0, len(Execute([], [ 'c', 'd' ])))
9429 self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ])))
9430 self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ])))
9431 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ])))
9432 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9433
9434 DoDelete(_REMOTE, '/instances/%s/labels/a' % u)
9435 self.assertEqual(1, len(Execute([], [])))
9436 self.assertEqual(0, len(Execute([ 'a' ], [])))
9437 self.assertEqual(0, len(Execute([ 'a', 'b' ], [])))
9438 self.assertEqual(0, len(Execute([], [ 'c' ])))
9439 self.assertEqual(0, len(Execute([], [ 'c', 'd' ])))
9440 self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ])))
9441 self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ])))
9442 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ])))
9443 self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ])))
9444
9445 else:
9446 print("Your database backend doesn't support labels")