Index: third_party/gsutil/boto/tests/integration/beanstalk/test_wrapper.py |
diff --git a/third_party/gsutil/boto/tests/integration/beanstalk/test_wrapper.py b/third_party/gsutil/boto/tests/integration/beanstalk/test_wrapper.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e3183e5480fa25941c241d6fce4e3a64cdd91ad3 |
--- /dev/null |
+++ b/third_party/gsutil/boto/tests/integration/beanstalk/test_wrapper.py |
@@ -0,0 +1,209 @@ |
+import unittest |
+import random |
+import time |
+from functools import partial |
+ |
+from boto.beanstalk.wrapper import Layer1Wrapper |
+import boto.beanstalk.response as response |
+ |
+ |
+class BasicSuite(unittest.TestCase): |
+ def setUp(self): |
+ self.random_id = str(random.randint(1, 1000000)) |
+ self.app_name = 'app-' + self.random_id |
+ self.app_version = 'version-' + self.random_id |
+ self.template = 'template-' + self.random_id |
+ self.environment = 'environment-' + self.random_id |
+ self.beanstalk = Layer1Wrapper() |
+ |
+ |
+class MiscSuite(BasicSuite): |
+ def test_check_dns_availability(self): |
+ result = self.beanstalk.check_dns_availability('amazon') |
+ self.assertIsInstance(result, response.CheckDNSAvailabilityResponse, |
+ 'incorrect response object returned') |
+ self.assertFalse(result.available) |
+ |
+ |
+class TestApplicationObjects(BasicSuite): |
+ def create_application(self): |
+ # This method is used for any API calls that require an application |
+ # object. This also adds a cleanup step to automatically delete the |
+ # app when the test is finished. No assertions are performed |
+ # here. If you want to validate create_application, don't use this |
+ # method. |
+ self.beanstalk.create_application(application_name=self.app_name) |
+ self.addCleanup(partial(self.beanstalk.delete_application, |
+ application_name=self.app_name)) |
+ |
+ def test_create_delete_application_version(self): |
+ # This will create an app, create an app version, delete the app |
+ # version, and delete the app. For each API call we check that the |
+ # return type is what we expect and that a few attributes have the |
+ # correct values. |
+ app_result = self.beanstalk.create_application(application_name=self.app_name) |
+ self.assertIsInstance(app_result, response.CreateApplicationResponse) |
+ self.assertEqual(app_result.application.application_name, self.app_name) |
+ |
+ version_result = self.beanstalk.create_application_version( |
+ application_name=self.app_name, version_label=self.app_version) |
+ self.assertIsInstance(version_result, response.CreateApplicationVersionResponse) |
+ self.assertEqual(version_result.application_version.version_label, |
+ self.app_version) |
+ result = self.beanstalk.delete_application_version( |
+ application_name=self.app_name, version_label=self.app_version) |
+ self.assertIsInstance(result, response.DeleteApplicationVersionResponse) |
+ result = self.beanstalk.delete_application( |
+ application_name=self.app_name |
+ ) |
+ self.assertIsInstance(result, response.DeleteApplicationResponse) |
+ |
+ def test_create_configuration_template(self): |
+ self.create_application() |
+ result = self.beanstalk.create_configuration_template( |
+ application_name=self.app_name, template_name=self.template, |
+ solution_stack_name='32bit Amazon Linux running Tomcat 6') |
+ self.assertIsInstance( |
+ result, response.CreateConfigurationTemplateResponse) |
+ self.assertEqual(result.solution_stack_name, |
+ '32bit Amazon Linux running Tomcat 6') |
+ |
+ def test_create_storage_location(self): |
+ result = self.beanstalk.create_storage_location() |
+ self.assertIsInstance(result, response.CreateStorageLocationResponse) |
+ |
+ def test_update_application(self): |
+ self.create_application() |
+ result = self.beanstalk.update_application(application_name=self.app_name) |
+ self.assertIsInstance(result, response.UpdateApplicationResponse) |
+ |
+ def test_update_application_version(self): |
+ self.create_application() |
+ self.beanstalk.create_application_version( |
+ application_name=self.app_name, version_label=self.app_version) |
+ result = self.beanstalk.update_application_version( |
+ application_name=self.app_name, version_label=self.app_version) |
+ self.assertIsInstance( |
+ result, response.UpdateApplicationVersionResponse) |
+ |
+ |
+class GetSuite(BasicSuite): |
+ def test_describe_applications(self): |
+ result = self.beanstalk.describe_applications() |
+ self.assertIsInstance(result, response.DescribeApplicationsResponse) |
+ |
+ def test_describe_application_versions(self): |
+ result = self.beanstalk.describe_application_versions() |
+ self.assertIsInstance(result, |
+ response.DescribeApplicationVersionsResponse) |
+ |
+ |
+ def test_describe_configuration_options(self): |
+ result = self.beanstalk.describe_configuration_options() |
+ self.assertIsInstance(result, |
+ response.DescribeConfigurationOptionsResponse) |
+ |
+ def test_12_describe_environments(self): |
+ result = self.beanstalk.describe_environments() |
+ self.assertIsInstance( |
+ result, response.DescribeEnvironmentsResponse) |
+ |
+ def test_14_describe_events(self): |
+ result = self.beanstalk.describe_events() |
+ self.assertIsInstance(result, response.DescribeEventsResponse) |
+ |
+ def test_15_list_available_solution_stacks(self): |
+ result = self.beanstalk.list_available_solution_stacks() |
+ self.assertIsInstance( |
+ result, response.ListAvailableSolutionStacksResponse) |
+ self.assertIn('32bit Amazon Linux running Tomcat 6', |
+ result.solution_stacks) |
+ |
+ |
+ |
+class TestsWithEnvironment(unittest.TestCase): |
+ @classmethod |
+ def setUpClass(cls): |
+ cls.random_id = str(random.randint(1, 1000000)) |
+ cls.app_name = 'app-' + cls.random_id |
+ cls.environment = 'environment-' + cls.random_id |
+ cls.template = 'template-' + cls.random_id |
+ |
+ cls.beanstalk = Layer1Wrapper() |
+ cls.beanstalk.create_application(application_name=cls.app_name) |
+ cls.beanstalk.create_configuration_template( |
+ application_name=cls.app_name, template_name=cls.template, |
+ solution_stack_name='32bit Amazon Linux running Tomcat 6') |
+ cls.app_version = 'version-' + cls.random_id |
+ cls.beanstalk.create_application_version( |
+ application_name=cls.app_name, version_label=cls.app_version) |
+ cls.beanstalk.create_environment(cls.app_name, cls.environment, |
+ template_name=cls.template) |
+ cls.wait_for_env(cls.environment) |
+ |
+ @classmethod |
+ def tearDownClass(cls): |
+ cls.beanstalk.delete_application(application_name=cls.app_name, |
+ terminate_env_by_force=True) |
+ cls.wait_for_env(cls.environment, 'Terminated') |
+ |
+ @classmethod |
+ def wait_for_env(cls, env_name, status='Ready'): |
+ while not cls.env_ready(env_name, status): |
+ time.sleep(15) |
+ |
+ @classmethod |
+ def env_ready(cls, env_name, desired_status): |
+ result = cls.beanstalk.describe_environments( |
+ application_name=cls.app_name, environment_names=env_name) |
+ status = result.environments[0].status |
+ return status == desired_status |
+ |
+ def test_describe_environment_resources(self): |
+ result = self.beanstalk.describe_environment_resources( |
+ environment_name=self.environment) |
+ self.assertIsInstance( |
+ result, response.DescribeEnvironmentResourcesResponse) |
+ |
+ def test_describe_configuration_settings(self): |
+ result = self.beanstalk.describe_configuration_settings( |
+ application_name=self.app_name, environment_name=self.environment) |
+ self.assertIsInstance( |
+ result, response.DescribeConfigurationSettingsResponse) |
+ |
+ def test_request_environment_info(self): |
+ result = self.beanstalk.request_environment_info( |
+ environment_name=self.environment, info_type='tail') |
+ self.assertIsInstance(result, response.RequestEnvironmentInfoResponse) |
+ self.wait_for_env(self.environment) |
+ result = self.beanstalk.retrieve_environment_info( |
+ environment_name=self.environment, info_type='tail') |
+ self.assertIsInstance(result, response.RetrieveEnvironmentInfoResponse) |
+ |
+ def test_rebuild_environment(self): |
+ result = self.beanstalk.rebuild_environment( |
+ environment_name=self.environment) |
+ self.assertIsInstance(result, response.RebuildEnvironmentResponse) |
+ self.wait_for_env(self.environment) |
+ |
+ def test_restart_app_server(self): |
+ result = self.beanstalk.restart_app_server( |
+ environment_name=self.environment) |
+ self.assertIsInstance(result, response.RestartAppServerResponse) |
+ self.wait_for_env(self.environment) |
+ |
+ def test_update_configuration_template(self): |
+ result = self.beanstalk.update_configuration_template( |
+ application_name=self.app_name, template_name=self.template) |
+ self.assertIsInstance( |
+ result, response.UpdateConfigurationTemplateResponse) |
+ |
+ def test_update_environment(self): |
+ result = self.beanstalk.update_environment( |
+ environment_name=self.environment) |
+ self.assertIsInstance(result, response.UpdateEnvironmentResponse) |
+ self.wait_for_env(self.environment) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |