]> git.parisson.com Git - timeside.git/commitdiff
add custom dir for test samples, add boilerplate init script
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 6 Mar 2015 08:16:30 +0000 (09:16 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 6 Mar 2015 08:16:30 +0000 (09:16 +0100)
examples/sandbox/timeside [deleted symlink]
timeside/core/tools/test_samples.py
timeside/server/management/commands/timeside-tests-boilerplate.py [new file with mode: 0644]

diff --git a/examples/sandbox/timeside b/examples/sandbox/timeside
deleted file mode 120000 (symlink)
index 62cc3cd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../timeside
\ No newline at end of file
index ca202b19f8e32e92a4c17b4265f085f93ca5636a..7372d3eeb44aa54014e8ae6b048cc2988329d5c8 100644 (file)
@@ -238,17 +238,21 @@ def generate_sample_file(filename, samples_dir, gst_audio_encoder,
     return sample_file
 
 
-def generateSamples(overwrite=False):
-    from timeside import __file__ as ts_file
-    ts_path = os.path.split(os.path.abspath(ts_file))[0]
-    tests_dir = os.path.abspath(os.path.join(ts_path, '../tests'))
-    if os.path.isdir(tests_dir):
-        samples_dir = os.path.abspath(os.path.join(tests_dir, 'samples'))
+def generateSamples(overwrite=False, samples_dir=None):
+    if not samples_dir:
+        from timeside import __file__ as ts_file
+        ts_path = os.path.split(os.path.abspath(ts_file))[0]
+        tests_dir = os.path.abspath(os.path.join(ts_path, '../tests'))
+        if os.path.isdir(tests_dir):
+            samples_dir = os.path.abspath(os.path.join(tests_dir, 'samples'))
+            if not os.path.isdir(samples_dir):
+                os.makedirs(samples_dir)
+        else:
+            import tempfile
+            samples_dir = tempfile.mkdtemp(suffix="ts_samples")
+    else:
         if not os.path.isdir(samples_dir):
             os.makedirs(samples_dir)
-    else:
-        import tempfile
-        samples_dir = tempfile.mkdtemp(suffix="ts_samples")
 
     samples = dict()
 
diff --git a/timeside/server/management/commands/timeside-tests-boilerplate.py b/timeside/server/management/commands/timeside-tests-boilerplate.py
new file mode 100644 (file)
index 0000000..d2034df
--- /dev/null
@@ -0,0 +1,58 @@
+from optparse import make_option
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+from django.contrib.auth.models import User
+from django.template.defaultfilters import slugify
+
+import os
+import timeside.core
+from timeside.server.models import *
+from timeside.core.tools.test_samples import generateSamples
+
+
+class Command(BaseCommand):
+    help = "Setup and run a boilerplate for testing"
+
+    def cleanup(self):
+        for processor in Processor.objects.all():
+            processor.delete()
+        for result in Result.objects.all():
+            result.delete()
+
+    def handle(self, *args, **options):
+        # NOT for production
+        self.cleanup()
+
+        presets = []
+        blacklist =['decoder', 'live', 'gain', 'yaafe']
+        processors = timeside.core.processor.processors(timeside.core.api.IProcessor)
+        for proc in processors:
+            trig = True
+            for black in blacklist:
+                if black in proc.id():
+                    trig = False
+            if trig:
+                processor, c = Processor.objects.get_or_create(pid=proc.id())
+                preset, c = Preset.objects.get_or_create(processor=processor, parameters='{}')
+                presets.append(preset)
+
+        media_dir = 'items' + os.sep + 'tests'
+        samples_dir = settings.MEDIA_ROOT + media_dir
+        samples = generateSamples(samples_dir=samples_dir)
+        selection, c = Selection.objects.get_or_create(title='Tests')
+
+        for sample in samples.iteritems():
+            filename, path = sample
+            title = os.path.splitext(filename)[0]
+            path = media_dir + os.sep + filename
+            item, c = Item.objects.get_or_create(title=title, file=path)
+            if not item in selection.items.all():
+                selection.items.add(item)
+
+        experience, c = Experience.objects.get_or_create(title='All')
+        for preset in presets:
+            if not preset in experience.presets.all():
+                experience.presets.add(preset)
+
+        task, c = Task.objects.get_or_create(experience=experience, selection=selection)
+        task.status_setter(2)