Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 432:f4609c97e995
test_modify_keep_source
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 16 Aug 2021 10:46:56 +0200 |
parents | e665c493e23e |
children | cb579ad96a6c |
comparison
equal
deleted
inserted
replaced
431:e665c493e23e | 432:f4609c97e995 |
---|---|
8053 | 8053 |
8054 result = DoPost(_REMOTE, '/instances', media) | 8054 result = DoPost(_REMOTE, '/instances', media) |
8055 self.assertEqual(1, len(result)) | 8055 self.assertEqual(1, len(result)) |
8056 self.assertEqual(instance, result[0]['ID']) | 8056 self.assertEqual(instance, result[0]['ID']) |
8057 self.assertEqual('Success', result[0]['Status']) | 8057 self.assertEqual('Success', result[0]['Status']) |
8058 | |
8059 | |
8060 def test_modify_keep_source(self): | |
8061 # https://groups.google.com/g/orthanc-users/c/1lvlBTs2WUY/m/HmYsc2CPBQAJ | |
8062 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] | |
8063 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] | |
8064 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8065 | |
8066 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, {}) ['ID'] | |
8067 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8068 DoDelete(_REMOTE, '/studies/%s' % a) | |
8069 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8070 | |
8071 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, { 'KeepSource' : True }) ['ID'] | |
8072 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8073 DoDelete(_REMOTE, '/studies/%s' % a) | |
8074 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8075 | |
8076 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, { 'KeepSource' : False }) ['ID'] | |
8077 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8078 DoDelete(_REMOTE, '/studies/%s' % a) | |
8079 self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) | |
8080 | |
8081 UploadInstance(_REMOTE, 'DummyCT.dcm') | |
8082 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'Replace' : { } }) ['ID'] | |
8083 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8084 DoDelete(_REMOTE, '/studies/%s' % a) | |
8085 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8086 | |
8087 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'KeepSource' : True }) ['ID'] | |
8088 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8089 DoDelete(_REMOTE, '/studies/%s' % a) | |
8090 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8091 | |
8092 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'KeepSource' : False }) ['ID'] | |
8093 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8094 DoDelete(_REMOTE, '/studies/%s' % a) | |
8095 self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) | |
8096 | |
8097 def GetStudy(a): | |
8098 b = filter(lambda x: x['Type'] == 'Study', a['Resources']) | |
8099 if len(b) == 1: | |
8100 return b[0]['ID'] | |
8101 else: | |
8102 raise Exception() | |
8103 | |
8104 UploadInstance(_REMOTE, 'DummyCT.dcm') | |
8105 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ]})) | |
8106 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8107 DoDelete(_REMOTE, '/studies/%s' % a) | |
8108 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8109 | |
8110 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ], 'KeepSource' : True})) | |
8111 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8112 DoDelete(_REMOTE, '/studies/%s' % a) | |
8113 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8114 | |
8115 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ], 'KeepSource' : False})) | |
8116 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8117 DoDelete(_REMOTE, '/studies/%s' % a) | |
8118 self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) | |
8119 | |
8120 UploadInstance(_REMOTE, 'DummyCT.dcm') | |
8121 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Resources' : [ study ], 'Replace' : { }})) | |
8122 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8123 DoDelete(_REMOTE, '/studies/%s' % a) | |
8124 # No more studies, because "bulk-modify" was not given a | |
8125 # level, so the modified instance belongs to the same study as | |
8126 # the original instance | |
8127 self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) | |
8128 | |
8129 # The following fails on Orthanc <= 1.9.6 because "Level" was | |
8130 # introduced in 1.9.7 | |
8131 | |
8132 UploadInstance(_REMOTE, 'DummyCT.dcm') | |
8133 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'Replace' : { }})) | |
8134 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8135 DoDelete(_REMOTE, '/studies/%s' % a) | |
8136 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8137 | |
8138 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'KeepSource' : True})) | |
8139 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
8140 DoDelete(_REMOTE, '/studies/%s' % a) | |
8141 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8142 | |
8143 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'KeepSource' : False})) | |
8144 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
8145 DoDelete(_REMOTE, '/studies/%s' % a) | |
8146 self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) |