Skip to content

Commit 1e075ee

Browse files
committed
Add unittest
1 parent 7a4a81a commit 1e075ee

File tree

1 file changed

+50
-5
lines changed

1 file changed

+50
-5
lines changed

tests/test_reader.py

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
from unittest.mock import Mock, patch
2+
13
import pandas as pd
24
from pytest import mark
35

46
from harp.io import REFERENCE_EPOCH, MessageType
5-
from harp.reader import create_reader
7+
from harp.reader import DeviceReader, Model, create_reader, read_schema
68
from tests.params import DeviceSchemaParam
79

810
testdata = [
@@ -24,10 +26,7 @@
2426
]
2527

2628

27-
@mark.parametrize("schemaFile", testdata)
28-
@mark.filterwarnings("ignore:Call to deprecated")
29-
def test_create_reader(schemaFile: DeviceSchemaParam):
30-
reader = create_reader(schemaFile.path, epoch=REFERENCE_EPOCH)
29+
def helper_test_reader(reader: DeviceReader, schemaFile: DeviceSchemaParam) -> None:
3130
schemaFile.assert_schema(reader.device)
3231

3332
whoAmI = reader.WhoAmI.read()
@@ -42,3 +41,49 @@ def test_create_reader(schemaFile: DeviceSchemaParam):
4241
for register_name in schemaFile.expected_registers:
4342
data = reader.registers[register_name].read()
4443
assert isinstance(data.index, pd.DatetimeIndex)
44+
45+
46+
@mark.parametrize("schemaFile", testdata)
47+
@mark.filterwarnings("ignore:Call to deprecated")
48+
def test_create_reader(schemaFile: DeviceSchemaParam):
49+
reader = create_reader(schemaFile.path, epoch=REFERENCE_EPOCH)
50+
helper_test_reader(reader, schemaFile)
51+
52+
53+
@mark.parametrize("schemaFile", testdata)
54+
def test_create_reader_from_file(schemaFile: DeviceSchemaParam):
55+
reader = DeviceReader.from_file("./tests/data/device.yml", epoch=REFERENCE_EPOCH)
56+
helper_test_reader(reader, schemaFile)
57+
58+
59+
@mark.parametrize("schemaFile", testdata)
60+
def test_create_reader_from_dataset(schemaFile: DeviceSchemaParam):
61+
reader = DeviceReader.from_dataset("./tests/data", epoch=REFERENCE_EPOCH)
62+
helper_test_reader(reader, schemaFile)
63+
64+
65+
@mark.parametrize("schemaFile", testdata)
66+
def test_create_reader_from_str(schemaFile: DeviceSchemaParam):
67+
with open("./tests/data/device.yml", "r", encoding="utf-8") as f:
68+
reader = DeviceReader.from_str(f.read(), base_path="./tests/data/", epoch=REFERENCE_EPOCH)
69+
helper_test_reader(reader, schemaFile)
70+
71+
72+
@mark.parametrize("schemaFile", testdata)
73+
def test_create_reader_from_model(schemaFile: DeviceSchemaParam):
74+
model = read_schema("./tests/data/device.yml", include_common_registers=True)
75+
reader = DeviceReader.from_model(model=model, base_path="./tests/data/", epoch=REFERENCE_EPOCH)
76+
helper_test_reader(reader, schemaFile)
77+
78+
79+
@mark.parametrize("schemaFile", testdata)
80+
@patch("requests.get")
81+
def test_create_reader_from_url(mock_url_get, schemaFile: DeviceSchemaParam):
82+
mock_response = Mock()
83+
mock_response.status_code = 200
84+
mock_response.text = open("./tests/data/device.yml", "r", encoding="utf-8").read()
85+
86+
mock_url_get.return_value = mock_response
87+
88+
reader = DeviceReader.from_url("mocked_url", base_path="./tests/data/", epoch=REFERENCE_EPOCH)
89+
helper_test_reader(reader, schemaFile)

0 commit comments

Comments
 (0)