forked from anki/vector-python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontroller_test.py
More file actions
52 lines (37 loc) · 1.75 KB
/
controller_test.py
File metadata and controls
52 lines (37 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import vector_controller
import pytest
class TestFreePlayMode:
@pytest.fixture
def vector_mock(self, mocker):
vector = mocker.Mock()
vector.anim.anim_list = []
return vector
def test_exits_freeplay_mode(self, vector_mock):
remote = vector_controller.RemoteControlVector(vector_mock)
remote.set_freeplay(enabled=False)
vector_mock.conn.request_control.assert_called_once()
def test_enters_freeplay_mode(self, vector_mock):
remote = vector_controller.RemoteControlVector(vector_mock)
remote.set_freeplay(enabled=True)
vector_mock.conn.release_control.assert_called_once()
class TestKeys:
@pytest.fixture
def vector_mock(self, mocker):
vector = mocker.Mock()
vector.anim.anim_list = []
return vector
def test_starts_wheel_motors(self, vector_mock):
remote = vector_controller.RemoteControlVector(vector_mock)
remote.handle_key(ord('W'), False, False, True)
vector_mock.motors.set_wheel_motors.assert_called_once_with(75, 75, 300, 300)
def test_stops_wheel_motors(self, vector_mock):
remote = vector_controller.RemoteControlVector(vector_mock)
remote.handle_key(ord('W'), False, False, False)
vector_mock.motors.set_wheel_motors.assert_called_once_with(0, 0, 0, 0)
def test_multiple_keys_set_wheel_motors(self, vector_mock):
remote = vector_controller.RemoteControlVector(vector_mock)
remote.handle_key(ord('W'), False, False, True)
remote.handle_key(ord('S'), False, False, True)
remote.handle_key(ord('S'), False, False, False)
remote.handle_key(ord('D'), False, False, True)
vector_mock.motors.set_wheel_motors.assert_called_with(125, 25, 500, 100)