Mercurial > hg > orthanc-tests
diff 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 |
line wrap: on
line diff
--- a/Plugins/WebDav/Run.py Wed Oct 14 19:55:26 2020 +0200 +++ b/Plugins/WebDav/Run.py Thu Oct 15 17:34:01 2020 +0200 @@ -158,6 +158,9 @@ self.assertEqual(0, patients[0].size) self.assertEqual('', patients[0].contenttype) + self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/nope')) + self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/by-uids')) + def test_upload(self): self.assertEqual(0, len(ListFiles('/webdav/uploads/', True))) @@ -221,6 +224,11 @@ self.assertTrue(('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) in content) self.assertTrue(('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) in content) + # Deleting the virtual files "study|series.json" has no + # effect, but is needed for recursive DELETE in some file explorers + WEBDAV.delete('/webdav/by-uids/%s/study.json' % studyUid) + WEBDAV.delete('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) + info = GetFileInfo('/webdav/by-uids/%s/study.json' % studyUid) self.assertEqual(info.contenttype, 'application/json') @@ -377,6 +385,31 @@ self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) + + def test_delete_folder(self): + # These deletes should have no effect + UploadInstance(ORTHANC, 'DummyCT.dcm') + self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) + WEBDAV.delete('/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/study.json') + 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') + WEBDAV.delete('/webdav/by-dates/2007/2007-02') + WEBDAV.delete('/webdav/by-dates/2006') + self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) + + for path in [ + '/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', + '/webdav/by-patients/ozp00SjY2xG - KNIX/20070101 - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', + '/webdav/by-studies/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', + '/webdav/by-dates/2007/2007-01/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', + ]: + tokens = path.split('/') + for i in range(4, len(tokens) + 1): + p = '/'.join(tokens[0:i]) + UploadInstance(ORTHANC, 'DummyCT.dcm') + self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) + WEBDAV.delete(p) + self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) + try: print('\nStarting the tests...')