comparison Plugins/WSI/Run.py @ 567:13169c8ddc96

added test_http_accept for WSI
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 12 Jul 2023 16:12:03 +0200
parents 933fe1bbce4f
children 6399d3a1cd30
comparison
equal deleted inserted replaced
566:fbd82be16f54 567:13169c8ddc96
359 s = spacings[str(4 ** i)].split('\\') 359 s = spacings[str(4 ** i)].split('\\')
360 self.assertEqual(2, len(s)) 360 self.assertEqual(2, len(s))
361 self.assertEqual(20.0 / 512.0 * (2.0 ** (3 - i)), float(s[0])) 361 self.assertEqual(20.0 / 512.0 * (2.0 ** (3 - i)), float(s[0]))
362 self.assertEqual(10.0 / 512.0 * (2.0 ** (3 - i)), float(s[1])) 362 self.assertEqual(10.0 / 512.0 * (2.0 ** (3 - i)), float(s[1]))
363 363
364
365 def test_http_accept(self):
366 # https://discourse.orthanc-server.org/t/orthanc-wsi-image-quality-issue/3331
367
368 def TestTransferSyntax(s, expected):
369 instance = DoGet(ORTHANC, '/series/%s' % s[0]) ['Instances'][0]
370 self.assertEqual(expected, DoGet(ORTHANC, '/instances/%s/metadata/TransferSyntax' % instance))
371
372 def TestDefaultAccept(s, mime):
373 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0])
374 self.assertEqual(mime, tile.format)
375
376 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], {
377 'Accept' : 'text/html,*/*'
378 })
379 self.assertEqual(mime, tile.format)
380
381 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], {
382 'Accept' : 'image/*,text/html'
383 })
384 self.assertEqual(mime, tile.format)
385
386 tile = DoGetRaw(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], headers = {
387 'Accept' : 'text/html'
388 })
389 self.assertEqual(406, int(tile[0]['status']))
390
391 def TestForceAccept(s):
392 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], {
393 'Accept' : 'image/jpeg'
394 })
395 self.assertEqual('JPEG', tile.format)
396
397 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], {
398 'Accept' : 'image/png'
399 })
400 self.assertEqual('PNG', tile.format)
401
402 tile = GetImage(ORTHANC, '/wsi/tiles/%s/0/0/0' % s[0], {
403 'Accept' : 'image/jp2'
404 })
405 self.assertEqual('JPEG2000', tile.format)
406
407
408 CallDicomizer([ GetDatabasePath('Lena.jpg') ])
409
410 s = DoGet(ORTHANC, '/series')
411 self.assertEqual(1, len(s))
412 TestTransferSyntax(s, '1.2.840.10008.1.2.4.50')
413 TestDefaultAccept(s, 'JPEG')
414 TestForceAccept(s)
415
416 DoDelete(ORTHANC, '/series/%s' % s[0])
417
418 CallDicomizer([ GetDatabasePath('Lena.jpg'), '--compression', 'none' ])
419 s = DoGet(ORTHANC, '/series')
420 self.assertEqual(1, len(s))
421
422 TestTransferSyntax(s, '1.2.840.10008.1.2')
423 TestDefaultAccept(s, 'PNG')
424 TestForceAccept(s)
425
426 DoDelete(ORTHANC, '/series/%s' % s[0])
427
428 CallDicomizer([ GetDatabasePath('Lena.jpg'), '--compression', 'jpeg2000' ])
429 s = DoGet(ORTHANC, '/series')
430 self.assertEqual(1, len(s))
431
432 TestTransferSyntax(s, '1.2.840.10008.1.2.4.90')
433 TestDefaultAccept(s, 'PNG')
434 TestForceAccept(s)
364 435
365 try: 436 try:
366 print('\nStarting the tests...') 437 print('\nStarting the tests...')
367 unittest.main(argv = [ sys.argv[0] ] + args.options) 438 unittest.main(argv = [ sys.argv[0] ] + args.options)
368 439