Mercurial > hg > auditok
comparison tests/test_io.py @ 131:92a6f1d5f265
Add tests for _load_with_pydub
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Sat, 09 Feb 2019 18:01:00 +0100 |
parents | 7c5f325dae7a |
children | a9d74315f2ee |
comparison
equal
deleted
inserted
replaced
130:7c5f325dae7a | 131:92a6f1d5f265 |
---|---|
16 _array_to_bytes, | 16 _array_to_bytes, |
17 _mix_audio_channels, | 17 _mix_audio_channels, |
18 _extract_selected_channel, | 18 _extract_selected_channel, |
19 _load_raw, | 19 _load_raw, |
20 _load_wave, | 20 _load_wave, |
21 _load_with_pydub, | |
21 from_file, | 22 from_file, |
22 _save_raw, | 23 _save_raw, |
23 _save_wave, | 24 _save_wave, |
24 ) | 25 ) |
25 | 26 |
490 self.assertIsInstance(audio_source, BufferAudioSource) | 491 self.assertIsInstance(audio_source, BufferAudioSource) |
491 self.assertEqual(audio_source.sampling_rate, sampling_rate) | 492 self.assertEqual(audio_source.sampling_rate, sampling_rate) |
492 self.assertEqual(audio_source.sample_width, sample_width) | 493 self.assertEqual(audio_source.sample_width, sample_width) |
493 self.assertEqual(audio_source.channels, 1) | 494 self.assertEqual(audio_source.channels, 1) |
494 | 495 |
496 @patch("auditok.io._WITH_PYDUB", True) | |
497 @patch("auditok.io.BufferAudioSource") | |
498 @genty_dataset( | |
499 ogg_default_first_channel=("ogg", 2, None, "from_ogg"), | |
500 ogg_first_channel=("ogg", 1, 0, "from_ogg"), | |
501 ogg_second_channel=("ogg", 2, 1, "from_ogg"), | |
502 ogg_mix_channels=("ogg", 3, "mix", "from_ogg"), | |
503 mp3_left_channel=("mp3", 1, "left", "from_mp3"), | |
504 mp3_right_channel=("mp3", 2, "right", "from_mp3"), | |
505 mp3_mix_channels=("mp3", 3, "mix", "from_mp3"), | |
506 flac_first_channel=("flac", 2, 0, "from_file"), | |
507 flac_second_channel=("flac", 2, 1, "from_file"), | |
508 flv_left_channel=("flv", 1, "left", "from_flv"), | |
509 webm_right_channel=("webm", 2, "right", "from_file"), | |
510 webm_mix_channels=("webm", 4, "mix", "from_file"), | |
511 ) | |
512 def test_load_with_pydub( | |
513 self, audio_format, channels, use_channel, function, *mocks | |
514 ): | |
515 filename = "audio.{}".format(audio_format) | |
516 segment_mock = Mock() | |
517 segment_mock.sample_width = 2 | |
518 segment_mock.channels = channels | |
519 segment_mock._data = b"abcdefgh" | |
520 with patch("auditok.io._extract_selected_channel") as ext_mock: | |
521 with patch( | |
522 "auditok.io.AudioSegment.{}".format(function) | |
523 ) as open_func: | |
524 open_func.return_value = segment_mock | |
525 use_channel = {"left": 0, "right": 1, None: 0}.get( | |
526 use_channel, use_channel | |
527 ) | |
528 _load_with_pydub(filename, audio_format, use_channel) | |
529 self.assertTrue(open_func.called) | |
530 if channels > 1: | |
531 self.assertTrue(ext_mock.called) | |
532 ext_mock.assert_called_with( | |
533 segment_mock._data, | |
534 segment_mock.channels, | |
535 segment_mock.sample_width, | |
536 use_channel, | |
537 ) | |
538 else: | |
539 self.assertFalse(ext_mock.called) | |
540 | |
495 @genty_dataset( | 541 @genty_dataset( |
496 mono=("mono_400Hz.wav", (400,)), | 542 mono=("mono_400Hz.wav", (400,)), |
497 three_channel=("3channel_400-800-1600Hz.wav", (400, 800, 1600)), | 543 three_channel=("3channel_400-800-1600Hz.wav", (400, 800, 1600)), |
498 ) | 544 ) |
499 def test_save_wave(self, filename, frequencies): | 545 def test_save_wave(self, filename, frequencies): |