forked from rc/aircox
Feat: packaging (#127)
- Add configuration files for packaging - Precommit now uses ruff Co-authored-by: bkfox <thomas bkfox net> Reviewed-on: rc/aircox#127
This commit is contained in:
@ -21,30 +21,21 @@ class TestDiffusion:
|
||||
def test_update(self, monitor, schedules, sched_initials, logger):
|
||||
monitor.update()
|
||||
|
||||
diffusions = models.Diffusion.objects.filter(
|
||||
schedule__in=sched_initials
|
||||
)
|
||||
diffusions = models.Diffusion.objects.filter(schedule__in=sched_initials)
|
||||
by_date = {}
|
||||
for diff in diffusions:
|
||||
assert diff.episode_id
|
||||
by_date.setdefault(diff.schedule_id, set()).add(
|
||||
(diff.start, diff.end)
|
||||
)
|
||||
by_date.setdefault(diff.schedule_id, set()).add((diff.start, diff.end))
|
||||
|
||||
for schedule in sched_initials:
|
||||
if schedule.pk not in by_date:
|
||||
continue
|
||||
_, items = schedule.diffusions_of_month(now)
|
||||
assert all(
|
||||
(item.start, item.end) in by_date[schedule.pk]
|
||||
for item in items
|
||||
)
|
||||
assert all((item.start, item.end) in by_date[schedule.pk] for item in items)
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_clean(self, monitor, episode):
|
||||
start = tz.make_aware(
|
||||
datetime.combine(monitor.date - timedelta(days=1), time(10, 20))
|
||||
)
|
||||
start = tz.make_aware(datetime.combine(monitor.date - timedelta(days=1), time(10, 20)))
|
||||
diff = models.Diffusion(
|
||||
type=models.Diffusion.TYPE_UNCONFIRMED,
|
||||
episode=episode,
|
||||
|
@ -79,16 +79,12 @@ class TestLogArchiver:
|
||||
def test_archive_then_load_file(self, archiver, file, gzip, logs, logs_qs):
|
||||
# before logs are deleted from db, get data
|
||||
sorted = archiver.sort_logs(logs_qs)
|
||||
paths = {
|
||||
archiver.get_path(station, date) for station, date in sorted.keys()
|
||||
}
|
||||
paths = {archiver.get_path(station, date) for station, date in sorted.keys()}
|
||||
|
||||
count = archiver.archive(logs_qs, keep=False)
|
||||
assert count == len(logs)
|
||||
assert not logs_qs.count()
|
||||
assert all(
|
||||
path in paths for path, *_ in gzip._traces("open", args=True)
|
||||
)
|
||||
assert all(path in paths for path, *_ in gzip._traces("open", args=True))
|
||||
|
||||
results = archiver.load_file("dummy path")
|
||||
assert results
|
||||
@ -104,7 +100,4 @@ class TestLogArchiver:
|
||||
|
||||
assert sorted
|
||||
for (station, date), logs in sorted.items():
|
||||
assert all(
|
||||
log.station == station and log.date.date() == date
|
||||
for log in logs
|
||||
)
|
||||
assert all(log.station == station and log.date.date() == date for log in logs)
|
||||
|
@ -53,13 +53,7 @@ def path_infos():
|
||||
|
||||
@pytest.fixture
|
||||
def sound_files(path_infos):
|
||||
return {
|
||||
k: r
|
||||
for k, r in (
|
||||
(path, SoundFile(conf.MEDIA_ROOT + "/" + path))
|
||||
for path in path_infos.keys()
|
||||
)
|
||||
}
|
||||
return {k: r for k, r in ((path, SoundFile(conf.MEDIA_ROOT + "/" + path)) for path in path_infos.keys())}
|
||||
|
||||
|
||||
def test_sound_path(sound_files):
|
||||
@ -78,17 +72,9 @@ def test_read_path(path_infos, sound_files):
|
||||
|
||||
def _setup_diff(program, info):
|
||||
episode = models.Episode(program=program, title="test-episode")
|
||||
at = tz.datetime(
|
||||
**{
|
||||
k: info[k]
|
||||
for k in ("year", "month", "day", "hour", "minute")
|
||||
if info.get(k)
|
||||
}
|
||||
)
|
||||
at = tz.datetime(**{k: info[k] for k in ("year", "month", "day", "hour", "minute") if info.get(k)})
|
||||
at = tz.make_aware(at)
|
||||
diff = models.Diffusion(
|
||||
episode=episode, start=at, end=at + timedelta(hours=1)
|
||||
)
|
||||
diff = models.Diffusion(episode=episode, start=at, end=at + timedelta(hours=1))
|
||||
episode.save()
|
||||
diff.save()
|
||||
return diff
|
||||
|
@ -92,9 +92,7 @@ class TestTask:
|
||||
task.log_msg = "--{event.src_path}--"
|
||||
sound_file = task(event, logger=logger, kw=13)
|
||||
assert sound_file._trace("sync", kw=True) == {"kw": 13}
|
||||
assert logger._trace("info", args=True) == (
|
||||
task.log_msg.format(event=event),
|
||||
)
|
||||
assert logger._trace("info", args=True) == (task.log_msg.format(event=event),)
|
||||
|
||||
|
||||
class TestDeleteTask:
|
||||
@ -125,9 +123,7 @@ class TestModifiedTask:
|
||||
datetime = Interface.inject(sound_monitor, "datetime", {"now": dt_now})
|
||||
|
||||
def sleep(imeta, n):
|
||||
datetime._imeta.funcs[
|
||||
"now"
|
||||
] = modified_task.timestamp + tz.timedelta(hours=10)
|
||||
datetime._imeta.funcs["now"] = modified_task.timestamp + tz.timedelta(hours=10)
|
||||
|
||||
time = Interface.inject(sound_monitor, "time", {"sleep": sleep})
|
||||
modified_task.wait()
|
||||
@ -175,9 +171,7 @@ class TestMonitorHandler:
|
||||
|
||||
def test__submit(self, monitor_handler, event):
|
||||
handler = Interface()
|
||||
handler, created = monitor_handler._submit(
|
||||
handler, event, "prefix", kw=13
|
||||
)
|
||||
handler, created = monitor_handler._submit(handler, event, "prefix", kw=13)
|
||||
assert created
|
||||
assert handler.future._trace("add_done_callback")
|
||||
assert monitor_handler.pool._trace("submit") == (
|
||||
@ -192,9 +186,7 @@ class TestMonitorHandler:
|
||||
@pytest.fixture
|
||||
def monitor_interfaces():
|
||||
items = {
|
||||
"atexit": Interface.inject(
|
||||
sound_monitor, "atexit", {"register": None, "leave": None}
|
||||
),
|
||||
"atexit": Interface.inject(sound_monitor, "atexit", {"register": None, "leave": None}),
|
||||
"observer": Interface.inject(
|
||||
sound_monitor,
|
||||
"Observer",
|
||||
|
@ -38,12 +38,8 @@ sox_values = {
|
||||
|
||||
@pytest.fixture
|
||||
def sox_interfaces():
|
||||
process = Interface(
|
||||
None, {"communicate": ("", sox_output.encode("utf-8"))}
|
||||
)
|
||||
subprocess = Interface.inject(
|
||||
sound_stats, "subprocess", {"Popen": lambda *_, **__: process}
|
||||
)
|
||||
process = Interface(None, {"communicate": ("", sox_output.encode("utf-8"))})
|
||||
subprocess = Interface.inject(sound_stats, "subprocess", {"Popen": lambda *_, **__: process})
|
||||
yield {"process": process, "subprocess": subprocess}
|
||||
subprocess._irelease()
|
||||
|
||||
@ -110,9 +106,7 @@ class TestSoundStats:
|
||||
|
||||
def test_check(self, stats):
|
||||
good = [{"val": i} for i in range(0, 11)]
|
||||
bad = [{"val": i} for i in range(-10, 0)] + [
|
||||
{"val": i} for i in range(11, 20)
|
||||
]
|
||||
bad = [{"val": i} for i in range(-10, 0)] + [{"val": i} for i in range(11, 20)]
|
||||
stats.stats = good + bad
|
||||
calls = {}
|
||||
stats.resume = lambda *_: calls.setdefault("resume", True)
|
||||
|
Reference in New Issue
Block a user