| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | from moto.moto_api._internal.state_manager import StateManager | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_public_api(): | 
					
						
							|  |  |  |     from moto.moto_api import state_manager | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert isinstance(state_manager, StateManager) | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_default_transition(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.register_default_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "manual"} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     actual = manager.get_transition(model_name="dax::cluster") | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert actual == {"progression": "manual"} | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_set_transition(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.set_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "waiter", "wait_times": 3} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     actual = manager.get_transition(model_name="dax::cluster") | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert actual == {"progression": "waiter", "wait_times": 3} | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_set_transition_overrides_default(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.register_default_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "manual"} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.set_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "waiter", "wait_times": 3} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     actual = manager.get_transition(model_name="dax::cluster") | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert actual == {"progression": "waiter", "wait_times": 3} | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_unset_transition(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.register_default_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "manual"} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.set_transition( | 
					
						
							|  |  |  |         model_name="dax::cluster", transition={"progression": "waiter", "wait_times": 3} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     manager.unset_transition(model_name="dax::cluster") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     actual = manager.get_transition(model_name="dax::cluster") | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert actual == {"progression": "manual"} | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_get_default_transition(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     actual = manager.get_transition(model_name="unknown") | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert actual == {"progression": "immediate"} | 
					
						
							| 
									
										
										
										
											2022-05-01 11:45:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_get_registered_models(): | 
					
						
							|  |  |  |     manager = StateManager() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 07:45:57 +00:00
										 |  |  |     assert manager.get_registered_models() == [] |