Index: third_party/gsutil/third_party/boto/tests/unit/swf/test_layer2_domain.py |
diff --git a/third_party/gsutil/third_party/boto/tests/unit/swf/test_layer2_domain.py b/third_party/gsutil/third_party/boto/tests/unit/swf/test_layer2_domain.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..43efc8a2f50e773550217add9f57d1def0bafade |
--- /dev/null |
+++ b/third_party/gsutil/third_party/boto/tests/unit/swf/test_layer2_domain.py |
@@ -0,0 +1,116 @@ |
+import boto.swf.layer2 |
+from boto.swf.layer2 import Domain, ActivityType, WorkflowType, WorkflowExecution |
+from tests.unit import unittest |
+from mock import Mock |
+ |
+ |
+class TestDomain(unittest.TestCase): |
+ |
+ def setUp(self): |
+ boto.swf.layer2.Layer1 = Mock() |
+ self.domain = Domain(name='test-domain', description='My test domain') |
+ self.domain.aws_access_key_id = 'inheritable access key' |
+ self.domain.aws_secret_access_key = 'inheritable secret key' |
+ self.domain.region = 'test-region' |
+ |
+ def test_domain_instantiation(self): |
+ self.assertEquals('test-domain', self.domain.name) |
+ self.assertEquals('My test domain', self.domain.description) |
+ |
+ def test_domain_list_activities(self): |
+ self.domain._swf.list_activity_types.return_value = { |
+ 'typeInfos': [{'activityType': {'name': 'DeleteLocalFile', |
+ 'version': '1.0'}, |
+ 'creationDate': 1332853651.235, |
+ 'status': 'REGISTERED'}, |
+ {'activityType': {'name': 'DoUpdate', 'version': 'test'}, |
+ 'creationDate': 1333463734.528, |
+ 'status': 'REGISTERED'}, |
+ {'activityType': {'name': 'GrayscaleTransform', |
+ 'version': '1.0'}, |
+ 'creationDate': 1332853651.18, |
+ 'status': 'REGISTERED'}, |
+ {'activityType': {'name': 'S3Download', 'version': '1.0'}, |
+ 'creationDate': 1332853651.264, |
+ 'status': 'REGISTERED'}, |
+ {'activityType': {'name': 'S3Upload', 'version': '1.0'}, |
+ 'creationDate': 1332853651.314, |
+ 'status': 'REGISTERED'}, |
+ {'activityType': {'name': 'SepiaTransform', 'version': '1.1'}, |
+ 'creationDate': 1333373797.734, |
+ 'status': 'REGISTERED'}]} |
+ |
+ expected_names = ('DeleteLocalFile', 'GrayscaleTransform', 'S3Download', |
+ 'S3Upload', 'SepiaTransform', 'DoUpdate') |
+ |
+ activity_types = self.domain.activities() |
+ self.assertEquals(6, len(activity_types)) |
+ for activity_type in activity_types: |
+ self.assertIsInstance(activity_type, ActivityType) |
+ self.assertTrue(activity_type.name in expected_names) |
+ self.assertEquals(self.domain.region, activity_type.region) |
+ |
+ def test_domain_list_workflows(self): |
+ self.domain._swf.list_workflow_types.return_value = { |
+ 'typeInfos': [{'creationDate': 1332853651.136, |
+ 'description': 'Image processing sample workflow type', |
+ 'status': 'REGISTERED', |
+ 'workflowType': {'name': 'ProcessFile', 'version': '1.0'}}, |
+ {'creationDate': 1333551719.89, |
+ 'status': 'REGISTERED', |
+ 'workflowType': {'name': 'test_workflow_name', |
+ 'version': 'v1'}}]} |
+ expected_names = ('ProcessFile', 'test_workflow_name') |
+ |
+ workflow_types = self.domain.workflows() |
+ self.assertEquals(2, len(workflow_types)) |
+ for workflow_type in workflow_types: |
+ self.assertIsInstance(workflow_type, WorkflowType) |
+ self.assertTrue(workflow_type.name in expected_names) |
+ self.assertEquals(self.domain.aws_access_key_id, workflow_type.aws_access_key_id) |
+ self.assertEquals(self.domain.aws_secret_access_key, workflow_type.aws_secret_access_key) |
+ self.assertEquals(self.domain.name, workflow_type.domain) |
+ self.assertEquals(self.domain.region, workflow_type.region) |
+ |
+ def test_domain_list_executions(self): |
+ self.domain._swf.list_open_workflow_executions.return_value = { |
+ 'executionInfos': [{'cancelRequested': False, |
+ 'execution': {'runId': '12OeDTyoD27TDaafViz/QIlCHrYzspZmDgj0coIfjm868=', |
+ 'workflowId': 'ProcessFile-1.0-1378933928'}, |
+ 'executionStatus': 'OPEN', |
+ 'startTimestamp': 1378933928.676, |
+ 'workflowType': {'name': 'ProcessFile', |
+ 'version': '1.0'}}, |
+ {'cancelRequested': False, |
+ 'execution': {'runId': '12GwBkx4hH6t2yaIh8LYxy5HyCM6HcyhDKePJCg0/ciJk=', |
+ 'workflowId': 'ProcessFile-1.0-1378933927'}, |
+ 'executionStatus': 'OPEN', |
+ 'startTimestamp': 1378933927.919, |
+ 'workflowType': {'name': 'ProcessFile', |
+ 'version': '1.0'}}, |
+ {'cancelRequested': False, |
+ 'execution': {'runId': '12oRG3vEWrQ7oYBV+Bqi33Fht+ZRCYTt+tOdn5kLVcwKI=', |
+ 'workflowId': 'ProcessFile-1.0-1378933926'}, |
+ 'executionStatus': 'OPEN', |
+ 'startTimestamp': 1378933927.04, |
+ 'workflowType': {'name': 'ProcessFile', |
+ 'version': '1.0'}}, |
+ {'cancelRequested': False, |
+ 'execution': {'runId': '12qrdcpYmad2cjnqJcM4Njm3qrCGvmRFR1wwQEt+a2ako=', |
+ 'workflowId': 'ProcessFile-1.0-1378933874'}, |
+ 'executionStatus': 'OPEN', |
+ 'startTimestamp': 1378933874.956, |
+ 'workflowType': {'name': 'ProcessFile', |
+ 'version': '1.0'}}]} |
+ |
+ executions = self.domain.executions() |
+ self.assertEquals(4, len(executions)) |
+ for wf_execution in executions: |
+ self.assertIsInstance(wf_execution, WorkflowExecution) |
+ self.assertEquals(self.domain.aws_access_key_id, wf_execution.aws_access_key_id) |
+ self.assertEquals(self.domain.aws_secret_access_key, wf_execution.aws_secret_access_key) |
+ self.assertEquals(self.domain.name, wf_execution.domain) |
+ self.assertEquals(self.domain.region, wf_execution.region) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |