comparison Tests/Tests.py @ 463:29aaa3df718f

added verbosity and retries for test sometimes failing on CI
author Alain Mazy <am@osimis.io>
date Thu, 07 Apr 2022 09:46:24 +0200
parents 8121c8aab919
children 216231c18c2e
comparison
equal deleted inserted replaced
460:281a599f5338 463:29aaa3df718f
206 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize']) 206 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize'])
207 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize']) 207 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize'])
208 208
209 systemInfo = DoGet(_REMOTE, '/system') 209 systemInfo = DoGet(_REMOTE, '/system')
210 if systemInfo["Version"] == "mainline": 210 if systemInfo["Version"] == "mainline":
211 print "Skipping version checks since you're currently in mainline" 211 print("Skipping version checks since you're currently in mainline")
212 return 212 return
213 213
214 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 8, 6)) 214 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 8, 6))
215 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 8, 7)) 215 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 8, 7))
216 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 7, 6)) 216 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 7, 6))
2409 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/StudyDescription' % b).strip()) 2409 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/StudyDescription' % b).strip())
2410 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/Modality' % b).strip()) 2410 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/Modality' % b).strip())
2411 2411
2412 2412
2413 def test_incoming_jpeg(self): 2413 def test_incoming_jpeg(self):
2414 # since this test fails regularly on CI, enable verbosity
2415 DoPut(_REMOTE, '/tools/log-level', 'verbose')
2416
2414 def storescu(image, acceptUnknownSopClassUid): 2417 def storescu(image, acceptUnknownSopClassUid):
2415 if acceptUnknownSopClassUid: 2418 if acceptUnknownSopClassUid:
2416 tmp = [ '-xf', GetDatabasePath('UnknownSopClassUid.cfg'), 'Default' ] 2419 tmp = [ '-xf', GetDatabasePath('UnknownSopClassUid.cfg'), 'Default' ]
2417 else: 2420 else:
2418 tmp = [ '-xs' ] 2421 tmp = [ '-xs' ]
2437 DoPut(_REMOTE, '/tools/unknown-sop-class-accepted', '0') 2440 DoPut(_REMOTE, '/tools/unknown-sop-class-accepted', '0')
2438 self.assertEqual(0, DoGet(_REMOTE, '/tools/unknown-sop-class-accepted')) 2441 self.assertEqual(0, DoGet(_REMOTE, '/tools/unknown-sop-class-accepted'))
2439 else: 2442 else:
2440 InstallLuaScriptFromPath(_REMOTE, 'Lua/TransferSyntaxDisable.lua') 2443 InstallLuaScriptFromPath(_REMOTE, 'Lua/TransferSyntaxDisable.lua')
2441 2444
2445 # the following line regularly fails on CI !
2442 self.assertRaises(Exception, lambda: storescu('Knix/Loc/IM-0001-0001.dcm', False)) 2446 self.assertRaises(Exception, lambda: storescu('Knix/Loc/IM-0001-0001.dcm', False))
2443 self.assertRaises(Exception, lambda: storescu('UnknownSopClassUid.dcm', True)) 2447 self.assertRaises(Exception, lambda: storescu('UnknownSopClassUid.dcm', True))
2444 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) 2448 self.assertEqual(0, len(DoGet(_REMOTE, '/patients')))
2445 2449
2446 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0): 2450 if IsOrthancVersionAbove(_REMOTE, 1, 9, 0):
2454 DoPost(_REMOTE, '/tools/execute-script', "print('All special transfer syntaxes are now accepted')") 2458 DoPost(_REMOTE, '/tools/execute-script', "print('All special transfer syntaxes are now accepted')")
2455 storescu('Knix/Loc/IM-0001-0001.dcm', False) 2459 storescu('Knix/Loc/IM-0001-0001.dcm', False)
2456 storescu('UnknownSopClassUid.dcm', True) 2460 storescu('UnknownSopClassUid.dcm', True)
2457 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) 2461 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
2458 2462
2463 # set back normal verbosity
2464 DoPut(_REMOTE, '/tools/log-level', 'default')
2459 2465
2460 def test_storescu_jpeg(self): 2466 def test_storescu_jpeg(self):
2461 self.assertEqual(0, len(DoGet(_REMOTE, '/exports')['Exports'])) 2467 self.assertEqual(0, len(DoGet(_REMOTE, '/exports')['Exports']))
2462 2468
2463 knixStudy = 'b9c08539-26f93bde-c81ab0d7-bffaf2cb-a4d0bdd0' 2469 knixStudy = 'b9c08539-26f93bde-c81ab0d7-bffaf2cb-a4d0bdd0'
3715 CompareMainDicomTag('hello', a, 'study', 'StudyDescription') 3721 CompareMainDicomTag('hello', a, 'study', 'StudyDescription')
3716 CompareMainDicomTag('world', a, 'series', 'SeriesDescription') 3722 CompareMainDicomTag('world', a, 'series', 'SeriesDescription')
3717 CompareMainDicomTag('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', a, '', 'SOPInstanceUID') 3723 CompareMainDicomTag('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', a, '', 'SOPInstanceUID')
3718 3724
3719 def test_httpClient_lua(self): 3725 def test_httpClient_lua(self):
3726 retries = 3
3727 result = ''
3728
3720 with open(GetDatabasePath('Lua/HttpClient.lua'), 'r') as f: 3729 with open(GetDatabasePath('Lua/HttpClient.lua'), 'r') as f:
3721 result = DoPost(_REMOTE, '/tools/execute-script', f.read(), 'application/lua') 3730 # retry since this test sometimes fails if httpbin.org is unresponsive
3731 while retries > 0 and not ('OK' in result):
3732 result = DoPost(_REMOTE, '/tools/execute-script', f.read(), 'application/lua')
3733 retries -= 1
3722 3734
3723 self.assertIn('OK', result) 3735 self.assertIn('OK', result)
3724 3736
3725 3737
3726 def test_bitbucket_issue_44(self): 3738 def test_bitbucket_issue_44(self):