Mercurial > hg > orthanc-tests
changeset 842:e9d04132a6bc sql-opti
merged default -> sql-opti
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Mon, 14 Jul 2025 16:26:56 +0200 |
parents | ae94f3d13ada (diff) f7bb0bf6fb50 (current diff) |
children | 63a7a9eab0f1 |
files | Tests/Tests.py |
diffstat | 4 files changed, 74 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/NewTests/PostgresUpgrades/docker-compose.yml Thu Jul 10 09:17:52 2025 +0200 +++ b/NewTests/PostgresUpgrades/docker-compose.yml Mon Jul 14 16:26:56 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 Thu Jul 10 09:17:52 2025 +0200 +++ b/NewTests/PostgresUpgrades/downgrade.sh Mon Jul 14 16:26:56 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/Rev599ToRev5.sql # if you want to test a downgrade procedure, you may use this code ... # psql -U postgres -f downgrade.sql
--- a/Tests/Tests.py Thu Jul 10 09:17:52 2025 +0200 +++ b/Tests/Tests.py Mon Jul 14 16:26:56 2025 +0200 @@ -1351,7 +1351,11 @@ series = DoGet(_REMOTE, '/series')[0] m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + 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: @@ -1427,7 +1431,11 @@ self.assertFalse('etag' in headers) m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + 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: @@ -1455,7 +1463,11 @@ DoDelete(_REMOTE, '/patients/%s/metadata/5555' % p) m = DoGet(_REMOTE, '/patients/%s/metadata' % p) - if IsOrthancVersionAbove(_REMOTE, 1, 11, 0): + 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: @@ -9104,7 +9116,11 @@ 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 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: @@ -12135,3 +12151,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 Thu Jul 10 09:17:52 2025 +0200 +++ b/Tests/Toolbox.py Mon Jul 14 16:26:56 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()