Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thewh1teagle committed Dec 3, 2023
1 parent 9e7e150 commit a526777
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 23 deletions.
23 changes: 14 additions & 9 deletions tests/keyboard_test.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
import tempfile
from zero_hid import Keyboard

from utils import random_file

def test_typing():
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
k = Keyboard(f'{tmpdir}/test')
path = random_file()
with open(path, 'ab+') as f:
k = Keyboard(f)
k.type("Hello world!")
f.seek(0)
expect = b'\x02\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
assert expect == f.read()

data = f.read()
expect = b'\x02\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
assert expect == data




def test_release():
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
k = Keyboard(f'{tmpdir}/test')
path = random_file()
with open(path, 'ab+') as f:
k = Keyboard(f)
k.release()
f.seek(0)
assert b'\x00\x00\x00\x00\x00\x00\x00\x00' == f.read()
data = f.read()

assert b'\x00\x00\x00\x00\x00\x00\x00\x00' == data

30 changes: 17 additions & 13 deletions tests/mouse_test.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
import tempfile
from zero_hid import Mouse

from utils import random_file

def test_left_click():
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
m = Mouse(f'{tmpdir}/test')
m.left_click()
m.close()
f.seek(0)
assert b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00' == f.read()
path = random_file()
with open(path, 'ab+') as f:
m = Mouse(f)
m.left_click()
f.seek(0)
data = f.read()
f.close()
assert b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00' == data


def test_move():
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
m = Mouse(f'{tmpdir}/test')
m.move_relative(100, 100)
m.close()
f.seek(0)
assert b'\x00dd\x00\x00' == f.read()
path = random_file()
with open(path, 'ab+') as f:
m = Mouse(f)
m.move_relative(100, 100)
f.seek(0)
data = f.read()
f.close()
assert b'\x00dd\x00\x00' == data
11 changes: 11 additions & 0 deletions tests/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import tempfile
import os

def random_file():
# Create a temporary directory
temp_dir = tempfile.mkdtemp()

# Generate a random file name
file_name = tempfile.NamedTemporaryFile(dir=temp_dir, delete=False).name
# Return the path of the random file
return file_name
15 changes: 15 additions & 0 deletions zero_hid/Keyboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def list_layout(self):

def set_layout(self, language='US'):
self.layout = json.loads( pkgutil.get_data(__name__, f"keymaps/{language}.json").decode() )

def type(self, text, delay=0):
for c in text:
key_map = self.layout['Mapping'][c]
Expand All @@ -58,4 +59,18 @@ def press(self, mods: List[int], key_code: int = 0, release=True):
def release(self):
release_keys(self.dev)


def __enter__(self):
return self


def _clean_resources(self):
self.dev.close()

def __exit__(self, exc_type, exc_val, exc_tb):
self._clean_resources()


def close(self):
self._clean_resources()

1 change: 0 additions & 1 deletion zero_hid/Mouse.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ def __enter__(self):


def _clean_resources(self):
print(f'closing handle {self.dev}')
self.dev.close()

def __exit__(self, exc_type, exc_val, exc_tb):
Expand Down

0 comments on commit a526777

Please sign in to comment.