46 lines
994 B
Python
46 lines
994 B
Python
from e2b.sandbox.commands.command_handle import CommandExitException
|
|
|
|
import pytest
|
|
|
|
from e2b import Sandbox
|
|
|
|
|
|
class Desktop(Sandbox):
|
|
default_template = "desktop"
|
|
|
|
@staticmethod
|
|
def _wrap_pyautogui_code(code: str):
|
|
return f"""
|
|
import pyautogui
|
|
import os
|
|
import Xlib.display
|
|
|
|
display = Xlib.display.Display(os.environ["DISPLAY"])
|
|
pyautogui._pyautogui_x11._display = display
|
|
|
|
{code}
|
|
exit(0)
|
|
"""
|
|
|
|
def pyautogui(self, pyautogui_code: str):
|
|
code_path = "/home/user/code-4f3a0850-1a83-47b2-8402-67b039a084ae.py"
|
|
print(code_path)
|
|
|
|
code = self._wrap_pyautogui_code(pyautogui_code)
|
|
|
|
self.files.write(code_path, code)
|
|
|
|
self.commands.run(f"python {code_path}")
|
|
|
|
|
|
@pytest.mark.skip
|
|
def test_envelope_decode():
|
|
with Desktop(timeout=30) as desktop:
|
|
for _ in range(10):
|
|
with pytest.raises(CommandExitException):
|
|
desktop.pyautogui(
|
|
"""
|
|
pyautogui.write("Hello, ")
|
|
"""
|
|
)
|