forked from yozik04/vallox_websocket_api
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_data_model.py
More file actions
36 lines (26 loc) · 978 Bytes
/
test_data_model.py
File metadata and controls
36 lines (26 loc) · 978 Bytes
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
from pathlib import Path
import pytest
from vallox_websocket_api.data.model import DataModel
js_folder = Path(__file__).parent / "js"
js_files = [
js_file.name
for js_file in js_folder.glob("*.js")
if not js_file.name.startswith("_")
]
json_folder = Path(__file__).parent.parent.parent / "vallox_websocket_api" / "data"
json_files = [json_file.name for json_file in json_folder.glob("*.json")]
@pytest.fixture
def data_model():
return DataModel()
@pytest.mark.asyncio
@pytest.mark.parametrize("js_file", js_files)
async def test_read_model_from_js_file(data_model, js_file):
# Test reading model from js file
await data_model.read_model_from_js_file(js_folder / js_file)
assert data_model.is_valid
@pytest.mark.asyncio
@pytest.mark.parametrize("json_file", json_files)
async def test_read_bundled(data_model, json_file):
# Test reading model from js file
await data_model.read_bundled(json_file[:-5])
assert data_model.is_valid