def test_extensions_https(self): # HTTPS and allowing insecure # expect not to find SSL cert problem with self.assertRaises(Exception) as e: DockerUtil.wait_for_log_message( [self.container], "SSL certificate problem: self signed certificate", self.max_wait_time) # expect to find downloading extensions in to folder try: DockerUtil.wait_for_log_message([self.container], "Downloading extensions at", self.max_wait_time) DockerUtil.wait_for_log_message([self.container], "Unzipping contents of", self.max_wait_time) except Exception as e: self.fail(e) # Verify plugin.xml file for each test Extensions in MC extensions folder # retrieve container extensions folder exts = DockerUtil.list_container_dir(self.__class__.container, "/opt/connect/extensions/") self.assertTrue(("extensions/testExtension3/plugin.xml" in exts) and ("extensions/testExtension2/plugin.xml" in exts) and ("extensions/testExtension1/plugin.xml" in exts)) # expect to see Connect start try: DockerUtil.wait_for_containers([self.container], self.max_wait_time) except Exception as e: self.fail(e)
def test_extensions_http(self): # HTTP download # expect to find downloading extensions in to folder # expect to see Connect start try: # wait for extensions download message DockerUtil.wait_for_log_message([self.container], "Downloading extensions at", self.max_wait_time) DockerUtil.wait_for_log_message([self.container], "Unzipping contents of", self.max_wait_time) # Verify plugin.xml file for each test Extensions in MC extensions folder # retrieve container extensions folder exts = DockerUtil.list_container_dir(self.__class__.container, "/opt/connect/extensions/") self.assertTrue( ("extensions/testExtension3/plugin.xml" in exts) and ("extensions/testExtension2/plugin.xml" in exts) and ("extensions/testExtension1/plugin.xml" in exts)) # wait for MC to come up DockerUtil.wait_for_containers([self.container], self.max_wait_time) except Exception as e: # fail if there is any exception self.fail(e)
class DockerTests3(unittest.TestCase): docker_image = "" container = "" mirth_properties_map = {} extensions_list = [] test_yml = os.path.join('.', 'tmp', 'test.yml') composeCmd = 'docker-compose -f ' + test_yml + ' -p mctest3' max_wait_time = 240 @classmethod def setUpClass(cls): print( ' \n >>>> ==== Running Test 3 - Verify Compose with secret, postgres, custom-extensions' + ' ===== ') print(' >>>> ==== using IMAGE = ' + cls.docker_image + ' ===== ') DockerUtil.empty_test_folder("tmp") # Setup test dir as volume to by mounted by container # exts = DockerUtil.create_test_dir("tmp/exts") if os.name == 'nt': DockerUtil.create_test_dir("tmp\\exts") os.system('copy /y .\\testdata\\*.zip .\\tmp\\exts') os.system('copy /y .\\testdata\\secret.properties .\\tmp') else: DockerUtil.create_test_dir("tmp/exts") os.system('cp ./testdata/*.zip ./tmp/exts/') os.system('cp ./testdata/secret.properties ./tmp/') DockerUtil.generate_compose_yml(cls.test_yml, cls.docker_image) # Run docker compose os.system(cls.composeCmd + " up -d") client = docker.from_env() cls.container = client.containers.get("mctest3_mc_1") # wait for MC to come up try: DockerUtil.wait_for_containers([cls.container], cls.max_wait_time) except Exception, e: print(">>>> MC server failed to start") cls.tearDownClass() raise e # retrieve container mirth.properties file as a map cls.mirth_properties_map = DockerUtil.get_prop_file_as_map( cls.container, "/opt/connect/conf/mirth.properties") # retrieve container extensions folder cls.extensions_list = DockerUtil.list_container_dir( cls.container, "/opt/connect/extensions/")