Mercurial > hg > orthanc-tests
comparison NewTests/PostgresUpgrades/test_pg_upgrades.py @ 599:f3475c3e42e5
run integ tests after a PG downgrade
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 18 Jan 2024 17:46:54 +0100 |
parents | b1e1c7149a37 |
children | 58384ae69f41 |
comparison
equal
deleted
inserted
replaced
598:b9ae7c59fee9 | 599:f3475c3e42e5 |
---|---|
34 time.sleep(1) | 34 time.sleep(1) |
35 | 35 |
36 class TestPgUpgrades(unittest.TestCase): | 36 class TestPgUpgrades(unittest.TestCase): |
37 | 37 |
38 @classmethod | 38 @classmethod |
39 def setUpClass(cls): | 39 def cleanup(cls): |
40 os.chdir(here) | 40 os.chdir(here) |
41 print("Cleaning old compose") | 41 print("Cleaning old compose") |
42 subprocess.run(["docker", "compose", "down", "-v", "--remove-orphans"], check=True) | 42 subprocess.run(["docker", "compose", "down", "-v", "--remove-orphans"], check=True) |
43 | |
44 | |
45 @classmethod | |
46 def setUpClass(cls): | |
47 cls.cleanup() | |
48 | |
49 @classmethod | |
50 def tearDownClass(cls): | |
51 pass | |
52 # cls.cleanup() | |
53 | |
43 | 54 |
44 def test_upgrades_downgrades_with_pg_15(self): | 55 def test_upgrades_downgrades_with_pg_15(self): |
45 | 56 |
46 print("Launching PG-15 server") | 57 print("Launching PG-15 server") |
47 subprocess.run(["docker", "compose", "up", "pg-15", "-d"], check=True) | 58 subprocess.run(["docker", "compose", "up", "pg-15", "-d"], check=True) |
58 print("Stopping old Orthanc ") | 69 print("Stopping old Orthanc ") |
59 subprocess.run(["docker", "compose", "stop", "orthanc-pg-15-2"], check=True) | 70 subprocess.run(["docker", "compose", "stop", "orthanc-pg-15-2"], check=True) |
60 time.sleep(2) | 71 time.sleep(2) |
61 | 72 |
62 print("Launching newest Orthanc") | 73 print("Launching newest Orthanc") |
63 subprocess.run(["docker", "compose", "up", "orthanc-pg-15-under-tests", "-d"], check=True) | 74 subprocess.run(["docker", "compose", "up", "orthanc-pg-15-under-tests", "-d"], |
75 env= { | |
76 "ORTHANC_IMAGE_UNDER_TESTS": Helpers.orthanc_under_tests_docker_image | |
77 }, | |
78 check=True) | |
64 | 79 |
65 o = OrthancApiClient("http://localhost:8050") | 80 o = OrthancApiClient("http://localhost:8050") |
66 o.wait_started() | 81 o.wait_started() |
67 | 82 |
68 # make sure we can 'play' with Orthanc | 83 # make sure we can 'play' with Orthanc |
69 o.instances.get_tags(orthanc_id=instances[0]) | 84 o.instances.get_tags(orthanc_id=instances[0]) |
70 o.instances.delete_all() | 85 o.instances.delete_all() |
86 self.assertEqual(0, int(o.get_json('/statistics')['TotalDiskSize'])) | |
71 instances = o.upload_folder(here / "../../Database/Knee") | 87 instances = o.upload_folder(here / "../../Database/Knee") |
88 size_before_downgrade = int(o.get_json('/statistics')['TotalDiskSize']) | |
72 | 89 |
73 print("Stopping new Orthanc ") | 90 print("Stopping newest Orthanc ") |
74 subprocess.run(["docker", "compose", "stop", "orthanc-pg-15-under-tests"], check=True) | 91 subprocess.run(["docker", "compose", "stop", "orthanc-pg-15-under-tests"], check=True) |
75 time.sleep(2) | 92 time.sleep(2) |
76 | 93 |
77 print("TODO Downgrading Orthanc DB and restart an Orthanc 23.12.1") | 94 print("Downgrading Orthanc DB to v6.1") |
78 # ... | 95 subprocess.run(["docker", "exec", "pg-15", "./scripts/downgrade.sh"], check=True) |
96 time.sleep(2) | |
97 | |
98 print("Downgrading Orthanc DB to v6.1") | |
99 print("Launching previous Orthanc (DB v6.1)") | |
100 subprocess.run(["docker", "compose", "up", "orthanc-pg-15-61", "-d"], check=True) | |
101 | |
102 o = OrthancApiClient("http://localhost:8052") | |
103 o.wait_started() | |
104 | |
105 # make sure we can 'play' with Orthanc | |
106 o.instances.get_tags(orthanc_id=instances[0]) | |
107 self.assertEqual(size_before_downgrade, int(o.get_json('/statistics')['TotalDiskSize'])) | |
108 o.instances.delete_all() | |
109 self.assertEqual(0, int(o.get_json('/statistics')['TotalDiskSize'])) | |
110 instances = o.upload_folder(here / "../../Database/Knee") | |
111 o.instances.delete_all() | |
112 self.assertEqual(0, int(o.get_json('/statistics')['TotalDiskSize'])) | |
113 | |
114 print("run the integration tests after a downgrade") | |
115 # first create the containers (orthanc-tests + orthanc-pg-15-61-for-integ-tests) so they know each other | |
116 # subprocess.run(["docker", "compose", "create", "orthanc-tests"], check=True) | |
117 | |
118 # subprocess.run(["docker", "compose", "up", "orthanc-pg-15-61-for-integ-tests", "-d"], check=True) | |
119 | |
120 # o = OrthancApiClient("http://localhost:8053", user="alice", pwd="orthanctest") | |
121 # o.wait_started() | |
122 | |
123 # time.sleep(10000) | |
124 subprocess.run(["docker", "compose", "up", "orthanc-tests"], check=True) | |
125 | |
126 | |
79 | 127 |
80 def test_latest_orthanc_with_pg_9(self): | 128 def test_latest_orthanc_with_pg_9(self): |
81 print("Launching PG-9 server") | 129 print("Launching PG-9 server") |
82 subprocess.run(["docker", "compose", "up", "pg-9", "-d"], check=True) | 130 subprocess.run(["docker", "compose", "up", "pg-9", "-d"], check=True) |
83 wait_container_healthy("pg-9") | 131 wait_container_healthy("pg-9") |