Mercurial > hg > orthanc-tests
comparison Plugins/WebDav/Run.py @ 339:44ab919be2e9
cont webdav tests
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 14 Oct 2020 14:05:33 +0200 |
parents | edaeb57bf01f |
children | 60775134a406 |
comparison
equal
deleted
inserted
replaced
338:edaeb57bf01f | 339:44ab919be2e9 |
---|---|
27 import pprint | 27 import pprint |
28 import re | 28 import re |
29 import sys | 29 import sys |
30 import unittest | 30 import unittest |
31 | 31 |
32 # https://stackoverflow.com/a/49336105/881731 | |
33 if ((3, 0) <= sys.version_info <= (3, 9)): | |
34 from urllib.parse import unquote | |
35 elif ((2, 0) <= sys.version_info <= (2, 9)): | |
36 from urlparse import unquote | |
37 | |
32 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'Tests')) | 38 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'Tests')) |
33 from Toolbox import * | 39 from Toolbox import * |
34 | 40 |
35 | 41 |
36 ## | 42 ## |
198 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-uids/'))) | 204 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-uids/'))) |
199 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) | 205 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) |
200 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | 206 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
201 | 207 |
202 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] | 208 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] |
203 instance = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) | 209 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) |
204 studyUid = instance['StudyInstanceUID'] | 210 studyUid = tags['StudyInstanceUID'] |
205 seriesUid = instance['SeriesInstanceUID'] | 211 seriesUid = tags['SeriesInstanceUID'] |
206 sopUid = instance['SOPInstanceUID'] | 212 sopUid = tags['SOPInstanceUID'] |
207 | 213 |
208 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', False))) | 214 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', False))) |
209 self.assertEqual(1, len(ListFiles('/webdav/by-uids/%s/' % studyUid, False))) | 215 self.assertEqual(1, len(ListFiles('/webdav/by-uids/%s/' % studyUid, False))) |
210 self.assertEqual(2, len(ListFiles('/webdav/by-uids/%s/%s/' % (studyUid, seriesUid), False))) | 216 self.assertEqual(2, len(ListFiles('/webdav/by-uids/%s/%s/' % (studyUid, seriesUid), False))) |
211 | 217 |
238 ['MainDicomTags']['SeriesInstanceUID']) | 244 ['MainDicomTags']['SeriesInstanceUID']) |
239 | 245 |
240 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | 246 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
241 WEBDAV.delete('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) | 247 WEBDAV.delete('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) |
242 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | 248 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
243 | 249 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) |
250 | |
251 | |
252 def test_by_patients(self): | |
253 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) | |
254 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', True))) | |
255 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
256 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) | |
257 | |
258 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-patients/'))) | |
259 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
260 | |
261 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] | |
262 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) | |
263 patient = '%s - %s' % (tags['PatientID'], tags['PatientName']) | |
264 study = '%s - %s' % (tags['StudyDate'], tags['StudyDescription']) | |
265 series = '%s - %s' % (tags['Modality'], tags['SeriesDescription']) | |
266 self.assertEqual('ozp00SjY2xG - KNIX', patient) | |
267 self.assertEqual('20070101 - Knee (R)', study) | |
268 self.assertEqual('MR - AX. FSE PD', series) | |
269 | |
270 self.assertEqual(1, len(ListFiles('/webdav/by-dates/', True))) | |
271 self.assertEqual(1, len(ListFiles('/webdav/by-patients/', True))) | |
272 self.assertEqual(1, len(ListFiles('/webdav/by-studies/', True))) | |
273 self.assertEqual(3, len(ListFiles('/webdav/by-uids/', True))) | |
274 | |
275 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', False))) | |
276 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/'))) | |
277 self.assertEqual(0, len(ListFiles('/webdav/by-patients/%s' % patient, False))) | |
278 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/%s' % patient))) | |
279 self.assertEqual(0, len(ListFiles('/webdav/by-patients/%s/%s' % (patient, study), False))) | |
280 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/%s/%s' % (patient, study)))) | |
281 | |
282 folder = '/webdav/by-patients/%s/%s/%s' % (patient, study, series) | |
283 self.assertEqual(1, len(ListFiles(folder, False))) | |
284 self.assertEqual(2, len(WEBDAV.ls(folder))) | |
285 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(ListFiles(folder, False) [0])) | |
286 | |
287 a = DownloadFile('%s/%s.dcm' % (folder, i)) | |
288 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: | |
289 self.assertEqual(a, f.read()) | |
290 | |
291 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
292 WEBDAV.delete('%s/%s.dcm' % (folder, i)) | |
293 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
294 | |
295 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) | |
296 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', True))) | |
297 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
298 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) | |
299 | |
300 | |
301 def test_by_studies(self): | |
302 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
303 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-patients/'))) | |
304 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
305 | |
306 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] | |
307 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) | |
308 study = '%s - %s - %s' % (tags['PatientID'], tags['PatientName'], tags['StudyDescription']) | |
309 series = '%s - %s' % (tags['Modality'], tags['SeriesDescription']) | |
310 self.assertEqual('ozp00SjY2xG - KNIX - Knee (R)', study) | |
311 self.assertEqual('MR - AX. FSE PD', series) | |
312 | |
313 self.assertEqual(1, len(ListFiles('/webdav/by-studies/', True))) | |
314 | |
315 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', False))) | |
316 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-studies/'))) | |
317 self.assertEqual(0, len(ListFiles('/webdav/by-studies/%s' % study, False))) | |
318 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-studies/%s' % study))) | |
319 | |
320 folder = '/webdav/by-studies/%s/%s' % (study, series) | |
321 self.assertEqual(1, len(ListFiles(folder, False))) | |
322 self.assertEqual(2, len(WEBDAV.ls(folder))) | |
323 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(ListFiles(folder, False) [0])) | |
324 | |
325 a = DownloadFile('%s/%s.dcm' % (folder, i)) | |
326 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: | |
327 self.assertEqual(a, f.read()) | |
328 | |
329 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
330 WEBDAV.delete('%s/%s.dcm' % (folder, i)) | |
331 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
332 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
333 | |
334 | |
335 | |
336 | |
244 try: | 337 try: |
245 print('\nStarting the tests...') | 338 print('\nStarting the tests...') |
246 unittest.main(argv = [ sys.argv[0] ] + args.options) | 339 unittest.main(argv = [ sys.argv[0] ] + args.options) |
247 | 340 |
248 finally: | 341 finally: |