forked from poco-loco-athul/Audio-renamer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_audio_renamer.py
74 lines (61 loc) · 2.73 KB
/
test_audio_renamer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import unittest
from unittest import mock
import audio_renamer
class TestMp3Files(unittest.TestCase):
@mock.patch('audio_renamer.os.listdir')
def test_mp3files(self, mock_listdir):
mock_listdir.return_value = ['a.mp3', 'b.mp3', 'c.mp3', 'd.txt']
files = audio_renamer.mp3files('.')
self.assertEqual(3, len(files))
self.assertNotEqual(2, len(files))
def test_artists():
data = [{'id': 'cc', 'name': 'Adele'}]
rst = "Adele"
assert audio_renamer.artists(data) == rst
data = [{'joinphrase': ' & ', 'name': 'Skrillex'},
{'joinphrase':' feat. ', 'name': 'Diplo'},
{'name': 'Justin Bieber'}]
rst = "Skrillex & Diplo feat. Justin Bieber"
assert audio_renamer.artists(data) == rst
def test_suggestions():
data = [{'title': 'Hello', 'artists': [{'name': 'Adele'}]},
{'title': 'Hello (radio edit)', 'artists': [{'name': 'Adele'}]},
{'title': 'Where Are Ü Now', 'artists':
[{'joinphrase':' & ', 'name': 'Skrillex'},
{'joinphrase': ' feat. ', 'name':'Diplo'},
{'name': 'Justin Bieber'}]}, {'title': 'Hello', 'artists':
[{'name': 'Adele'}]}, {'title': 'Cry Baby', 'artists':
[{'name': 'Melanie Martinez'}]}]
names = {0: 'Hello.mp3',
1: 'Hello (radio edit).mp3',
2: 'Where Are Ü Now.mp3',
3: 'Hello.mp3'}
printer = ['(0): Hello.mp3',
'(1): Hello (radio edit).mp3',
'(2): Where Are Ü Now.mp3',
'(3): Hello.mp3', "(9): 'SKIP THIS FILE'"]
assert audio_renamer.suggestions(data, True) == (names, printer)
names = {0: 'Adele - Hello.mp3',
1: 'Adele - Hello (radio edit).mp3',
2: 'Skrillex & Diplo feat. Justin Bieber - Where Are Ü Now.mp3',
3: 'Adele - Hello.mp3'}
printer = ['(0): Adele - Hello.mp3',
'(1): Adele - Hello (radio edit).mp3',
'(2): Skrillex & Diplo feat. Justin Bieber - Where Are Ü Now.mp3',
'(3): Adele - Hello.mp3', "(9): 'SKIP THIS FILE'"]
assert audio_renamer.suggestions(data, False) == (names, printer)
def test_user_input():
file_name = "fakename"
options = {0 : "name0",
1 : "name1",
2 : "name2"}
input_values = [0, 1, 2, 9]
output = [("name0", "'fakename' RENAMED AS 'name0'\n"),
("name1", "'fakename' RENAMED AS 'name1'\n"),
("name2", "'fakename' RENAMED AS 'name2'\n"),
(False, "Skipped 'fakename'\n")]
def mock_input():
return input_values.pop(0)
for i, _ in enumerate(output):
audio_renamer.getch.getch = mock_input
assert audio_renamer.user_input(file_name, options) == output[i]