VNC client for Pytest
Project description
pytest-vnc implements a VNC client in pure Python. It works on Mac, Linux and Windows. Use the vnc fixture to capture screenshots and send keyboard & mouse from your pytest tests:
from pytest_vnc import Rect, Point
def test_thing(vnc):
# Screenshot
print(vnc.rect.width, vnc.rect.height)
pixels = vnc.capture() # rgba numpy array of entire screen
pixels = vnc.capture(Rect(x=100, y=0, width=50, height=75))
# to use PIL/pillow:
# image = Image.fromarray(pixels)
# Keyboard input
vnc.write('hi there!') # keys are queued
vnc.press('Ctrl', 'c') # keys are stacked
with vnc.hold('Ctrl'):
vnc.press('Esc')
# Mouse input
vnc.move(Point(100, 200))
vnc.click()
vnc.double_click()
vnc.middle_click()
vnc.right_click()
vnc.scroll_up()
vnc.scroll_down(repeat=10)
with vnc.drag():
vnc.move(Point(300, 400))
with vnc.middle_drag():
vnc.move(Point(500, 600))
with vnc.right_drag():
vnc.move(Point(700, 800))
Installation
This package requires Python 3.7+.
Install pytest-vnc by running:
pip install pytest-vnc
Configuration
The following configuration options can be set in pytest.ini:
- vnc_host
VNC hostname (default: localhost)
- vnc_port
VNC port (default: 5900)
- vnc_speed
VNC interactions per second (default: 20)
- vnc_timeout
VNC connection timeout in seconds (default: 5)
- vnc_pixel_format
VNC colour channel order (default: rgba)
- vnc_user
VNC username (default: env var: PYTEST_VNC_USER or current user)
- vnc_passwd
VNC password (default: env var: PYTEST_VNC_PASSWD)
The following attributes can be set on the vnc object:
- speed
Interactions per second (default: 20)
- sleep
Callable that accepts a duration in seconds and waits for that long (default: time.sleep())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pytest_vnc-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22e8610244f2762fcec6b204c6a39e8b85eb1fe1e23d7f8c6c2cb5100f1c1ae8 |
|
MD5 | 2ae59f46bb0155dbc5dcafe966f8faf8 |
|
BLAKE2b-256 | 2e380d6b73ab9c640f097e1dfda3003e38ce03675e0a4c19b2bfd2aa180ae6d1 |