Mercurial > hg > orthanc-tests
diff 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 |
line wrap: on
line diff
--- 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")