Compare commits
17 Commits
baf6fcfb7e
...
99413ccfd8
Author | SHA1 | Date | |
---|---|---|---|
99413ccfd8 | |||
608725df99 | |||
0e5a5e8cc5 | |||
0716b8b063 | |||
8a361924e9 | |||
b36d20a99d | |||
d9645865c8 | |||
0221fc1ac2 | |||
89ae1d666b | |||
22784efe25 | |||
64615089fe | |||
f7210de088 | |||
2a8aa80d8b | |||
ad60d9fce4 | |||
8c05712110 | |||
b5eadf7f6c | |||
6a4675a4bc |
|
@ -33,7 +33,7 @@ Then copy the default settings and initiate the database :
|
||||||
|
|
||||||
```
|
```
|
||||||
cp instance/settings/sample.py instance/settings/settings.py
|
cp instance/settings/sample.py instance/settings/settings.py
|
||||||
python -c "from django.core.management.utils import get_random_secret_key; print('SECRET_KEY = \"%s\"' % get_random_secret_key())" >> instance/settings/settings.py
|
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())" >> instance/settings/settings.py
|
||||||
DJANGO_SETTINGS_MODULE=instance.settings.dev ./manage.py migrate
|
DJANGO_SETTINGS_MODULE=instance.settings.dev ./manage.py migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#! /usr/bin/env python3
|
#! /usr/bin/env python3
|
||||||
|
# TODO: SoundMonitor class
|
||||||
|
|
||||||
"""Monitor sound files; For each program, check for:
|
"""Monitor sound files; For each program, check for:
|
||||||
|
|
||||||
|
@ -59,8 +60,10 @@ class Command(BaseCommand):
|
||||||
)
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
monitor = SoundMonitor()
|
SoundMonitor()
|
||||||
if options.get("scan"):
|
if options.get("scan"):
|
||||||
monitor.scan()
|
self.scan()
|
||||||
|
# if options.get('quality_check'):
|
||||||
|
# self.check_quality(check=(not options.get('scan')))
|
||||||
if options.get("monitor"):
|
if options.get("monitor"):
|
||||||
monitor.monitor()
|
self.monitor()
|
||||||
|
|
|
@ -206,48 +206,29 @@ def monitor():
|
||||||
yield sound_monitor.SoundMonitor()
|
yield sound_monitor.SoundMonitor()
|
||||||
|
|
||||||
|
|
||||||
class TestSoundMonitor:
|
class SoundMonitor:
|
||||||
@pytest.mark.django_db
|
|
||||||
def test_report(self, monitor, program, logger):
|
def test_report(self, monitor, program, logger):
|
||||||
monitor.report(program, "component", "content", logger=logger)
|
monitor.report(program, "component", "content", logger=logger)
|
||||||
msg = f"{program}, component: content"
|
msg = f"{program}, component: content"
|
||||||
assert logger._trace("info", args=True) == (msg,)
|
assert logger._trace("info", args=True) == (msg,)
|
||||||
|
|
||||||
@pytest.mark.django_db
|
def test_scan(self, monitor, program, logger):
|
||||||
def test_scan(self, monitor, programs, logger):
|
|
||||||
interface = Interface(None, {"scan_for_program": None})
|
interface = Interface(None, {"scan_for_program": None})
|
||||||
monitor.scan_for_program = interface.scan_for_program
|
monitor.scan_for_program = interface.scan_for_program
|
||||||
dirs = monitor.scan(logger)
|
dirs = monitor.scan(logger)
|
||||||
|
|
||||||
assert logger._traces("info") == tuple(
|
assert logger._traces("info") == (
|
||||||
[
|
"scan all programs...",
|
||||||
(("scan all programs...",), {}),
|
f"#{program.id} {program.title}",
|
||||||
]
|
|
||||||
+ [
|
|
||||||
((f"#{program.id} {program.title}",), {})
|
|
||||||
for program in programs
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
assert dirs == [program.abspath for program in programs]
|
assert dirs == [program.abspath]
|
||||||
traces = tuple(
|
assert interface._traces("scan_for_program") == (
|
||||||
[
|
((program, settings.SOUND_ARCHIVES_SUBDIR), {"logger": logger})(
|
||||||
[
|
(program, settings.SOUND_EXCERPTS_SUBDIR), {"logger": logger}
|
||||||
(
|
)
|
||||||
(program, settings.SOUND_ARCHIVES_SUBDIR),
|
|
||||||
{"logger": logger, "type": Sound.TYPE_ARCHIVE},
|
|
||||||
),
|
|
||||||
(
|
|
||||||
(program, settings.SOUND_EXCERPTS_SUBDIR),
|
|
||||||
{"logger": logger, "type": Sound.TYPE_EXCERPT},
|
|
||||||
),
|
|
||||||
]
|
|
||||||
for program in programs
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
traces_flat = tuple([item for sublist in traces for item in sublist])
|
|
||||||
assert interface._traces("scan_for_program") == traces_flat
|
|
||||||
|
|
||||||
def broken_test_monitor(self, monitor, monitor_interfaces, logger):
|
def test_monitor(self, monitor, monitor_interfaces, logger):
|
||||||
def sleep(*args, **kwargs):
|
def sleep(*args, **kwargs):
|
||||||
monitor.stop()
|
monitor.stop()
|
||||||
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
import pytest
|
|
||||||
import os
|
|
||||||
|
|
||||||
from django.core.management import call_command
|
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
wav = (
|
|
||||||
b"RIFF$\x00\x00\x00WAVEfmt \x10\x00\x00\x00\x01\x00\x02\x00D\xac\x00\x00"
|
|
||||||
b"\x10\xb1\x02\x00\x04\x00\x10\x00data\x00\x00\x00\x00"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
|
||||||
def test_adding_a_sound(programs, fs):
|
|
||||||
p0 = programs[0]
|
|
||||||
assert len(p0.sound_set.all()) == 0
|
|
||||||
|
|
||||||
s0 = os.path.join(
|
|
||||||
settings.PROJECT_ROOT, "static/media/%s/archives/sound.wav" % p0.path
|
|
||||||
)
|
|
||||||
fs.create_file(s0, contents=wav)
|
|
||||||
call_command("sounds_monitor", "-s")
|
|
||||||
assert len(p0.sound_set.all()) == 1
|
|
|
@ -1,4 +1,3 @@
|
||||||
pytest~=7.2
|
pytest~=7.2
|
||||||
pytest-django~=4.5
|
pytest-django~=4.5
|
||||||
model_bakery~=1.10
|
model_bakery~=1.10
|
||||||
pyfakefs~=5.2
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user