comparison Tests/Tests.py @ 342:bf8369ea3ff1

more tests of webdav
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Oct 2020 17:34:01 +0200
parents 66a36befb208
children bed0ab3a1391
comparison
equal deleted inserted replaced
341:66a36befb208 342:bf8369ea3ff1
5328 while True: 5328 while True:
5329 s = DoGet(_REMOTE, '/storage-commitment/%s' % uid) 5329 s = DoGet(_REMOTE, '/storage-commitment/%s' % uid)
5330 if s['Status'] != 'Pending': 5330 if s['Status'] != 'Pending':
5331 return s 5331 return s
5332 else: 5332 else:
5333 time.sleep(0.1) 5333 time.sleep(0.01)
5334 5334
5335 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') 5335 instance = UploadInstance(_REMOTE, 'DummyCT.dcm')
5336 sopClassUid = '1.2.840.10008.5.1.4.1.1.4' 5336 sopClassUid = '1.2.840.10008.5.1.4.1.1.4'
5337 sopInstanceUid = '1.2.840.113619.2.176.2025.1499492.7040.1171286242.109' 5337 sopInstanceUid = '1.2.840.113619.2.176.2025.1499492.7040.1171286242.109'
5338 5338
5412 while True: 5412 while True:
5413 s = DoGet(_REMOTE, '/storage-commitment/%s' % uid) 5413 s = DoGet(_REMOTE, '/storage-commitment/%s' % uid)
5414 if s['Status'] != 'Pending': 5414 if s['Status'] != 'Pending':
5415 return s 5415 return s
5416 else: 5416 else:
5417 time.sleep(0.1) 5417 time.sleep(0.01)
5418 5418
5419 i = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID'] 5419 i = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID']
5420 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) 5420 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
5421 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) 5421 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
5422 5422
6015 6015
6016 6016
6017 def test_webdav(self): 6017 def test_webdav(self):
6018 self.assertRaises(Exception, lambda: DoPropFind(_REMOTE, '/webdav/', 2)) 6018 self.assertRaises(Exception, lambda: DoPropFind(_REMOTE, '/webdav/', 2))
6019 6019
6020 xml = DoPropFind(_REMOTE, '/webdav/', 1) 6020 for suffix in [ '', '/' ]:
6021 pprint.pprint(xml.keys()) 6021 f = DoPropFind(_REMOTE, '/webdav' + suffix, 0)
6022 print(xml['/webdav/'].toprettyxml()) 6022 self.assertEqual(1, len(f))
6023 6023 self.assertTrue('/webdav/' in f.keys())
6024 #print(xml.toprettyxml()) 6024 self.assertTrue(f['/webdav/']['folder'])
6025 #for i in xml.getElementsByTagName('D:response'): 6025 self.assertEqual('webdav', f['/webdav/']['displayname'])
6026 # print(i.getElementsByTagName('D:href')[0].childNodes[0].data) 6026
6027 # print(i.getElementsByTagName('D:prop')[0].toprettyxml()) 6027 f = DoPropFind(_REMOTE, '/webdav' + suffix, 1)
6028 6028 self.assertEqual(6, len(f))
6029 6029 self.assertTrue(f['/webdav/']['folder'])
6030 self.assertEqual('webdav', f['/webdav/']['displayname'])
6030 6031
6032 for i in [ 'by-dates', 'by-patients', 'by-studies', 'by-uids', 'uploads' ]:
6033 self.assertTrue(f['/webdav/%s' % i]['folder'])
6034 self.assertEqual(i, f['/webdav/%s' % i]['displayname'])
6035
6036 for depth in [ 0, 1 ]:
6037 for suffix2 in [ '', '/' ]:
6038 g = DoPropFind(_REMOTE, '/webdav/%s%s' % (i, suffix2), depth)
6039
6040 if i == 'uploads':
6041 # Empty folders might still exist in "/uploads/"
6042 self.assertTrue('/webdav/uploads/' in g)
6043 self.assertEqual('uploads', g['/webdav/uploads/']['displayname'])
6044 for j in g.items():
6045 self.assertTrue(g.items()[0][1]['folder'])
6046 else:
6047 self.assertEqual(1, len(g))
6048 self.assertEqual('/webdav/%s/' % i, g.items()[0][0])
6049 self.assertTrue(g.items()[0][1]['folder'])
6050 self.assertEqual(i, g.items()[0][1]['displayname'])
6051
6031 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) 6052 self.assertEqual(0, len(DoGet(_REMOTE, '/patients')))
6032 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0001.dcm') 6053 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f:
6054 DoPut(_REMOTE, '/webdav/uploads/dummy', f.read(), 'text/plain')
6055
6056 while len(DoGet(_REMOTE, '/patients')) == 0:
6057 time.sleep(0.01)
6058 self.assertEqual(1, len(DoGet(_REMOTE, '/patients')))
6059