comparison Tests/Tests.py @ 508:ae493446336a

fix tests for missing archives
author Alain Mazy <am@osimis.io>
date Fri, 03 Mar 2023 10:57:09 +0100
parents 1596865844ff
children 17a74118d73a
comparison
equal deleted inserted replaced
507:1596865844ff 508:ae493446336a
176 def setUp(self): 176 def setUp(self):
177 if (sys.version_info >= (3, 0)): 177 if (sys.version_info >= (3, 0)):
178 # Remove annoying warnings about unclosed socket in Python 3 178 # Remove annoying warnings about unclosed socket in Python 3
179 import warnings 179 import warnings
180 warnings.simplefilter("ignore", ResourceWarning) 180 warnings.simplefilter("ignore", ResourceWarning)
181
182 print('running : %s' % self.id())
181 183
182 DropOrthanc(_LOCAL) 184 DropOrthanc(_LOCAL)
183 DropOrthanc(_REMOTE) 185 DropOrthanc(_REMOTE)
184 UninstallLuaCallbacks(_REMOTE) 186 UninstallLuaCallbacks(_REMOTE)
185 187
4656 4658
4657 kneeT1 = '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' 4659 kneeT1 = '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285'
4658 kneeT2 = 'bbf7a453-0d34251a-03663b55-46bb31b9-ffd74c59' 4660 kneeT2 = 'bbf7a453-0d34251a-03663b55-46bb31b9-ffd74c59'
4659 4661
4660 job = MonitorJob2(_REMOTE, lambda: DoPost 4662 job = MonitorJob2(_REMOTE, lambda: DoPost
4661 (_REMOTE, '/studies/%s/archive' % kneeT1, { 4663 (_REMOTE, '/series/%s/archive' % kneeT1, {
4662 'Synchronous' : False 4664 'Synchronous' : False
4663 })) 4665 }))
4664 4666
4665 z = GetArchive(_REMOTE, '/jobs/%s/archive' % job) 4667 z = GetArchive(_REMOTE, '/jobs/%s/archive' % job)
4666 self.assertEqual(1, len(z.namelist())) 4668 self.assertEqual(1, len(z.namelist()))
4670 self.assertEqual(0, info['Content']['ArchiveSizeMB']) # New in Orthanc 1.8.1 4672 self.assertEqual(0, info['Content']['ArchiveSizeMB']) # New in Orthanc 1.8.1
4671 self.assertEqual(1, info['Content']['InstancesCount']) 4673 self.assertEqual(1, info['Content']['InstancesCount'])
4672 self.assertEqual(0, info['Content']['UncompressedSizeMB']) 4674 self.assertEqual(0, info['Content']['UncompressedSizeMB'])
4673 4675
4674 job2 = MonitorJob2(_REMOTE, lambda: DoPost 4676 job2 = MonitorJob2(_REMOTE, lambda: DoPost
4675 (_REMOTE, '/studies/%s/media' % kneeT1, { 4677 (_REMOTE, '/series/%s/media' % kneeT1, {
4676 'Synchronous' : False 4678 'Synchronous' : False
4677 })) 4679 }))
4678 4680
4679 # The archive from the first job has been replaced by the 4681 # The archive from the first job has been replaced by the
4680 # archive from second job (as MediaArchiveSize == 1) 4682 # archive from second job (as MediaArchiveSize == 1)
4952 self.assertEqual(seq + 6, c['Last']) 4954 self.assertEqual(seq + 6, c['Last'])
4953 4955
4954 4956
4955 def test_bitbucket_issue_124(self): 4957 def test_bitbucket_issue_124(self):
4956 a = UploadInstance(_REMOTE, 'Issue124.dcm')['ID'] 4958 a = UploadInstance(_REMOTE, 'Issue124.dcm')['ID']
4957 4959 s = DoGet(_REMOTE, '/instances/%s/series' % a)['ID']
4958 z = GetArchive(_REMOTE, '/patients/%s/media' % a) 4960
4961 z = GetArchive(_REMOTE, '/series/%s/media' % s)
4959 self.assertEqual(2, len(z.namelist())) 4962 self.assertEqual(2, len(z.namelist()))
4960 4963
4961 4964
4962 def test_invalid_findscp(self): 4965 def test_invalid_findscp(self):
4963 UploadInstance(_REMOTE, 'DummyCT.dcm') 4966 UploadInstance(_REMOTE, 'DummyCT.dcm')
9219 im = GetImage(_REMOTE, uri) 9222 im = GetImage(_REMOTE, uri)
9220 self.assertEqual('RGB', im.mode) 9223 self.assertEqual('RGB', im.mode)
9221 self.assertEqual(1475, im.size[0]) 9224 self.assertEqual(1475, im.size[0])
9222 self.assertEqual(1475, im.size[1]) 9225 self.assertEqual(1475, im.size[1])
9223 self.assertEqual('c684b0050dc2523041240bf2d26dc85e', ComputeMD5(DoGet(_REMOTE, uri))) 9226 self.assertEqual('c684b0050dc2523041240bf2d26dc85e', ComputeMD5(DoGet(_REMOTE, uri)))
9224
9225
9226 def test_nonexistent_archives(self):
9227 def GetNumberOfFiles(uri):
9228 archive = DoGet(_REMOTE, uri)
9229 z = zipfile.ZipFile(StringIO(archive), 'r')
9230 return len(z.namelist())
9231
9232 def IsExistent(uri):
9233 try:
9234 DoGet(_REMOTE, uri)
9235 return True
9236 except:
9237 return False
9238
9239 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
9240 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID']
9241 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID']
9242 series = DoGet(_REMOTE, '/instances/%s/series' % instance) ['ID']
9243
9244 self.assertEqual(1, GetNumberOfFiles('/patients/%s/archive' % patient))
9245 self.assertEqual(2, GetNumberOfFiles('/patients/%s/media' % patient))
9246 self.assertEqual(1, GetNumberOfFiles('/studies/%s/archive' % study))
9247 self.assertEqual(2, GetNumberOfFiles('/studies/%s/media' % study))
9248 self.assertEqual(1, GetNumberOfFiles('/series/%s/archive' % series))
9249 self.assertEqual(2, GetNumberOfFiles('/series/%s/media' % series))
9250
9251 self.assertTrue(IsExistent('/patients/%s/archive' % patient))
9252 self.assertFalse(IsExistent('/studies/%s/archive' % patient))
9253 self.assertFalse(IsExistent('/series/%s/archive' % patient))
9254
9255 self.assertFalse(IsExistent('/patients/%s/archive' % study))
9256 self.assertTrue(IsExistent('/studies/%s/archive' % study))
9257 self.assertFalse(IsExistent('/series/%s/archive' % study))
9258
9259 self.assertFalse(IsExistent('/patients/%s/archive' % series))
9260 self.assertFalse(IsExistent('/studies/%s/archive' % series))
9261 self.assertTrue(IsExistent('/series/%s/archive' % series))
9262
9263 self.assertTrue(IsExistent('/patients/%s/media' % patient))
9264 self.assertFalse(IsExistent('/studies/%s/media' % patient))
9265 self.assertFalse(IsExistent('/series/%s/media' % patient))
9266
9267 self.assertFalse(IsExistent('/patients/%s/media' % study))
9268 self.assertTrue(IsExistent('/studies/%s/media' % study))
9269 self.assertFalse(IsExistent('/series/%s/media' % study))
9270
9271 self.assertFalse(IsExistent('/patients/%s/media' % series))
9272 self.assertFalse(IsExistent('/studies/%s/media' % series))
9273 self.assertTrue(IsExistent('/series/%s/media' % series))