# HG changeset patch # User Sebastien Jodogne # Date 1680685241 -7200 # Node ID 43a323de0b02f9e4ba55b370599028b866c26ffa # Parent 692f2956ddab29a3d2d761adebaa27ba4129ac1b added test_find_labels diff -r 692f2956ddab -r 43a323de0b02 Tests/Tests.py --- a/Tests/Tests.py Wed Apr 05 10:01:59 2023 +0200 +++ b/Tests/Tests.py Wed Apr 05 11:00:41 2023 +0200 @@ -9354,3 +9354,93 @@ self.assertRaises(Exception, lambda: DoGet(_REMOTE, '%s/labels/hello' % base)) else: print("Your database backend doesn't support labels") + + def test_find_labels(self): + def Execute(withLabels, withoutLabels): + return DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { }, + 'WithLabels' : withLabels, + 'WithoutLabels' : withoutLabels, }) + + if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and + DoGet(_REMOTE, '/system') ['HasLabels']): + u = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID'] + + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(0, len(Execute([ 'a' ], []))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(1, len(Execute([], [ 'c' ]))) + self.assertEqual(1, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoPut(_REMOTE, '/instances/%s/labels/a' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(1, len(Execute([ 'a' ], []))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(1, len(Execute([], [ 'c' ]))) + self.assertEqual(1, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(1, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoPut(_REMOTE, '/instances/%s/labels/b' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(1, len(Execute([ 'a' ], []))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(1, len(Execute([], [ 'c' ]))) + self.assertEqual(1, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(1, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoPut(_REMOTE, '/instances/%s/labels/d' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(1, len(Execute([ 'a' ], []))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(1, len(Execute([], [ 'c' ]))) + self.assertEqual(0, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(1, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoPut(_REMOTE, '/instances/%s/labels/c' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(1, len(Execute([ 'a' ], []))) + self.assertEqual(1, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(0, len(Execute([], [ 'c' ]))) + self.assertEqual(0, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoDelete(_REMOTE, '/instances/%s/labels/b' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(1, len(Execute([ 'a' ], []))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(0, len(Execute([], [ 'c' ]))) + self.assertEqual(0, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + DoDelete(_REMOTE, '/instances/%s/labels/a' % u) + self.assertEqual(1, len(Execute([], []))) + self.assertEqual(0, len(Execute([ 'a' ], []))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], []))) + self.assertEqual(0, len(Execute([], [ 'c' ]))) + self.assertEqual(0, len(Execute([], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a' ], [ 'c', 'd' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c' ]))) + self.assertEqual(0, len(Execute([ 'a', 'b' ], [ 'c', 'd' ]))) + + else: + print("Your database backend doesn't support labels")