changeset 838:72540f20d493 sql-opti

merged default -> sql-opti
author Alain Mazy <am@orthanc.team>
date Fri, 27 Jun 2025 15:29:28 +0200
parents 42001363b297 (diff) 8d119b607d55 (current diff)
children ae94f3d13ada
files NewTests/PostgresUpgrades/docker-compose.yml NewTests/PostgresUpgrades/downgrade.sh Tests/Tests.py
diffstat 4 files changed, 29 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/NewTests/PostgresUpgrades/docker-compose.yml	Wed Jun 25 15:13:00 2025 +0200
+++ b/NewTests/PostgresUpgrades/docker-compose.yml	Fri Jun 27 15:29:28 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	Wed Jun 25 15:13:00 2025 +0200
+++ b/NewTests/PostgresUpgrades/downgrade.sh	Fri Jun 27 15:29:28 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	Wed Jun 25 15:13:00 2025 +0200
+++ b/Tests/Tests.py	Fri Jun 27 15:29:28 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:
--- a/Tests/Toolbox.py	Wed Jun 25 15:13:00 2025 +0200
+++ b/Tests/Toolbox.py	Fri Jun 27 15:29:28 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()