33 lines
		
	
	
		
			694 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			694 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import asyncio
 | |
| 
 | |
| from falyx import Falyx
 | |
| from falyx.action import Action
 | |
| 
 | |
| 
 | |
| async def main():
 | |
|     state = {"count": 0}
 | |
| 
 | |
|     async def flaky():
 | |
|         if not state["count"]:
 | |
|             state["count"] += 1
 | |
|             print("Flaky step failed, retrying...")
 | |
|             raise RuntimeError("Random failure!")
 | |
|         return "ok"
 | |
| 
 | |
|     # Add a command that raises an exception
 | |
|     falyx.add_command(
 | |
|         key="E",
 | |
|         description="Error Command",
 | |
|         action=Action("flaky", flaky),
 | |
|         retry=True,
 | |
|     )
 | |
| 
 | |
|     result = await falyx.run_key("E")
 | |
|     print(result)
 | |
|     assert result == "ok"
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     falyx = Falyx("Headless Recovery Test")
 | |
|     asyncio.run(main())
 |