comparison Plugins/WebDav/Run.py @ 342:bf8369ea3ff1

more tests of webdav
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Oct 2020 17:34:01 +0200
parents 60775134a406
children 203af01474b6
comparison
equal deleted inserted replaced
341:66a36befb208 342:bf8369ea3ff1
156 self.assertEqual(1, len(patients)) 156 self.assertEqual(1, len(patients))
157 self.assertEqual(patients[0].name, '/webdav/by-patients/') 157 self.assertEqual(patients[0].name, '/webdav/by-patients/')
158 self.assertEqual(0, patients[0].size) 158 self.assertEqual(0, patients[0].size)
159 self.assertEqual('', patients[0].contenttype) 159 self.assertEqual('', patients[0].contenttype)
160 160
161 self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/nope'))
162 self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/by-uids'))
163
161 164
162 def test_upload(self): 165 def test_upload(self):
163 self.assertEqual(0, len(ListFiles('/webdav/uploads/', True))) 166 self.assertEqual(0, len(ListFiles('/webdav/uploads/', True)))
164 167
165 uploads = WEBDAV.ls('/webdav/uploads/') 168 uploads = WEBDAV.ls('/webdav/uploads/')
219 self.assertEqual(3, len(content)) 222 self.assertEqual(3, len(content))
220 self.assertTrue(('/webdav/by-uids/%s/study.json' % studyUid) in content) 223 self.assertTrue(('/webdav/by-uids/%s/study.json' % studyUid) in content)
221 self.assertTrue(('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) in content) 224 self.assertTrue(('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) in content)
222 self.assertTrue(('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) in content) 225 self.assertTrue(('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) in content)
223 226
227 # Deleting the virtual files "study|series.json" has no
228 # effect, but is needed for recursive DELETE in some file explorers
229 WEBDAV.delete('/webdav/by-uids/%s/study.json' % studyUid)
230 WEBDAV.delete('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid))
231
224 info = GetFileInfo('/webdav/by-uids/%s/study.json' % studyUid) 232 info = GetFileInfo('/webdav/by-uids/%s/study.json' % studyUid)
225 self.assertEqual(info.contenttype, 'application/json') 233 self.assertEqual(info.contenttype, 'application/json')
226 234
227 info = GetFileInfo('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) 235 info = GetFileInfo('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid))
228 self.assertEqual(info.contenttype, 'application/json') 236 self.assertEqual(info.contenttype, 'application/json')
375 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) 383 self.assertEqual(1, len(DoGet(ORTHANC, '/instances')))
376 WEBDAV.delete('%s/%s.dcm' % (folder, i)) 384 WEBDAV.delete('%s/%s.dcm' % (folder, i))
377 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) 385 self.assertEqual(0, len(DoGet(ORTHANC, '/instances')))
378 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) 386 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True)))
379 387
388
389 def test_delete_folder(self):
390 # These deletes should have no effect
391 UploadInstance(ORTHANC, 'DummyCT.dcm')
392 self.assertEqual(1, len(DoGet(ORTHANC, '/instances')))
393 WEBDAV.delete('/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/study.json')
394 WEBDAV.delete('/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/1.2.840.113619.2.176.2025.1499492.7391.1171285944.394/series.json')
395 WEBDAV.delete('/webdav/by-dates/2007/2007-02')
396 WEBDAV.delete('/webdav/by-dates/2006')
397 self.assertEqual(1, len(DoGet(ORTHANC, '/instances')))
398
399 for path in [
400 '/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/1.2.840.113619.2.176.2025.1499492.7391.1171285944.394/1.2.840.113619.2.176.2025.1499492.7040.1171286242.109.dcm',
401 '/webdav/by-patients/ozp00SjY2xG - KNIX/20070101 - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm',
402 '/webdav/by-studies/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm',
403 '/webdav/by-dates/2007/2007-01/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm',
404 ]:
405 tokens = path.split('/')
406 for i in range(4, len(tokens) + 1):
407 p = '/'.join(tokens[0:i])
408 UploadInstance(ORTHANC, 'DummyCT.dcm')
409 self.assertEqual(1, len(DoGet(ORTHANC, '/instances')))
410 WEBDAV.delete(p)
411 self.assertEqual(0, len(DoGet(ORTHANC, '/instances')))
412
380 413
381 try: 414 try:
382 print('\nStarting the tests...') 415 print('\nStarting the tests...')
383 unittest.main(argv = [ sys.argv[0] ] + args.options) 416 unittest.main(argv = [ sys.argv[0] ] + args.options)
384 417