Mercurial > hg > orthanc-tests
changeset 849:43320c6a8044
merged sql-opti -> default
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 12 Aug 2025 17:54:50 +0200 |
parents | a9b387928f40 (current diff) f190fe4f1c39 (diff) |
children | 895215bfb8aa |
files | Tests/Tests.py |
diffstat | 4 files changed, 78 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/NewTests/PostgresUpgrades/docker-compose.yml Mon Aug 11 19:11:12 2025 +0200 +++ b/NewTests/PostgresUpgrades/docker-compose.yml Tue Aug 12 17:54:50 2025 +0200 @@ -17,7 +17,7 @@ # Orthanc previous version orthanc-pg-15-previous-revision: - image: orthancteam/orthanc:25.2.0 + image: orthancteam/orthanc:25.5.1 container_name: orthanc-pg-15-previous-revision depends_on: [pg-15] restart: unless-stopped @@ -30,7 +30,7 @@ # Orthanc previous version to run the integration tests orthanc-pg-15-previous-revision-for-integ-tests: - image: orthancteam/orthanc:25.2.0 + image: orthancteam/orthanc:25.5.1 container_name: orthanc-pg-15-previous-revision-for-integ-tests depends_on: [pg-15] restart: unless-stopped
--- a/NewTests/PostgresUpgrades/downgrade.sh Mon Aug 11 19:11:12 2025 +0200 +++ b/NewTests/PostgresUpgrades/downgrade.sh Tue Aug 12 17:54:50 2025 +0200 @@ -4,11 +4,10 @@ apt-get update && apt-get install -y wget mercurial hg clone https://orthanc.uclouvain.be/hg/orthanc-databases -pushd orthanc-databases +pushd /scripts/orthanc-databases/ +hg update -r sql-opti -hg update -r default - -psql -U postgres -f /scripts/orthanc-databases/PostgreSQL/Plugins/SQL/Downgrades/Rev5ToRev4.sql +psql -U postgres -f /scripts/orthanc-databases/PostgreSQL/Plugins/SQL/Downgrades/Rev6ToRev5.sql # if you want to test a downgrade procedure, you may use this code ... # psql -U postgres -f downgrade.sql
--- a/Tests/Tests.py Mon Aug 11 19:11:12 2025 +0200 +++ b/Tests/Tests.py Tue Aug 12 17:54:50 2025 +0200 @@ -1351,11 +1351,12 @@ series = DoGet(_REMOTE, '/series')[0] m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): - if 'PatientRecyclingOrder' in m: # New in Orthanc 1.12.9 (used only by DB plugins) - self.assertEqual(3, len(m)) - else: - self.assertEqual(2, len(m)) + if IsOrthancVersionAbove(_REMOTE, 1, 12, 9) and HasPostgresIndexPlugin(_REMOTE): + self.assertEqual(3, len(m)) + self.assertTrue('MainDicomTagsSignature' in m) + self.assertTrue('PatientRecyclingOrder' in m) + elif IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + self.assertEqual(2, len(m)) self.assertTrue('MainDicomTagsSignature' in m) else: self.assertEqual(1, len(m)) @@ -1431,11 +1432,12 @@ self.assertFalse('etag' in headers) m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): - if 'PatientRecyclingOrder' in m: # New in Orthanc 1.12.9 (used only by DB plugins) - self.assertEqual(4, len(m)) - else: - self.assertEqual(3, len(m)) + if IsOrthancVersionAbove(_REMOTE, 1, 12, 9) and HasPostgresIndexPlugin(_REMOTE): + self.assertEqual(4, len(m)) + self.assertTrue('MainDicomTagsSignature' in m) + self.assertTrue('PatientRecyclingOrder' in m) + elif IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + self.assertEqual(3, len(m)) self.assertTrue('MainDicomTagsSignature' in m) else: self.assertEqual(2, len(m)) @@ -1462,11 +1464,12 @@ DoDelete(_REMOTE, '/patients/%s/metadata/5555' % p) m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): - if 'PatientRecyclingOrder' in m: # New in Orthanc 1.12.9 (used only by DB plugins) - self.assertEqual(3, len(m)) - else: - self.assertEqual(2, len(m)) + if IsOrthancVersionAbove(_REMOTE, 1, 12, 9) and HasPostgresIndexPlugin(_REMOTE): + self.assertEqual(3, len(m)) + self.assertTrue('MainDicomTagsSignature' in m) + self.assertTrue('PatientRecyclingOrder' in m) + elif IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + self.assertEqual(2, len(m)) self.assertTrue('MainDicomTagsSignature' in m) else: self.assertEqual(1, len(m)) @@ -9114,11 +9117,12 @@ self.assertEqual('Patient', a[0]['Type']) self.assertEqual('KNEE', a[0]['MainDicomTags']['PatientName']) self.assertTrue('Metadata' in a[0]) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): - if 'PatientRecyclingOrder' in a[0]['Metadata']: # New in Orthanc 1.12.9 (used only by DB plugins) - self.assertEqual(3, len(a[0]['Metadata'])) - else: - self.assertEqual(2, len(a[0]['Metadata'])) + if IsOrthancVersionAbove(_REMOTE, 1, 12, 9) and HasPostgresIndexPlugin(_REMOTE): + self.assertEqual(3, len(a[0]['Metadata'])) + self.assertTrue('MainDicomTagsSignature' in a[0]['Metadata']) + self.assertTrue('PatientRecyclingOrder' in a[0]['Metadata']) + elif IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + self.assertEqual(2, len(a[0]['Metadata'])) self.assertTrue('MainDicomTagsSignature' in a[0]['Metadata']) else: self.assertEqual(1, len(a[0]['Metadata'])) @@ -12149,3 +12153,48 @@ tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % instanceId) self.assertEqual('ORIGINAL\PRIMARY\M\NORM\DIS2D\FM\FIL', tags['ImageType']) + + def test_jobs_user_data(self): + if IsOrthancVersionAbove(_REMOTE, 1, 12, 9): + u = UploadInstance(_REMOTE, 'DummyCT.dcm') + + job = DoPost(_REMOTE, '/studies/%s/modify' % u['ParentStudy'], + json.dumps({ + "Replace": {"PatientName": "toto"}, + "UserData": { "user-data": "titi" + }, + "Asynchronous": True + })) + jobDetails = DoGet(_REMOTE, '/jobs/%s' % job['ID']) + self.assertEqual('titi', jobDetails['UserData']['user-data']) + + job = DoPost(_REMOTE, '/tools/create-archive', + json.dumps({ + "Resources": [u['ParentStudy']], + "UserData": "simple-string", + "Asynchronous": True + })) + jobDetails = DoGet(_REMOTE, '/jobs/%s' % job['ID']) + self.assertEqual('simple-string', jobDetails['UserData']) + + job = DoPost(_REMOTE, '/modalities/orthanctest/move', { + 'Level' : 'Study', + 'Asynchronous': True, + "UserData": "simple-string", + 'Resources' : [ + { + 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' + } + ]}) + + jobDetails = DoGet(_REMOTE, '/jobs/%s' % job['ID']) + self.assertEqual('simple-string', jobDetails['UserData']) + + job = DoPost(_REMOTE, '/modalities/orthanctest/store', { + 'Level' : 'Study', + 'Asynchronous': True, + "UserData": "simple-string", + 'Resources' : [u['ParentStudy']]}) + + jobDetails = DoGet(_REMOTE, '/jobs/%s' % job['ID']) + self.assertEqual('simple-string', jobDetails['UserData'])
--- a/Tests/Toolbox.py Mon Aug 11 19:11:12 2025 +0200 +++ b/Tests/Toolbox.py Tue Aug 12 17:54:50 2025 +0200 @@ -479,6 +479,10 @@ plugins = DoGet(orthanc, '/plugins') return ('gdcm' in plugins) +def HasPostgresIndexPlugin(orthanc): + plugins = DoGet(orthanc, '/plugins') + return ('postgresql-index' in plugins) + def _GetMaxImageDifference(im1, im2): h = ImageChops.difference(im1, im2).histogram()