comparison Tests/Tests.py @ 392:5cbcb4a83b41

fix for revisions of attachments
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 20 Apr 2021 12:28:16 +0200
parents 227d9a932467
children 3019306499c5
comparison
equal deleted inserted replaced
391:227d9a932467 392:5cbcb4a83b41
1228 self.assertEqual(2, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient))) 1228 self.assertEqual(2, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient)))
1229 self.assertEqual(hello, DoGet(_REMOTE, '/patients/%s/attachments/1025/data' % patient)) 1229 self.assertEqual(hello, DoGet(_REMOTE, '/patients/%s/attachments/1025/data' % patient))
1230 self.assertEqual('world', DoGet(_REMOTE, '/patients/%s/attachments/1026/data' % patient)) 1230 self.assertEqual('world', DoGet(_REMOTE, '/patients/%s/attachments/1026/data' % patient))
1231 DoPost(_REMOTE, '/patients/%s/attachments/1025/verify-md5' % patient) 1231 DoPost(_REMOTE, '/patients/%s/attachments/1025/verify-md5' % patient)
1232 DoPost(_REMOTE, '/patients/%s/attachments/1026/verify-md5' % patient) 1232 DoPost(_REMOTE, '/patients/%s/attachments/1026/verify-md5' % patient)
1233 DoPut(_REMOTE, '/patients/%s/attachments/1026' % patient, 'world2') 1233 DoPut(_REMOTE, '/patients/%s/attachments/1026' % patient, 'world2', headers = {
1234 'If-Match' : '0'
1235 })
1234 self.assertEqual('world2', DoGet(_REMOTE, '/patients/%s/attachments/1026/data' % patient)) 1236 self.assertEqual('world2', DoGet(_REMOTE, '/patients/%s/attachments/1026/data' % patient))
1235 1237
1236 self.assertRaises(Exception, lambda: DoDelete(_REMOTE, '/instances/%s/attachments/dicom' % instance)) 1238 self.assertRaises(Exception, lambda: DoDelete(_REMOTE, '/instances/%s/attachments/dicom' % instance))
1237 DoDelete(_REMOTE, '/patients/%s/attachments/1025' % patient) 1239 DoDelete(_REMOTE, '/patients/%s/attachments/1025' % patient, headers = {
1240 'If-Match' : '0'
1241 })
1238 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']), 1242 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']),
1239 int(DoGet(_REMOTE, '/statistics')['TotalDiskSize'])) 1243 int(DoGet(_REMOTE, '/statistics')['TotalDiskSize']))
1240 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']), 1244 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']),
1241 size + int(DoGet(_REMOTE, '/patients/%s/attachments/1026/compressed-size' % patient))) 1245 size + int(DoGet(_REMOTE, '/patients/%s/attachments/1026/compressed-size' % patient)))
1242 1246
1243 self.assertEqual(1, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient))) 1247 self.assertEqual(1, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient)))
1244 DoDelete(_REMOTE, '/patients/%s/attachments/1026' % patient) 1248 DoDelete(_REMOTE, '/patients/%s/attachments/1026' % patient, headers = {
1249 'If-Match' : '0'
1250 })
1245 self.assertEqual(0, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient))) 1251 self.assertEqual(0, len(DoGet(_REMOTE, '/patients/%s/attachments' % patient)))
1246 1252
1247 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']), size) 1253 self.assertEqual(int(DoGet(_REMOTE, '/patients/%s/statistics' % patient)['DiskSize']), size)
1248 self.assertEqual(size, int(DoGet(_REMOTE, '/statistics')['TotalDiskSize'])) 1254 self.assertEqual(size, int(DoGet(_REMOTE, '/statistics')['TotalDiskSize']))
1249 1255
3444 3450
3445 # Cannot delete the "DICOM" attachment 3451 # Cannot delete the "DICOM" attachment
3446 self.assertRaises(Exception, lambda: DoDelete(_REMOTE, '/instances/%s/attachments/dicom' % instance)) 3452 self.assertRaises(Exception, lambda: DoDelete(_REMOTE, '/instances/%s/attachments/dicom' % instance))
3447 3453
3448 # Can delete the "DICOM as JSON" attachment 3454 # Can delete the "DICOM as JSON" attachment
3449 r = DoDelete(_REMOTE, '/instances/%s/attachments/dicom-as-json' % instance) 3455 if not IsOrthancVersionAbove(_REMOTE, 1, 9, 1):
3450 self.assertTrue(type(r) is dict and len(r) == 0) 3456 r = DoDelete(_REMOTE, '/instances/%s/attachments/dicom-as-json' % instance)
3457 self.assertTrue(type(r) is dict and len(r) == 0)
3451 3458
3452 # Only the "DICOM" attachment subsists 3459 # Only the "DICOM" attachment subsists
3453 self.assertEqual(1, len(DoGet(_REMOTE, '/instances/%s/attachments' % instance))) 3460 self.assertEqual(1, len(DoGet(_REMOTE, '/instances/%s/attachments' % instance)))
3454 3461
3455 # Cannot manually reconstruct the "DICOM as JSON" attachment 3462 # Cannot manually reconstruct the "DICOM as JSON" attachment
6571 6578
6572 instance = DoGet(_REMOTE, '/instances/%s' % a) 6579 instance = DoGet(_REMOTE, '/instances/%s' % a)
6573 self.assertEqual(tags['0008,0018'], instance['MainDicomTags']['SOPInstanceUID']) 6580 self.assertEqual(tags['0008,0018'], instance['MainDicomTags']['SOPInstanceUID'])
6574 6581
6575 6582
6576 def test_revisions(self): 6583 def test_revisions_metadata(self):
6577 # This test fails on Orthanc <= 1.9.1 (support for revisions 6584 # This test fails on Orthanc <= 1.9.1 (support for revisions
6578 # was introduced in 1.9.2), or if configuration option 6585 # was introduced in 1.9.2), or if configuration option
6579 # "CheckRevisions" is "False". Conventions for HTTP headers 6586 # "CheckRevisions" is "False". Conventions for HTTP headers
6580 # related to revisions mimic CouchDB: 6587 # related to revisions mimic CouchDB:
6581 # https://docs.couchdb.org/en/stable/api/document/common.html 6588 # https://docs.couchdb.org/en/stable/api/document/common.html