diff env/lib/python3.7/site-packages/bioblend/_tests/TestCloudmanLaunch.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.7/site-packages/bioblend/_tests/TestCloudmanLaunch.py	Sat May 02 07:14:21 2020 -0400
@@ -0,0 +1,44 @@
+"""
+Tests the functionality of the Blend CloudMan API. These tests require working
+credentials to supported cloud infrastructure.
+"""
+from bioblend.cloudman import CloudManConfig, CloudManInstance
+from . import CloudmanTestBase, test_util
+
+
+@test_util.skip_unless_cloudman()
+class TestCloudmanLaunch(CloudmanTestBase.CloudmanTestBase):
+
+    def setUp(self):
+        super(TestCloudmanLaunch, self).setUp()
+
+    def test_validate_valid_config(self):
+        """
+        Tests whether a valid config is validated properly.
+        """
+        # cfg = CloudManConfig(self.access_key, self.secret_key, self.cluster_name, self.ami_id, self.instance_type, self.password, cloud_metadata=self.cloud_metadata)
+        cls = TestCloudmanLaunch
+        cfg = CloudManConfig(cls.access_key, cls.secret_key, cls.cluster_name, cls.ami_id, cls.instance_type, cls.password, cloud_metadata=cls.cloud_metadata)
+        result = cfg.validate()
+        self.assertIsNone(result, "Validation did not return null to indicate success!")
+
+    def test_validate_invalid_config(self):
+        """
+        Tests whether an invalid config is validated properly.
+        """
+        cfg = CloudManConfig()
+        result = cfg.validate()
+        self.assertIsNotNone(result, "Validation should have returned a value since the configuration was invalid!")
+
+    def test_launch_and_terminate(self):
+        cls = TestCloudmanLaunch
+        cfg = CloudManConfig(cls.access_key, cls.secret_key, cls.cluster_name, cls.ami_id, cls.instance_type, cls.password, cloud_metadata=cls.cloud_metadata)
+        cmi = CloudManInstance.launch_instance(cfg)
+        status = cmi.get_status()
+        self.assertNotEqual(status['cluster_status'], 'ERROR', "instance.get_status() returned ERROR. Should return a successful status!")
+        try:
+            # TODO: The terminate method is unpredictable! Needs fix.
+            result = cmi.terminate(delete_cluster=True)
+            self.assertEqual(result['cluster_status'], 'SHUTDOWN', "Cluster should be in status SHUTDOWN after call to terminate!")
+        except Exception:
+            pass