| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | from collections import namedtuple | 
					
						
							|  |  |  | import sure  # noqa | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from moto.swf.exceptions import SWFUnknownResourceFault | 
					
						
							|  |  |  | from moto.swf.models import Domain | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Ensure 'assert_raises' context manager support for Python 2.6 | 
					
						
							|  |  |  | import tests.backport_assert_raises  # noqa | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Fake WorkflowExecution for tests purposes | 
					
						
							|  |  |  | WorkflowExecution = namedtuple( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     "WorkflowExecution", ["workflow_id", "run_id", "execution_status", "open"] | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_short_dict_representation(): | 
					
						
							|  |  |  |     domain = Domain("foo", "52") | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.to_short_dict().should.equal({"name": "foo", "status": "REGISTERED"}) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     domain.description = "foo bar" | 
					
						
							|  |  |  |     domain.to_short_dict()["description"].should.equal("foo bar") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_full_dict_representation(): | 
					
						
							|  |  |  |     domain = Domain("foo", "52") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     domain.to_full_dict()["domainInfo"].should.equal(domain.to_short_dict()) | 
					
						
							|  |  |  |     _config = domain.to_full_dict()["configuration"] | 
					
						
							|  |  |  |     _config["workflowExecutionRetentionPeriodInDays"].should.equal("52") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_string_representation(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  |     str(domain).should.equal("Domain(name: my-domain, status: REGISTERED)") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_add_to_activity_task_list(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  |     domain.add_to_activity_task_list("foo", "bar") | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.activity_task_lists.should.equal({"foo": ["bar"]}) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_activity_tasks(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  |     domain.add_to_activity_task_list("foo", "bar") | 
					
						
							|  |  |  |     domain.add_to_activity_task_list("other", "baz") | 
					
						
							|  |  |  |     sorted(domain.activity_tasks).should.equal(["bar", "baz"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_add_to_decision_task_list(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  |     domain.add_to_decision_task_list("foo", "bar") | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.decision_task_lists.should.equal({"foo": ["bar"]}) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_decision_tasks(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  |     domain.add_to_decision_task_list("foo", "bar") | 
					
						
							|  |  |  |     domain.add_to_decision_task_list("other", "baz") | 
					
						
							|  |  |  |     sorted(domain.decision_tasks).should.equal(["bar", "baz"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_domain_get_workflow_execution(): | 
					
						
							|  |  |  |     domain = Domain("my-domain", "60") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     wfe1 = WorkflowExecution( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         workflow_id="wf-id-1", run_id="run-id-1", execution_status="OPEN", open=True | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     wfe2 = WorkflowExecution( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         workflow_id="wf-id-1", run_id="run-id-2", execution_status="CLOSED", open=False | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     wfe3 = WorkflowExecution( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         workflow_id="wf-id-2", run_id="run-id-3", execution_status="OPEN", open=True | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     wfe4 = WorkflowExecution( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         workflow_id="wf-id-3", run_id="run-id-4", execution_status="CLOSED", open=False | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     domain.workflow_executions = [wfe1, wfe2, wfe3, wfe4] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # get workflow execution through workflow_id and run_id | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.get_workflow_execution("wf-id-1", run_id="run-id-1").should.equal(wfe1) | 
					
						
							|  |  |  |     domain.get_workflow_execution("wf-id-1", run_id="run-id-2").should.equal(wfe2) | 
					
						
							|  |  |  |     domain.get_workflow_execution("wf-id-3", run_id="run-id-4").should.equal(wfe4) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     domain.get_workflow_execution.when.called_with( | 
					
						
							|  |  |  |         "wf-id-1", run_id="non-existent" | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     ).should.throw(SWFUnknownResourceFault) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # get OPEN workflow execution by default if no run_id | 
					
						
							|  |  |  |     domain.get_workflow_execution("wf-id-1").should.equal(wfe1) | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.get_workflow_execution.when.called_with("wf-id-3").should.throw( | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         SWFUnknownResourceFault | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     domain.get_workflow_execution.when.called_with("wf-id-non-existent").should.throw( | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         SWFUnknownResourceFault | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # raise_if_closed attribute | 
					
						
							|  |  |  |     domain.get_workflow_execution( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         "wf-id-1", run_id="run-id-1", raise_if_closed=True | 
					
						
							|  |  |  |     ).should.equal(wfe1) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     domain.get_workflow_execution.when.called_with( | 
					
						
							|  |  |  |         "wf-id-3", run_id="run-id-4", raise_if_closed=True | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     ).should.throw(SWFUnknownResourceFault) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # raise_if_none attribute | 
					
						
							|  |  |  |     domain.get_workflow_execution("foo", raise_if_none=False).should.be.none |