Revize cdc18553
Přidáno uživatelem Jakub Šilhavý před asi 3 roky(ů)
client/src/usb_detector/api_client.py | ||
---|---|---|
49 | 49 |
|
50 | 50 |
|
51 | 51 |
def _resend_cached_payloads(): |
52 |
retries = min(_config.max_retries, len(_cache)) |
|
52 |
retries = min(_config.cache_max_retries, len(_cache))
|
|
53 | 53 |
logging.info(f"emptying the cache ({retries} records)") |
54 | 54 |
for _ in range(0, retries): |
55 | 55 |
payload = _cache.pop() |
client/tests/api_client/test_api_client_set_config.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
from unittest import mock |
|
4 |
|
|
5 |
|
|
6 |
@mock.patch('client.src.usb_detector.api_client._init_cache') |
|
7 |
def test_api_client_set_config_1(_init_cache_mock): |
|
8 |
class Config: |
|
9 |
def __init__(self): |
|
10 |
self.server_url = "127.0.0.1" |
|
11 |
self.server_port = "54444" |
|
12 |
self.server_endpoint = "/api/v1/usb-logs" |
|
13 |
|
|
14 |
config = Config() |
|
15 |
api_client.api_client_set_config(config) |
|
16 |
|
|
17 |
assert api_client._config is config |
|
18 |
assert api_client._uri == "127.0.0.1:54444/api/v1/usb-logs" |
client/tests/api_client/test_cache_failed_payload.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
|
|
4 |
class CacheMock: |
|
5 |
|
|
6 |
def __init__(self): |
|
7 |
self._data = [] |
|
8 |
|
|
9 |
def pop(self): |
|
10 |
return self._data.pop() |
|
11 |
|
|
12 |
def append(self, payload): |
|
13 |
self._data.append(payload) |
|
14 |
|
|
15 |
def __len__(self): |
|
16 |
return len(self._data) |
|
17 |
|
|
18 |
|
|
19 |
class ConfigMock: |
|
20 |
|
|
21 |
def __init__(self): |
|
22 |
self.cache_max_entries = 5 |
|
23 |
|
|
24 |
|
|
25 |
def test_cache_failed_payload_1(): |
|
26 |
payload_mock = { |
|
27 |
"vendor_id": 1, |
|
28 |
"product_id": 2 |
|
29 |
} |
|
30 |
cache = CacheMock() |
|
31 |
config = ConfigMock() |
|
32 |
|
|
33 |
api_client._cache = cache |
|
34 |
api_client._config = config |
|
35 |
|
|
36 |
for _ in range(0, config.cache_max_entries + 1): |
|
37 |
api_client._cache_failed_payload(payload_mock) |
|
38 |
|
|
39 |
assert len(api_client._cache) == config.cache_max_entries |
|
40 |
|
|
41 |
|
|
42 |
def test_cache_failed_payload_2(): |
|
43 |
payload_mock = { |
|
44 |
"vendor_id": 1, |
|
45 |
"product_id": 2 |
|
46 |
} |
|
47 |
cache = CacheMock() |
|
48 |
config = ConfigMock() |
|
49 |
|
|
50 |
api_client._cache = cache |
|
51 |
api_client._config = config |
|
52 |
count = int(config.cache_max_entries / 2) |
|
53 |
|
|
54 |
for _ in range(0, count): |
|
55 |
api_client._cache_failed_payload(payload_mock) |
|
56 |
|
|
57 |
assert len(api_client._cache) == count |
|
58 |
|
client/tests/api_client/test_resend_cached_payloads.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
from unittest import mock |
|
4 |
|
|
5 |
|
|
6 |
class CacheMock: |
|
7 |
|
|
8 |
def __init__(self): |
|
9 |
self._data = [] |
|
10 |
|
|
11 |
def pop(self): |
|
12 |
return self._data.pop() |
|
13 |
|
|
14 |
def append(self, payload): |
|
15 |
self._data.append(payload) |
|
16 |
|
|
17 |
def __len__(self): |
|
18 |
return len(self._data) |
|
19 |
|
|
20 |
|
|
21 |
class ConfigMock: |
|
22 |
|
|
23 |
def __init__(self): |
|
24 |
self.cache_max_entries = 5 |
|
25 |
self.max_retries = 3 |
|
26 |
|
|
27 |
|
|
28 |
payload_mock = { |
|
29 |
"device": { |
|
30 |
"vendor_id": 1, |
|
31 |
"product_id": 2 |
|
32 |
} |
|
33 |
} |
|
34 |
|
|
35 |
|
|
36 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
37 |
def test_resend_cached_payloads_1(send_data_mock): |
|
38 |
cache = CacheMock() |
|
39 |
config = ConfigMock() |
|
40 |
|
|
41 |
api_client._cache = cache |
|
42 |
api_client._config = config |
|
43 |
|
|
44 |
for _ in range(0, config.cache_max_entries + 1): |
|
45 |
api_client._cache_failed_payload(payload_mock) |
|
46 |
|
|
47 |
api_client._resend_cached_payloads() |
|
48 |
send_data_mock.assert_called() |
|
49 |
assert len(api_client._cache) == 2 |
|
50 |
|
|
51 |
api_client._resend_cached_payloads() |
|
52 |
assert len(api_client._cache) == 0 |
|
53 |
|
|
54 |
api_client._resend_cached_payloads() |
|
55 |
assert len(api_client._cache) == 0 |
|
56 |
|
|
57 |
|
|
58 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
59 |
def test_resend_cached_payloads_2(send_data_mock): |
|
60 |
cache = CacheMock() |
|
61 |
config = ConfigMock() |
|
62 |
|
|
63 |
api_client._cache = cache |
|
64 |
api_client._config = config |
|
65 |
|
|
66 |
api_client._resend_cached_payloads() |
|
67 |
send_data_mock.assert_not_called() |
|
68 |
assert len(api_client._cache) == 0 |
|
69 |
|
|
70 |
|
|
71 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
72 |
def test_resend_cached_payloads_3(send_data_mock): |
|
73 |
cache = CacheMock() |
|
74 |
config = ConfigMock() |
|
75 |
|
|
76 |
api_client._cache = cache |
|
77 |
api_client._config = config |
|
78 |
|
|
79 |
for _ in range(0, 2): |
|
80 |
api_client._cache_failed_payload(payload_mock) |
|
81 |
|
|
82 |
assert len(api_client._cache) == 2 |
|
83 |
api_client._resend_cached_payloads() |
|
84 |
send_data_mock.assert_called() |
|
85 |
assert len(api_client._cache) == 0 |
|
86 |
|
client/tests/api_client/test_send_data.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
import requests |
|
4 |
from unittest import mock |
|
5 |
|
|
6 |
|
|
7 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
8 |
def test_send_data_1(_cache_failed_payload_mock): |
|
9 |
payload_mock = { |
|
10 |
"device": { |
|
11 |
"vendor_id": 1, |
|
12 |
"product_id": 2 |
|
13 |
} |
|
14 |
} |
|
15 |
|
|
16 |
api_client._uri = None |
|
17 |
api_client.send_data(payload_mock) |
|
18 |
|
|
19 |
args = _cache_failed_payload_mock.call_args.args |
|
20 |
_cache_failed_payload_mock.assert_called() |
|
21 |
assert args[0] == payload_mock |
|
22 |
|
|
23 |
|
|
24 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
25 |
def test_send_data_2(_cache_failed_payload_mock): |
|
26 |
payload_mock = { |
|
27 |
"device": { |
|
28 |
"vendor_id": 1, |
|
29 |
"product_id": 2 |
|
30 |
} |
|
31 |
} |
|
32 |
|
|
33 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
34 |
api_client.send_data(payload_mock) |
|
35 |
|
|
36 |
args = _cache_failed_payload_mock.call_args.args |
|
37 |
_cache_failed_payload_mock.assert_called() |
|
38 |
assert args[0] == payload_mock |
|
39 |
|
|
40 |
|
|
41 |
@mock.patch('client.src.usb_detector.api_client.requests.post') |
|
42 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
43 |
def test_send_data_3(_cache_failed_payload_mock, post_mock): |
|
44 |
payload_mock = { |
|
45 |
"device": { |
|
46 |
"vendor_id": 1, |
|
47 |
"product_id": 2 |
|
48 |
} |
|
49 |
} |
|
50 |
|
|
51 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
52 |
api_client.send_data(payload_mock) |
|
53 |
|
|
54 |
_cache_failed_payload_mock.assert_not_called() |
|
55 |
|
|
56 |
|
|
57 |
@mock.patch('client.src.usb_detector.api_client.requests.post') |
|
58 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
59 |
def test_send_data_4(_cache_failed_payload_mock, post_mock): |
|
60 |
payload_mock = { |
|
61 |
"device": { |
|
62 |
"vendor_id": 1, |
|
63 |
"product_id": 2 |
|
64 |
} |
|
65 |
} |
|
66 |
post_mock.side_effect = requests.exceptions.HTTPError() |
|
67 |
|
|
68 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
69 |
api_client.send_data(payload_mock) |
|
70 |
|
|
71 |
args = _cache_failed_payload_mock.call_args.args |
|
72 |
_cache_failed_payload_mock.assert_called() |
|
73 |
assert args[0] == payload_mock |
client/tests/detector/test_get_connected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_get_connected_devices_1(): |
|
5 |
assert detector._get_connected_devices([], []) == [] |
|
6 |
|
|
7 |
|
|
8 |
def test_get_connected_devices_2(): |
|
9 |
assert detector._get_connected_devices([], None) == [] |
|
10 |
|
|
11 |
|
|
12 |
def test_get_connected_devices_3(): |
|
13 |
assert detector._get_connected_devices(None, []) == [] |
|
14 |
|
|
15 |
|
|
16 |
def test_get_connected_devices_4(): |
|
17 |
assert detector._get_connected_devices(None, None) == [] |
|
18 |
|
|
19 |
|
|
20 |
def test_get_connected_devices_5(): |
|
21 |
assert detector._get_connected_devices([1, 2, 3], None) == [1, 2, 3] |
|
22 |
|
|
23 |
|
|
24 |
def test_get_connected_devices_6(): |
|
25 |
assert detector._get_connected_devices(None, [4, 5, 6]) == [] |
|
26 |
|
|
27 |
|
|
28 |
def test_get_connected_devices_7(): |
|
29 |
assert detector._get_connected_devices([], [4, 5, 6]) == [] |
|
30 |
|
|
31 |
|
|
32 |
def test_get_connected_devices_8(): |
|
33 |
assert detector._get_connected_devices([1, 2, 3], []) == [1, 2, 3] |
|
34 |
|
|
35 |
|
|
36 |
def test_get_connected_devices_9(): |
|
37 |
assert detector._get_connected_devices([1, 2, 3], [2, 3]) == [1] |
|
38 |
|
|
39 |
|
|
40 |
def test_get_connected_devices_10(): |
|
41 |
detected_devices = [ |
|
42 |
{ |
|
43 |
"vendor_id": 1, |
|
44 |
"product_id": 2, |
|
45 |
"serial_number": 3 |
|
46 |
}, |
|
47 |
{ |
|
48 |
"vendor_id": 4, |
|
49 |
"product_id": 5, |
|
50 |
"serial_number": 5 |
|
51 |
} |
|
52 |
] |
|
53 |
last_connected_devices = [ |
|
54 |
{ |
|
55 |
"vendor_id": 1, |
|
56 |
"product_id": 2, |
|
57 |
"serial_number": 3 |
|
58 |
} |
|
59 |
] |
|
60 |
assert detector._get_connected_devices(detected_devices, last_connected_devices) == [detected_devices[1]] |
|
61 |
assert detector._get_connected_devices(detected_devices, None) == detected_devices |
|
62 |
assert detector._get_connected_devices(detected_devices, []) == detected_devices |
client/tests/detector/test_get_disconnected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_get_disconnected_devices_1(): |
|
5 |
assert detector._get_disconnected_devices([], []) == [] |
|
6 |
|
|
7 |
|
|
8 |
def test_get_disconnected_devices_2(): |
|
9 |
assert detector._get_disconnected_devices([], None) == [] |
|
10 |
|
|
11 |
|
|
12 |
def test_get_disconnected_devices_3(): |
|
13 |
assert detector._get_disconnected_devices(None, []) == [] |
|
14 |
|
|
15 |
|
|
16 |
def test_get_disconnected_devices_4(): |
|
17 |
assert detector._get_disconnected_devices(None, None) == [] |
|
18 |
|
|
19 |
|
|
20 |
def test_get_disconnected_devices_5(): |
|
21 |
assert detector._get_disconnected_devices([1, 2, 3, 4, 5], None) == [] |
|
22 |
|
|
23 |
|
|
24 |
def test_get_disconnected_devices_6(): |
|
25 |
assert detector._get_disconnected_devices([1, 2, 3, 4, 5], []) == [] |
|
26 |
|
|
27 |
|
|
28 |
def test_get_disconnected_devices_7(): |
|
29 |
assert detector._get_disconnected_devices([1, 3, 5], [1, 2, 3, 4, 5]) == [2, 4] |
|
30 |
|
|
31 |
|
|
32 |
def test_get_disconnected_devices_8(): |
|
33 |
assert detector._get_disconnected_devices([], [1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5] |
|
34 |
|
|
35 |
|
|
36 |
def test_get_disconnected_devices_9(): |
|
37 |
assert detector._get_disconnected_devices([], [1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5] |
|
38 |
|
|
39 |
|
|
40 |
def test_get_disconnected_devices_10(): |
|
41 |
last_connected_devices = [ |
|
42 |
{ |
|
43 |
"vendor_id": 1, |
|
44 |
"product_id": 2, |
|
45 |
"serial_number": 3 |
|
46 |
}, |
|
47 |
{ |
|
48 |
"vendor_id": 4, |
|
49 |
"product_id": 5, |
|
50 |
"serial_number": 5 |
|
51 |
} |
|
52 |
] |
|
53 |
detected_devices = [ |
|
54 |
{ |
|
55 |
"vendor_id": 1, |
|
56 |
"product_id": 2, |
|
57 |
"serial_number": 3 |
|
58 |
} |
|
59 |
] |
|
60 |
assert detector._get_disconnected_devices(detected_devices, last_connected_devices) == [last_connected_devices[1]] |
|
61 |
assert detector._get_disconnected_devices(detected_devices, None) == [] |
|
62 |
assert detector._get_disconnected_devices(detected_devices, []) == [] |
|
63 |
assert detector._get_disconnected_devices([], last_connected_devices) == last_connected_devices |
|
64 |
assert detector._get_disconnected_devices(None, last_connected_devices) == last_connected_devices |
|
65 |
|
|
66 |
|
client/tests/detector/test_notify_listeners.py | ||
---|---|---|
1 |
from unittest.mock import Mock |
|
2 |
|
|
3 |
from client.src.usb_detector import detector |
|
4 |
|
|
5 |
|
|
6 |
def test_notify_listeners_1(): |
|
7 |
mocks = [Mock() for _ in range(10)] |
|
8 |
detector._notify_listeners([mock.listener for mock in mocks], [1, 2, 3]) |
|
9 |
for mock in mocks: |
|
10 |
mock.listener.assert_called() |
|
11 |
|
|
12 |
|
|
13 |
def test_notify_listeners_2(): |
|
14 |
mocks = [Mock() for _ in range(10)] |
|
15 |
detector._notify_listeners([mock.listener for mock in mocks], []) |
|
16 |
for mock in mocks: |
|
17 |
mock.listener.assert_not_called() |
|
18 |
|
|
19 |
|
|
20 |
def test_notify_listeners_3(): |
|
21 |
mocks = [Mock() for _ in range(10)] |
|
22 |
detector._notify_listeners([mock.listener for mock in mocks], None) |
|
23 |
for mock in mocks: |
|
24 |
mock.listener.assert_not_called() |
client/tests/detector/test_register_listener.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_register_listener_1(): |
|
5 |
def connected_handler(): |
|
6 |
pass |
|
7 |
|
|
8 |
detector.register_listener(connected_handler) |
|
9 |
|
|
10 |
assert connected_handler in detector._listeners_connected |
|
11 |
assert connected_handler not in detector._listeners_disconnected |
|
12 |
|
|
13 |
|
|
14 |
def test_register_listener_2(): |
|
15 |
def connected_handler(): |
|
16 |
pass |
|
17 |
|
|
18 |
detector.register_listener(connected_handler, connected=True) |
|
19 |
|
|
20 |
assert connected_handler in detector._listeners_connected |
|
21 |
assert connected_handler not in detector._listeners_disconnected |
|
22 |
|
|
23 |
|
|
24 |
def test_register_listener_3(): |
|
25 |
def connected_handler(): |
|
26 |
pass |
|
27 |
|
|
28 |
detector.register_listener(connected_handler, connected=False) |
|
29 |
|
|
30 |
assert connected_handler in detector._listeners_disconnected |
|
31 |
assert connected_handler not in detector._listeners_connected |
client/tests/detector/test_update.py | ||
---|---|---|
1 |
from unittest import mock |
|
2 |
from unittest.mock import Mock |
|
3 |
|
|
4 |
from client.src.usb_detector import detector |
|
5 |
|
|
6 |
|
|
7 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
8 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[1, 2, 3]) |
|
9 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
10 |
connected_mocks = [Mock() for _ in range(10)] |
|
11 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
12 |
|
|
13 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
14 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
15 |
|
|
16 |
detector._update() |
|
17 |
assert detector._last_connected_devices == [1, 2, 3] |
|
18 |
for listener_mock in connected_mocks: |
|
19 |
listener_mock.listener.assert_called() |
|
20 |
for listener_mock in disconnected_mocks: |
|
21 |
listener_mock.listener.assert_not_called() |
|
22 |
|
|
23 |
|
|
24 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
25 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[1, 2, 3]) |
|
26 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
27 |
detector._last_connected_devices = [1, 2, 3] |
|
28 |
connected_mocks = [Mock() for _ in range(10)] |
|
29 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
30 |
|
|
31 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
32 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
33 |
|
|
34 |
detector._update() |
|
35 |
assert detector._last_connected_devices == [1, 2, 3] |
|
36 |
for listener_mock in connected_mocks: |
|
37 |
listener_mock.listener.assert_not_called() |
|
38 |
for listener_mock in disconnected_mocks: |
|
39 |
listener_mock.listener.assert_not_called() |
|
40 |
|
|
41 |
|
|
42 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
43 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[]) |
|
44 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
45 |
detector._last_connected_devices = [1, 2, 3] |
|
46 |
connected_mocks = [Mock() for _ in range(10)] |
|
47 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
48 |
|
|
49 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
50 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
51 |
|
|
52 |
detector._update() |
|
53 |
assert detector._last_connected_devices == [] |
|
54 |
for listener_mock in connected_mocks: |
|
55 |
listener_mock.listener.assert_not_called() |
|
56 |
for listener_mock in disconnected_mocks: |
|
57 |
listener_mock.listener.assert_called() |
|
58 |
|
|
59 |
|
|
60 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
61 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[2, 3, 4]) |
|
62 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
63 |
detector._last_connected_devices = [1, 2, 3, 5] |
|
64 |
connected_mocks = [Mock() for _ in range(10)] |
|
65 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
66 |
|
|
67 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
68 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
69 |
|
|
70 |
detector._update() |
|
71 |
assert detector._last_connected_devices == [2, 3, 4] |
|
72 |
for listener_mock in connected_mocks: |
|
73 |
listener_mock.listener.assert_called() |
|
74 |
for listener_mock in disconnected_mocks: |
|
75 |
listener_mock.listener.assert_called() |
client/tests/detector/test_usb_detector_set_config.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_usb_detector_set_config_1(): |
|
5 |
assert None is detector._config |
|
6 |
|
|
7 |
|
|
8 |
def test_usb_detector_set_config_2(): |
|
9 |
class Config: |
|
10 |
pass |
|
11 |
|
|
12 |
config = Config() |
|
13 |
detector.usb_detector_set_config(config) |
|
14 |
assert config is detector._config |
client/tests/event_listener/test_get_metadata.py | ||
---|---|---|
1 |
import getpass |
|
2 |
import platform |
|
3 |
from datetime import datetime |
|
4 |
|
|
5 |
from client.src.usb_detector import event_listener |
|
6 |
|
|
7 |
|
|
8 |
def test_get_metadata_1(): |
|
9 |
expected_metadata = { |
|
10 |
"username": getpass.getuser(), |
|
11 |
"hostname": platform.uname().node, |
|
12 |
"timestamp": str(datetime.now()).split('.')[0] |
|
13 |
} |
|
14 |
|
|
15 |
actual_metadata = event_listener._get_metadata() |
|
16 |
|
|
17 |
assert actual_metadata["username"] == expected_metadata["username"] |
|
18 |
assert actual_metadata["hostname"] == expected_metadata["hostname"] |
|
19 |
assert actual_metadata["timestamp"] == expected_metadata["timestamp"] |
client/tests/event_listener/test_send_payload_to_server.py | ||
---|---|---|
1 |
import platform |
|
2 |
import getpass |
|
3 |
from unittest import mock |
|
4 |
from datetime import datetime |
|
5 |
|
|
6 |
import client.src.usb_detector.event_listener |
|
7 |
|
|
8 |
|
|
9 |
@mock.patch('client.src.usb_detector.event_listener.send_data') |
|
10 |
def test_send_payload_to_server_1(send_data_mock): |
|
11 |
device_mock = { |
|
12 |
"vendor_id": 1, |
|
13 |
"product_id": 2 |
|
14 |
} |
|
15 |
metadata_mock = { |
|
16 |
"username": getpass.getuser(), |
|
17 |
"hostname": platform.uname().node, |
|
18 |
"timestamp": str(datetime.now()).split('.')[0] |
|
19 |
} |
|
20 |
status_mock = "connected" |
|
21 |
|
|
22 |
metadata_mock["device"] = device_mock |
|
23 |
metadata_mock["status"] = status_mock |
|
24 |
|
|
25 |
client.src.usb_detector.event_listener._send_payload_to_server(device_mock, status_mock) |
|
26 |
|
|
27 |
args = send_data_mock.call_args.args |
|
28 |
send_data_mock.assert_called() |
|
29 |
assert args[0] == metadata_mock |
client/tests/test_usb_detector/test_api_client_set_config.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
from unittest import mock |
|
4 |
|
|
5 |
|
|
6 |
@mock.patch('client.src.usb_detector.api_client._init_cache') |
|
7 |
def test_api_client_set_config_1(_init_cache_mock): |
|
8 |
class Config: |
|
9 |
def __init__(self): |
|
10 |
self.server_url = "127.0.0.1" |
|
11 |
self.server_port = "54444" |
|
12 |
self.server_endpoint = "/api/v1/usb-logs" |
|
13 |
|
|
14 |
config = Config() |
|
15 |
api_client.api_client_set_config(config) |
|
16 |
|
|
17 |
assert api_client._config is config |
|
18 |
assert api_client._uri == "127.0.0.1:54444/api/v1/usb-logs" |
client/tests/test_usb_detector/test_cache_failed_payload.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
|
|
4 |
class CacheMock: |
|
5 |
|
|
6 |
def __init__(self): |
|
7 |
self._data = [] |
|
8 |
|
|
9 |
def pop(self): |
|
10 |
return self._data.pop() |
|
11 |
|
|
12 |
def append(self, payload): |
|
13 |
self._data.append(payload) |
|
14 |
|
|
15 |
def __len__(self): |
|
16 |
return len(self._data) |
|
17 |
|
|
18 |
|
|
19 |
class ConfigMock: |
|
20 |
|
|
21 |
def __init__(self): |
|
22 |
self.cache_max_entries = 5 |
|
23 |
|
|
24 |
|
|
25 |
def test_cache_failed_payload_1(): |
|
26 |
payload_mock = { |
|
27 |
"vendor_id": 1, |
|
28 |
"product_id": 2 |
|
29 |
} |
|
30 |
cache = CacheMock() |
|
31 |
config = ConfigMock() |
|
32 |
|
|
33 |
api_client._cache = cache |
|
34 |
api_client._config = config |
|
35 |
|
|
36 |
for _ in range(0, config.cache_max_entries + 1): |
|
37 |
api_client._cache_failed_payload(payload_mock) |
|
38 |
|
|
39 |
assert len(api_client._cache) == config.cache_max_entries |
|
40 |
|
|
41 |
|
|
42 |
def test_cache_failed_payload_2(): |
|
43 |
payload_mock = { |
|
44 |
"vendor_id": 1, |
|
45 |
"product_id": 2 |
|
46 |
} |
|
47 |
cache = CacheMock() |
|
48 |
config = ConfigMock() |
|
49 |
|
|
50 |
api_client._cache = cache |
|
51 |
api_client._config = config |
|
52 |
count = int(config.cache_max_entries / 2) |
|
53 |
|
|
54 |
for _ in range(0, count): |
|
55 |
api_client._cache_failed_payload(payload_mock) |
|
56 |
|
|
57 |
assert len(api_client._cache) == count |
|
58 |
|
client/tests/test_usb_detector/test_get_connected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_get_connected_devices_1(): |
|
5 |
assert detector._get_connected_devices([], []) == [] |
|
6 |
|
|
7 |
|
|
8 |
def test_get_connected_devices_2(): |
|
9 |
assert detector._get_connected_devices([], None) == [] |
|
10 |
|
|
11 |
|
|
12 |
def test_get_connected_devices_3(): |
|
13 |
assert detector._get_connected_devices(None, []) == [] |
|
14 |
|
|
15 |
|
|
16 |
def test_get_connected_devices_4(): |
|
17 |
assert detector._get_connected_devices(None, None) == [] |
|
18 |
|
|
19 |
|
|
20 |
def test_get_connected_devices_5(): |
|
21 |
assert detector._get_connected_devices([1, 2, 3], None) == [1, 2, 3] |
|
22 |
|
|
23 |
|
|
24 |
def test_get_connected_devices_6(): |
|
25 |
assert detector._get_connected_devices(None, [4, 5, 6]) == [] |
|
26 |
|
|
27 |
|
|
28 |
def test_get_connected_devices_7(): |
|
29 |
assert detector._get_connected_devices([], [4, 5, 6]) == [] |
|
30 |
|
|
31 |
|
|
32 |
def test_get_connected_devices_8(): |
|
33 |
assert detector._get_connected_devices([1, 2, 3], []) == [1, 2, 3] |
|
34 |
|
|
35 |
|
|
36 |
def test_get_connected_devices_9(): |
|
37 |
assert detector._get_connected_devices([1, 2, 3], [2, 3]) == [1] |
|
38 |
|
|
39 |
|
|
40 |
def test_get_connected_devices_10(): |
|
41 |
detected_devices = [ |
|
42 |
{ |
|
43 |
"vendor_id": 1, |
|
44 |
"product_id": 2, |
|
45 |
"serial_number": 3 |
|
46 |
}, |
|
47 |
{ |
|
48 |
"vendor_id": 4, |
|
49 |
"product_id": 5, |
|
50 |
"serial_number": 5 |
|
51 |
} |
|
52 |
] |
|
53 |
last_connected_devices = [ |
|
54 |
{ |
|
55 |
"vendor_id": 1, |
|
56 |
"product_id": 2, |
|
57 |
"serial_number": 3 |
|
58 |
} |
|
59 |
] |
|
60 |
assert detector._get_connected_devices(detected_devices, last_connected_devices) == [detected_devices[1]] |
|
61 |
assert detector._get_connected_devices(detected_devices, None) == detected_devices |
|
62 |
assert detector._get_connected_devices(detected_devices, []) == detected_devices |
client/tests/test_usb_detector/test_get_disconnected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_get_disconnected_devices_1(): |
|
5 |
assert detector._get_disconnected_devices([], []) == [] |
|
6 |
|
|
7 |
|
|
8 |
def test_get_disconnected_devices_2(): |
|
9 |
assert detector._get_disconnected_devices([], None) == [] |
|
10 |
|
|
11 |
|
|
12 |
def test_get_disconnected_devices_3(): |
|
13 |
assert detector._get_disconnected_devices(None, []) == [] |
|
14 |
|
|
15 |
|
|
16 |
def test_get_disconnected_devices_4(): |
|
17 |
assert detector._get_disconnected_devices(None, None) == [] |
|
18 |
|
|
19 |
|
|
20 |
def test_get_disconnected_devices_5(): |
|
21 |
assert detector._get_disconnected_devices([1, 2, 3, 4, 5], None) == [] |
|
22 |
|
|
23 |
|
|
24 |
def test_get_disconnected_devices_6(): |
|
25 |
assert detector._get_disconnected_devices([1, 2, 3, 4, 5], []) == [] |
|
26 |
|
|
27 |
|
|
28 |
def test_get_disconnected_devices_7(): |
|
29 |
assert detector._get_disconnected_devices([1, 3, 5], [1, 2, 3, 4, 5]) == [2, 4] |
|
30 |
|
|
31 |
|
|
32 |
def test_get_disconnected_devices_8(): |
|
33 |
assert detector._get_disconnected_devices([], [1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5] |
|
34 |
|
|
35 |
|
|
36 |
def test_get_disconnected_devices_9(): |
|
37 |
assert detector._get_disconnected_devices([], [1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5] |
|
38 |
|
|
39 |
|
|
40 |
def test_get_disconnected_devices_10(): |
|
41 |
last_connected_devices = [ |
|
42 |
{ |
|
43 |
"vendor_id": 1, |
|
44 |
"product_id": 2, |
|
45 |
"serial_number": 3 |
|
46 |
}, |
|
47 |
{ |
|
48 |
"vendor_id": 4, |
|
49 |
"product_id": 5, |
|
50 |
"serial_number": 5 |
|
51 |
} |
|
52 |
] |
|
53 |
detected_devices = [ |
|
54 |
{ |
|
55 |
"vendor_id": 1, |
|
56 |
"product_id": 2, |
|
57 |
"serial_number": 3 |
|
58 |
} |
|
59 |
] |
|
60 |
assert detector._get_disconnected_devices(detected_devices, last_connected_devices) == [last_connected_devices[1]] |
|
61 |
assert detector._get_disconnected_devices(detected_devices, None) == [] |
|
62 |
assert detector._get_disconnected_devices(detected_devices, []) == [] |
|
63 |
assert detector._get_disconnected_devices([], last_connected_devices) == last_connected_devices |
|
64 |
assert detector._get_disconnected_devices(None, last_connected_devices) == last_connected_devices |
|
65 |
|
|
66 |
|
client/tests/test_usb_detector/test_get_metadata.py | ||
---|---|---|
1 |
import getpass |
|
2 |
import platform |
|
3 |
from datetime import datetime |
|
4 |
|
|
5 |
from client.src.usb_detector import event_listener |
|
6 |
|
|
7 |
|
|
8 |
def test_get_metadata_1(): |
|
9 |
expected_metadata = { |
|
10 |
"username": getpass.getuser(), |
|
11 |
"hostname": platform.uname().node, |
|
12 |
"timestamp": str(datetime.now()).split('.')[0] |
|
13 |
} |
|
14 |
|
|
15 |
actual_metadata = event_listener._get_metadata() |
|
16 |
|
|
17 |
assert actual_metadata["username"] == expected_metadata["username"] |
|
18 |
assert actual_metadata["hostname"] == expected_metadata["hostname"] |
|
19 |
assert actual_metadata["timestamp"] == expected_metadata["timestamp"] |
client/tests/test_usb_detector/test_notify_listeners.py | ||
---|---|---|
1 |
from unittest.mock import Mock |
|
2 |
|
|
3 |
from client.src.usb_detector import detector |
|
4 |
|
|
5 |
|
|
6 |
def test_notify_listeners_1(): |
|
7 |
mocks = [Mock() for _ in range(10)] |
|
8 |
detector._notify_listeners([mock.listener for mock in mocks], [1, 2, 3]) |
|
9 |
for mock in mocks: |
|
10 |
mock.listener.assert_called() |
|
11 |
|
|
12 |
|
|
13 |
def test_notify_listeners_2(): |
|
14 |
mocks = [Mock() for _ in range(10)] |
|
15 |
detector._notify_listeners([mock.listener for mock in mocks], []) |
|
16 |
for mock in mocks: |
|
17 |
mock.listener.assert_not_called() |
|
18 |
|
|
19 |
|
|
20 |
def test_notify_listeners_3(): |
|
21 |
mocks = [Mock() for _ in range(10)] |
|
22 |
detector._notify_listeners([mock.listener for mock in mocks], None) |
|
23 |
for mock in mocks: |
|
24 |
mock.listener.assert_not_called() |
client/tests/test_usb_detector/test_read_connected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector.usb_reader import read_connected_devices |
|
2 |
|
|
3 |
|
|
4 |
def test_read_connected_devices_1(): |
|
5 |
# This test assumes that there is no USB plugged in. |
|
6 |
assert read_connected_devices() == [] |
client/tests/test_usb_detector/test_register_listener.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_register_listener_1(): |
|
5 |
def connected_handler(): |
|
6 |
pass |
|
7 |
|
|
8 |
detector.register_listener(connected_handler) |
|
9 |
|
|
10 |
assert connected_handler in detector._listeners_connected |
|
11 |
assert connected_handler not in detector._listeners_disconnected |
|
12 |
|
|
13 |
|
|
14 |
def test_register_listener_2(): |
|
15 |
def connected_handler(): |
|
16 |
pass |
|
17 |
|
|
18 |
detector.register_listener(connected_handler, connected=True) |
|
19 |
|
|
20 |
assert connected_handler in detector._listeners_connected |
|
21 |
assert connected_handler not in detector._listeners_disconnected |
|
22 |
|
|
23 |
|
|
24 |
def test_register_listener_3(): |
|
25 |
def connected_handler(): |
|
26 |
pass |
|
27 |
|
|
28 |
detector.register_listener(connected_handler, connected=False) |
|
29 |
|
|
30 |
assert connected_handler in detector._listeners_disconnected |
|
31 |
assert connected_handler not in detector._listeners_connected |
client/tests/test_usb_detector/test_resend_cached_payloads.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
from unittest import mock |
|
4 |
|
|
5 |
|
|
6 |
class CacheMock: |
|
7 |
|
|
8 |
def __init__(self): |
|
9 |
self._data = [] |
|
10 |
|
|
11 |
def pop(self): |
|
12 |
return self._data.pop() |
|
13 |
|
|
14 |
def append(self, payload): |
|
15 |
self._data.append(payload) |
|
16 |
|
|
17 |
def __len__(self): |
|
18 |
return len(self._data) |
|
19 |
|
|
20 |
|
|
21 |
class ConfigMock: |
|
22 |
|
|
23 |
def __init__(self): |
|
24 |
self.cache_max_entries = 5 |
|
25 |
self.cache_max_retries = 3 |
|
26 |
|
|
27 |
|
|
28 |
payload_mock = { |
|
29 |
"device": { |
|
30 |
"vendor_id": 1, |
|
31 |
"product_id": 2 |
|
32 |
} |
|
33 |
} |
|
34 |
|
|
35 |
|
|
36 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
37 |
def test_resend_cached_payloads_1(send_data_mock): |
|
38 |
cache = CacheMock() |
|
39 |
config = ConfigMock() |
|
40 |
|
|
41 |
api_client._cache = cache |
|
42 |
api_client._config = config |
|
43 |
|
|
44 |
for _ in range(0, config.cache_max_entries + 1): |
|
45 |
api_client._cache_failed_payload(payload_mock) |
|
46 |
|
|
47 |
api_client._resend_cached_payloads() |
|
48 |
send_data_mock.assert_called() |
|
49 |
assert len(api_client._cache) == 2 |
|
50 |
|
|
51 |
api_client._resend_cached_payloads() |
|
52 |
assert len(api_client._cache) == 0 |
|
53 |
|
|
54 |
api_client._resend_cached_payloads() |
|
55 |
assert len(api_client._cache) == 0 |
|
56 |
|
|
57 |
|
|
58 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
59 |
def test_resend_cached_payloads_2(send_data_mock): |
|
60 |
cache = CacheMock() |
|
61 |
config = ConfigMock() |
|
62 |
|
|
63 |
api_client._cache = cache |
|
64 |
api_client._config = config |
|
65 |
|
|
66 |
api_client._resend_cached_payloads() |
|
67 |
send_data_mock.assert_not_called() |
|
68 |
assert len(api_client._cache) == 0 |
|
69 |
|
|
70 |
|
|
71 |
@mock.patch('client.src.usb_detector.api_client.send_data') |
|
72 |
def test_resend_cached_payloads_3(send_data_mock): |
|
73 |
cache = CacheMock() |
|
74 |
config = ConfigMock() |
|
75 |
|
|
76 |
api_client._cache = cache |
|
77 |
api_client._config = config |
|
78 |
|
|
79 |
for _ in range(0, 2): |
|
80 |
api_client._cache_failed_payload(payload_mock) |
|
81 |
|
|
82 |
assert len(api_client._cache) == 2 |
|
83 |
api_client._resend_cached_payloads() |
|
84 |
send_data_mock.assert_called() |
|
85 |
assert len(api_client._cache) == 0 |
|
86 |
|
client/tests/test_usb_detector/test_send_data.py | ||
---|---|---|
1 |
from client.src.usb_detector import api_client |
|
2 |
|
|
3 |
import requests |
|
4 |
from unittest import mock |
|
5 |
|
|
6 |
|
|
7 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
8 |
def test_send_data_1(_cache_failed_payload_mock): |
|
9 |
payload_mock = { |
|
10 |
"device": { |
|
11 |
"vendor_id": 1, |
|
12 |
"product_id": 2 |
|
13 |
} |
|
14 |
} |
|
15 |
|
|
16 |
api_client._uri = None |
|
17 |
api_client.send_data(payload_mock) |
|
18 |
|
|
19 |
args = _cache_failed_payload_mock.call_args.args |
|
20 |
_cache_failed_payload_mock.assert_called() |
|
21 |
assert args[0] == payload_mock |
|
22 |
|
|
23 |
|
|
24 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
25 |
def test_send_data_2(_cache_failed_payload_mock): |
|
26 |
payload_mock = { |
|
27 |
"device": { |
|
28 |
"vendor_id": 1, |
|
29 |
"product_id": 2 |
|
30 |
} |
|
31 |
} |
|
32 |
|
|
33 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
34 |
api_client.send_data(payload_mock) |
|
35 |
|
|
36 |
args = _cache_failed_payload_mock.call_args.args |
|
37 |
_cache_failed_payload_mock.assert_called() |
|
38 |
assert args[0] == payload_mock |
|
39 |
|
|
40 |
|
|
41 |
@mock.patch('client.src.usb_detector.api_client.requests.post') |
|
42 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
43 |
def test_send_data_3(_cache_failed_payload_mock, post_mock): |
|
44 |
payload_mock = { |
|
45 |
"device": { |
|
46 |
"vendor_id": 1, |
|
47 |
"product_id": 2 |
|
48 |
} |
|
49 |
} |
|
50 |
|
|
51 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
52 |
api_client.send_data(payload_mock) |
|
53 |
|
|
54 |
_cache_failed_payload_mock.assert_not_called() |
|
55 |
|
|
56 |
|
|
57 |
@mock.patch('client.src.usb_detector.api_client.requests.post') |
|
58 |
@mock.patch('client.src.usb_detector.api_client._cache_failed_payload') |
|
59 |
def test_send_data_4(_cache_failed_payload_mock, post_mock): |
|
60 |
payload_mock = { |
|
61 |
"device": { |
|
62 |
"vendor_id": 1, |
|
63 |
"product_id": 2 |
|
64 |
} |
|
65 |
} |
|
66 |
post_mock.side_effect = requests.exceptions.HTTPError() |
|
67 |
|
|
68 |
api_client._uri = "127.0.0.1:54444/api/v1/usb-logs" |
|
69 |
api_client.send_data(payload_mock) |
|
70 |
|
|
71 |
args = _cache_failed_payload_mock.call_args.args |
|
72 |
_cache_failed_payload_mock.assert_called() |
|
73 |
assert args[0] == payload_mock |
client/tests/test_usb_detector/test_send_payload_to_server.py | ||
---|---|---|
1 |
import platform |
|
2 |
import getpass |
|
3 |
from unittest import mock |
|
4 |
from datetime import datetime |
|
5 |
|
|
6 |
import client.src.usb_detector.event_listener |
|
7 |
|
|
8 |
|
|
9 |
@mock.patch('client.src.usb_detector.event_listener.send_data') |
|
10 |
def test_send_payload_to_server_1(send_data_mock): |
|
11 |
device_mock = { |
|
12 |
"vendor_id": 1, |
|
13 |
"product_id": 2 |
|
14 |
} |
|
15 |
metadata_mock = { |
|
16 |
"username": getpass.getuser(), |
|
17 |
"hostname": platform.uname().node, |
|
18 |
"timestamp": str(datetime.now()).split('.')[0] |
|
19 |
} |
|
20 |
status_mock = "connected" |
|
21 |
|
|
22 |
metadata_mock["device"] = device_mock |
|
23 |
metadata_mock["status"] = status_mock |
|
24 |
|
|
25 |
client.src.usb_detector.event_listener._send_payload_to_server(device_mock, status_mock) |
|
26 |
|
|
27 |
args = send_data_mock.call_args.args |
|
28 |
send_data_mock.assert_called() |
|
29 |
assert args[0] == metadata_mock |
client/tests/test_usb_detector/test_update.py | ||
---|---|---|
1 |
from unittest import mock |
|
2 |
from unittest.mock import Mock |
|
3 |
|
|
4 |
from client.src.usb_detector import detector |
|
5 |
|
|
6 |
|
|
7 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
8 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[1, 2, 3]) |
|
9 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
10 |
connected_mocks = [Mock() for _ in range(10)] |
|
11 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
12 |
|
|
13 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
14 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
15 |
|
|
16 |
detector._update() |
|
17 |
assert detector._last_connected_devices == [1, 2, 3] |
|
18 |
for listener_mock in connected_mocks: |
|
19 |
listener_mock.listener.assert_called() |
|
20 |
for listener_mock in disconnected_mocks: |
|
21 |
listener_mock.listener.assert_not_called() |
|
22 |
|
|
23 |
|
|
24 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
25 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[1, 2, 3]) |
|
26 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
27 |
detector._last_connected_devices = [1, 2, 3] |
|
28 |
connected_mocks = [Mock() for _ in range(10)] |
|
29 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
30 |
|
|
31 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
32 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
33 |
|
|
34 |
detector._update() |
|
35 |
assert detector._last_connected_devices == [1, 2, 3] |
|
36 |
for listener_mock in connected_mocks: |
|
37 |
listener_mock.listener.assert_not_called() |
|
38 |
for listener_mock in disconnected_mocks: |
|
39 |
listener_mock.listener.assert_not_called() |
|
40 |
|
|
41 |
|
|
42 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
43 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[]) |
|
44 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
45 |
detector._last_connected_devices = [1, 2, 3] |
|
46 |
connected_mocks = [Mock() for _ in range(10)] |
|
47 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
48 |
|
|
49 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
50 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
51 |
|
|
52 |
detector._update() |
|
53 |
assert detector._last_connected_devices == [] |
|
54 |
for listener_mock in connected_mocks: |
|
55 |
listener_mock.listener.assert_not_called() |
|
56 |
for listener_mock in disconnected_mocks: |
|
57 |
listener_mock.listener.assert_called() |
|
58 |
|
|
59 |
|
|
60 |
@mock.patch('client.src.usb_detector.detector._store_connected_devices') |
|
61 |
@mock.patch('client.src.usb_detector.detector.read_connected_devices', return_value=[2, 3, 4]) |
|
62 |
def test_update_1(read_connected_devices_mock, _store_connected_devices_mock): |
|
63 |
detector._last_connected_devices = [1, 2, 3, 5] |
|
64 |
connected_mocks = [Mock() for _ in range(10)] |
|
65 |
detector._listeners_connected = [listener_mock.listener for listener_mock in connected_mocks] |
|
66 |
|
|
67 |
disconnected_mocks = [Mock() for _ in range(10)] |
|
68 |
detector._listeners_disconnected = [listener_mock.listener for listener_mock in disconnected_mocks] |
|
69 |
|
|
70 |
detector._update() |
|
71 |
assert detector._last_connected_devices == [2, 3, 4] |
|
72 |
for listener_mock in connected_mocks: |
|
73 |
listener_mock.listener.assert_called() |
|
74 |
for listener_mock in disconnected_mocks: |
|
75 |
listener_mock.listener.assert_called() |
client/tests/test_usb_detector/test_usb_detector_set_config.py | ||
---|---|---|
1 |
from client.src.usb_detector import detector |
|
2 |
|
|
3 |
|
|
4 |
def test_usb_detector_set_config_1(): |
|
5 |
assert None is detector._config |
|
6 |
|
|
7 |
|
|
8 |
def test_usb_detector_set_config_2(): |
|
9 |
class Config: |
|
10 |
pass |
|
11 |
|
|
12 |
config = Config() |
|
13 |
detector.usb_detector_set_config(config) |
|
14 |
assert config is detector._config |
client/tests/usb_reader/test_read_connected_devices.py | ||
---|---|---|
1 |
from client.src.usb_detector.usb_reader import read_connected_devices |
|
2 |
|
|
3 |
|
|
4 |
def test_read_connected_devices_1(): |
|
5 |
# This test assumes that there is no USB plugged in. |
|
6 |
assert read_connected_devices() == [] |
Také k dispozici: Unified diff
re #9421 Restructured the test folder