annotate tests/test_cmdline_util.py @ 267:d4995db23881

Add test_cmdline_util.py
author Amine Sehili <amine.sehili@gmail.com>
date Fri, 13 Sep 2019 21:32:46 +0100
parents
children deb05a16eef5
rev   line source
amine@267 1 from unittest import TestCase
amine@267 2 from collections import namedtuple
amine@267 3 from genty import genty, genty_dataset
amine@267 4
amine@267 5 from auditok.cmdline_util import (
amine@267 6 LOGGER_NAME,
amine@267 7 make_kwargs,
amine@267 8 make_duration_fromatter,
amine@267 9 make_logger,
amine@267 10 initialize_workers,
amine@267 11 KeywordArguments,
amine@267 12 )
amine@267 13 from auditok.workers import StreamSaverWorker
amine@267 14 from auditok.exceptions import TimeFormatError
amine@267 15
amine@267 16 _ArgsNamespece = namedtuple(
amine@267 17 "_ArgsNamespece",
amine@267 18 [
amine@267 19 "input",
amine@267 20 "max_time",
amine@267 21 "analysis_window",
amine@267 22 "sampling_rate",
amine@267 23 "sample_width",
amine@267 24 "channels",
amine@267 25 "use_channel",
amine@267 26 "input_format",
amine@267 27 "output_format",
amine@267 28 "large_file",
amine@267 29 "frame_per_buffer",
amine@267 30 "input_device_index",
amine@267 31 "save_stream",
amine@267 32 "plot",
amine@267 33 "save_image",
amine@267 34 "min_duration",
amine@267 35 "max_duration",
amine@267 36 "max_silence",
amine@267 37 "drop_trailing_silence",
amine@267 38 "strict_min_duration",
amine@267 39 "energy_threshold",
amine@267 40 "echo",
amine@267 41 "command",
amine@267 42 "quiet",
amine@267 43 "printf",
amine@267 44 "time_format",
amine@267 45 "timestamp_format",
amine@267 46 ],
amine@267 47 )
amine@267 48
amine@267 49
amine@267 50 @genty
amine@267 51 class TestCmdLineUtil(TestCase):
amine@267 52 @genty_dataset(
amine@267 53 no_record=("stream.ogg", False, None, "mix", "mix", False),
amine@267 54 no_record_plot=("stream.ogg", True, None, None, None, False),
amine@267 55 no_record_save_image=(
amine@267 56 "stream.ogg",
amine@267 57 True,
amine@267 58 "image.png",
amine@267 59 None,
amine@267 60 None,
amine@267 61 False,
amine@267 62 ),
amine@267 63 record_plot=(None, True, None, None, None, True),
amine@267 64 record_save_image=(None, False, "image.png", None, None, True),
amine@267 65 int_use_channel=("stream.ogg", False, None, "1", 1, False),
amine@267 66 )
amine@267 67 def test_make_kwargs(
amine@267 68 self,
amine@267 69 save_stream,
amine@267 70 plot,
amine@267 71 save_image,
amine@267 72 use_channel,
amine@267 73 exp_use_channel,
amine@267 74 exp_record,
amine@267 75 ):
amine@267 76
amine@267 77 args = (
amine@267 78 "file",
amine@267 79 30,
amine@267 80 0.01,
amine@267 81 16000,
amine@267 82 2,
amine@267 83 2,
amine@267 84 use_channel,
amine@267 85 "raw",
amine@267 86 "ogg",
amine@267 87 True,
amine@267 88 None,
amine@267 89 1,
amine@267 90 save_stream,
amine@267 91 plot,
amine@267 92 save_image,
amine@267 93 0.2,
amine@267 94 10,
amine@267 95 0.3,
amine@267 96 False,
amine@267 97 False,
amine@267 98 55,
amine@267 99 )
amine@267 100 misc = (False, None, True, None, "TIME_FORMAT", "TIMESTAMP_FORMAT")
amine@267 101
amine@267 102 args_ns = _ArgsNamespece(*(args + misc))
amine@267 103
amine@267 104 io_kwargs = {
amine@267 105 "input": "file",
amine@267 106 "max_read": 30,
amine@267 107 "block_dur": 0.01,
amine@267 108 "sampling_rate": 16000,
amine@267 109 "sample_width": 2,
amine@267 110 "channels": 2,
amine@267 111 "use_channel": exp_use_channel,
amine@267 112 "save_stream": save_stream,
amine@267 113 "audio_format": "raw",
amine@267 114 "export_format": "ogg",
amine@267 115 "large_file": True,
amine@267 116 "frames_per_buffer": None,
amine@267 117 "input_device_index": 1,
amine@267 118 "record": exp_record,
amine@267 119 }
amine@267 120
amine@267 121 split_kwargs = {
amine@267 122 "min_dur": 0.2,
amine@267 123 "max_dur": 10,
amine@267 124 "max_silence": 0.3,
amine@267 125 "drop_trailing_silence": False,
amine@267 126 "strict_min_dur": False,
amine@267 127 "energy_threshold": 55,
amine@267 128 }
amine@267 129
amine@267 130 miscellaneous = {
amine@267 131 "echo": False,
amine@267 132 "command": None,
amine@267 133 "quiet": True,
amine@267 134 "printf": None,
amine@267 135 "time_format": "TIME_FORMAT",
amine@267 136 "timestamp_format": "TIMESTAMP_FORMAT",
amine@267 137 }
amine@267 138
amine@267 139 expected = KeywordArguments(io_kwargs, split_kwargs, miscellaneous)
amine@267 140 kwargs = make_kwargs(args_ns)
amine@267 141 self.assertEqual(kwargs, expected)