Mercurial > hg > orthanc-tests
changeset 962:e585dc076aa5
wsi: added test_update_layer
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Fri, 04 Sep 2026 18:13:38 +0200 |
| parents | abc7e0de479f |
| children | 9866889be864 |
| files | Plugins/WSI/Annotations.py |
| diffstat | 1 files changed, 40 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Plugins/WSI/Annotations.py Fri Sep 04 17:56:09 2026 +0200 +++ b/Plugins/WSI/Annotations.py Fri Sep 04 18:13:38 2026 +0200 @@ -24,14 +24,11 @@ import argparse +import copy import os import pprint -import re -import subprocess import sys -import tempfile import unittest -from shutil import copyfile sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'Tests')) from Toolbox import * @@ -259,6 +256,45 @@ self.assertEqual(0, GetNumberOfLayers('hello')) + def test_update_layer(self): + user = Execute('/wsi/api/create-standard-user', { 'name' : 'world' }) + self.assertEqual(2, len(user)) + self.assertEqual('world', user['name']) + self.assertEqual(1, user['type']) # This corresponds to int(OrthancWSI::UserId::Type_Standard) in C++ code + + a = Execute('/wsi/api/create-user-layer') + + layers = Execute('/wsi/api/list-user-layers') + self.assertEqual(json.dumps(a), json.dumps(layers['user-layers'][0])) + + Execute('/wsi/api/save-user-layer', { 'layer' : a }) + self.assertEqual(json.dumps(a), json.dumps(layers['user-layers'][0])) # No change + + b = copy.copy(a) + b['id'] = 'nope' + self.assertRaises(Exception, lambda: Execute('/wsi/api/save-user-layer', { 'layer' : b })) + + self.assertEqual(json.dumps(a), json.dumps(layers['user-layers'][0])) # No change + + b = { + 'id' : a['id'], + 'color' : '#112233', + 'name' : 'Hello', + 'public' : True, + 'shared_with' : [ user ], + 'visible' : False, + } + + Execute('/wsi/api/save-user-layer', { 'layer' : b }) + + layers = Execute('/wsi/api/list-user-layers') + self.assertEqual(json.dumps(b, sort_keys=True), + json.dumps(layers['user-layers'][0], sort_keys=True)) + + + b['color'] = 'invalid' + self.assertRaises(Exception, lambda: Execute('/wsi/api/save-user-layer', { 'layer' : b })) + try: print('\nStarting the tests...') unittest.main(argv = [ sys.argv[0] ] + args.options)
