Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 468:e1867aeb57e2
retries storescu if it succeeds while it should fail
author | Alain Mazy <am@osimis.io> |
---|---|
date | Wed, 20 Apr 2022 14:53:22 +0200 |
parents | 038fb852e2be |
children | c19d33c5defe |
comparison
equal
deleted
inserted
replaced
465:038fb852e2be | 468:e1867aeb57e2 |
---|---|
2421 | 2421 |
2422 def test_incoming_jpeg(self): | 2422 def test_incoming_jpeg(self): |
2423 # since this test fails regularly on CI, enable verbosity | 2423 # since this test fails regularly on CI, enable verbosity |
2424 DoPut(_REMOTE, '/tools/log-level', 'verbose') | 2424 DoPut(_REMOTE, '/tools/log-level', 'verbose') |
2425 | 2425 |
2426 def storescu(image, acceptUnknownSopClassUid): | 2426 def storescu(image, acceptUnknownSopClassUid, expectSuccess = True, retries = 1): |
2427 if acceptUnknownSopClassUid: | 2427 if acceptUnknownSopClassUid: |
2428 tmp = [ '-xf', GetDatabasePath('UnknownSopClassUid.cfg'), 'Default' ] | 2428 tmp = [ '-xf', GetDatabasePath('UnknownSopClassUid.cfg'), 'Default' ] |
2429 else: | 2429 else: |
2430 tmp = [ '-xs' ] | 2430 tmp = [ '-xs' ] |
2431 | 2431 |
2432 with open(os.devnull, 'w') as FNULL: | 2432 while retries > 0: |
2433 try: | 2433 retries -= 1 |
2434 subprocess.check_call([ FindExecutable('storescu') ] + tmp + | 2434 with open(os.devnull, 'w') as FNULL: |
2435 [ _REMOTE['Server'], str(_REMOTE['DicomPort']), | 2435 try: |
2436 GetDatabasePath(image) ], | 2436 subprocess.check_call([ FindExecutable('storescu') ] + tmp + |
2437 stderr = FNULL) | 2437 [ _REMOTE['Server'], str(_REMOTE['DicomPort']), |
2438 | 2438 GetDatabasePath(image) ], |
2439 except subprocess.CalledProcessError as e: | 2439 stderr = FNULL) |
2440 print('storescu failed with error code: %s' % str(e.returncode)) | 2440 |
2441 raise e | 2441 if expectSuccess: |
2442 return | |
2443 except subprocess.CalledProcessError as e: | |
2444 print('storescu failed with error code: %s' % str(e.returncode)) | |
2445 if not expectSuccess: | |
2446 raise e | |
2442 | 2447 |
2443 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) | 2448 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) |
2444 | 2449 |
2445 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0): | 2450 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0): |
2446 a = DoPut(_REMOTE, '/tools/accepted-transfer-syntaxes', [ | 2451 a = DoPut(_REMOTE, '/tools/accepted-transfer-syntaxes', [ |
2454 DoPut(_REMOTE, '/tools/unknown-sop-class-accepted', '0') | 2459 DoPut(_REMOTE, '/tools/unknown-sop-class-accepted', '0') |
2455 self.assertEqual(0, DoGet(_REMOTE, '/tools/unknown-sop-class-accepted')) | 2460 self.assertEqual(0, DoGet(_REMOTE, '/tools/unknown-sop-class-accepted')) |
2456 else: | 2461 else: |
2457 InstallLuaScriptFromPath(_REMOTE, 'Lua/TransferSyntaxDisable.lua') | 2462 InstallLuaScriptFromPath(_REMOTE, 'Lua/TransferSyntaxDisable.lua') |
2458 | 2463 |
2459 # the following line regularly fails on CI ! | 2464 # the following line regularly fails on CI because storescu still returns 0 although the C-Store fails !! |
2460 self.assertRaises(Exception, lambda: storescu('Knix/Loc/IM-0001-0001.dcm', False)) | 2465 self.assertRaises(Exception, lambda: storescu('Knix/Loc/IM-0001-0001.dcm', False, False, 3)) |
2461 self.assertRaises(Exception, lambda: storescu('UnknownSopClassUid.dcm', True)) | 2466 self.assertRaises(Exception, lambda: storescu('UnknownSopClassUid.dcm', True, False, 3)) |
2462 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) | 2467 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) |
2463 | 2468 |
2464 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0): | 2469 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0): |
2465 a = DoPut(_REMOTE, '/tools/accepted-transfer-syntaxes', '*', 'text/plain') | 2470 a = DoPut(_REMOTE, '/tools/accepted-transfer-syntaxes', '*', 'text/plain') |
2466 self.assertGreaterEqual(42, len(a)) | 2471 self.assertGreaterEqual(42, len(a)) |