# HG changeset patch # User Sebastien Jodogne # Date 1788538418 -7200 # Node ID e585dc076aa5f39630070cfb7cdf5423a8990a7d # Parent abc7e0de479fd549e337855502550aae73821353 wsi: added test_update_layer diff -r abc7e0de479f -r e585dc076aa5 Plugins/WSI/Annotations.py --- 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)