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)
|