110 lines
3.3 KiB
Python
110 lines
3.3 KiB
Python
import pytest
|
|
|
|
from libretime_api_client.utils import RequestProvider
|
|
from libretime_api_client.version2 import AirtimeApiClient, api_config
|
|
|
|
|
|
@pytest.fixture()
|
|
def config():
|
|
return {
|
|
**api_config,
|
|
"general": {
|
|
"base_dir": "/test",
|
|
"base_port": 80,
|
|
"base_url": "localhost",
|
|
"api_key": "TEST_KEY",
|
|
},
|
|
"api_base": "api",
|
|
}
|
|
|
|
|
|
class MockRequestProvider:
|
|
@staticmethod
|
|
def schedule_url(_post_data=None, params=None, **kwargs):
|
|
return [
|
|
{
|
|
"id": 1,
|
|
"starts": "2021-07-05T11:00:00Z",
|
|
"ends": "2021-07-05T11:01:00.5000Z",
|
|
"instance_id": 2,
|
|
"file": "http://localhost/api/v2/file/3",
|
|
"file_id": 3,
|
|
"fade_in": "00:00:00.500000",
|
|
"fade_out": "00:00:01",
|
|
"cue_in": "00:00:00.142404",
|
|
"cue_out": "01:58:04.463583",
|
|
},
|
|
]
|
|
|
|
@staticmethod
|
|
def show_instance_url(_post_data=None, params=None, **kwargs):
|
|
return {
|
|
"show_id": 4,
|
|
}
|
|
|
|
@staticmethod
|
|
def show_url(_post_data=None, params=None, **kwargs):
|
|
return {
|
|
"name": "Test show",
|
|
}
|
|
|
|
@staticmethod
|
|
def file_url(_post_data=None, params=None, **kwargs):
|
|
return {
|
|
"item_url": "http://localhost/api/v2/files/3/",
|
|
"name": "",
|
|
"mime": "audio/mp3",
|
|
"ftype": "audioclip",
|
|
"filepath": "imported/1/test.mp3",
|
|
"import_status": 0,
|
|
"currently_accessing": 0,
|
|
"mtime": "2021-07-01T23:13:43Z",
|
|
"utime": "2021-07-01T23:12:46Z",
|
|
"md5": "202ae33a642ce475bd8b265ddb11c139",
|
|
"track_title": "Test file.mp3",
|
|
"bit_rate": 320000,
|
|
"sample_rate": 44100,
|
|
"length": "01:58:04.463600",
|
|
"genre": "Test",
|
|
"channels": 2,
|
|
"file_exists": True,
|
|
"replay_gain": "-5.68",
|
|
"cuein": "00:00:00.142404",
|
|
"cueout": "01:58:04.463583",
|
|
"silan_check": False,
|
|
"hidden": False,
|
|
"is_scheduled": True,
|
|
"is_playlist": False,
|
|
"filesize": 283379568,
|
|
"track_type": "MUS",
|
|
"directory": "http://localhost/api/v2/music-dirs/1/",
|
|
"owner": "http://localhost/api/v2/users/1/",
|
|
}
|
|
|
|
|
|
def test_get_schedule(monkeypatch, config):
|
|
client = AirtimeApiClient(None, config)
|
|
client.services = MockRequestProvider()
|
|
schedule = client.get_schedule()
|
|
assert schedule == {
|
|
"media": {
|
|
"2021-07-05-11-00-00": {
|
|
"id": 3,
|
|
"type": "file",
|
|
"metadata": MockRequestProvider.file_url(),
|
|
"row_id": 1,
|
|
"uri": "http://localhost/api/v2/file/3",
|
|
"fade_in": 500.0,
|
|
"fade_out": 1000.0,
|
|
"cue_in": 0.142404,
|
|
"cue_out": 7084.463583,
|
|
"start": "2021-07-05-11-00-00",
|
|
"end": "2021-07-05-11-01-00",
|
|
"show_name": "Test show",
|
|
"replay_gain": "-5.68",
|
|
"independent_event": False,
|
|
"filesize": 283379568,
|
|
},
|
|
},
|
|
}
|