Spaces:
Sleeping
Sleeping
Upload test_UltraSinger.py
Browse files- test_UltraSinger.py +59 -0
test_UltraSinger.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Tests for UltraSinger.py"""
|
| 2 |
+
|
| 3 |
+
import unittest
|
| 4 |
+
import os
|
| 5 |
+
from unittest.mock import patch, MagicMock
|
| 6 |
+
from src.UltraSinger import format_separated_string
|
| 7 |
+
from src.UltraSinger import extract_year
|
| 8 |
+
from src.UltraSinger import parse_ultrastar_txt
|
| 9 |
+
from src import UltraSinger
|
| 10 |
+
|
| 11 |
+
class TestUltraSinger(unittest.TestCase):
|
| 12 |
+
def test_format_separated_string(self):
|
| 13 |
+
|
| 14 |
+
self.assertEqual(format_separated_string('rock,pop,rock-pop,'), 'Rock, Pop, Rock-Pop')
|
| 15 |
+
self.assertEqual(format_separated_string('rock;pop;rock-pop,'), 'Rock, Pop, Rock-Pop')
|
| 16 |
+
self.assertEqual(format_separated_string('rock/pop/rock-pop,'), 'Rock, Pop, Rock-Pop')
|
| 17 |
+
self.assertEqual(format_separated_string('rock,pop/rock-pop;80s,'), 'Rock, Pop, Rock-Pop, 80s')
|
| 18 |
+
self.assertEqual(format_separated_string('rock, pop, rock-pop, '), 'Rock, Pop, Rock-Pop')
|
| 19 |
+
|
| 20 |
+
def test_extract_year(self):
|
| 21 |
+
years = {extract_year("2023-12-31"), extract_year("2023-12-31 23:59:59"), extract_year("2023/12/31"),
|
| 22 |
+
extract_year("2023\\12\\31"), extract_year("2023.12.31"), extract_year("2023 12 31"),
|
| 23 |
+
extract_year("12-31-2023"), extract_year("12/31/2023"), extract_year("12\\31\\2023"),
|
| 24 |
+
extract_year("12.31.2023"), extract_year("12 31 2023"), extract_year("12-2023"),
|
| 25 |
+
extract_year("12/2023"), extract_year("2023")}
|
| 26 |
+
|
| 27 |
+
for year in years:
|
| 28 |
+
self.assertEqual(year, "2023")
|
| 29 |
+
|
| 30 |
+
@patch("src.UltraSinger.ultrastar_parser.parse_ultrastar_txt")
|
| 31 |
+
@patch("src.UltraSinger.ultrastar_converter.ultrastar_bpm_to_real_bpm")
|
| 32 |
+
@patch("src.UltraSinger.os.path.dirname")
|
| 33 |
+
@patch("src.UltraSinger.os_helper.create_folder")
|
| 34 |
+
def test_parse_ultrastar_txt(self, mock_create_folder,
|
| 35 |
+
mock_dirname, mock_ultrastar_bpm_to_real_bpm,
|
| 36 |
+
mock_parse_ultrastar_txt):
|
| 37 |
+
# Arrange
|
| 38 |
+
mock_parse_ultrastar_txt.return_value = MagicMock(mp3="test.mp3",
|
| 39 |
+
artist=" Test Artist ", # Also test leading and trailing whitespaces
|
| 40 |
+
title=" Test Title ") # Also test leading and trailing whitespaces
|
| 41 |
+
mock_ultrastar_bpm_to_real_bpm.return_value = 120.0
|
| 42 |
+
mock_dirname.return_value = os.path.join("path", "to", "input")
|
| 43 |
+
UltraSinger.Settings.output_file_path = os.path.join("path", "to", "output")
|
| 44 |
+
mock_create_folder.return_value = None
|
| 45 |
+
|
| 46 |
+
# Act
|
| 47 |
+
result = parse_ultrastar_txt()
|
| 48 |
+
|
| 49 |
+
# Assert
|
| 50 |
+
self.assertEqual(result, ("test",
|
| 51 |
+
120.0,
|
| 52 |
+
os.path.join("path", "to", "output", "Test Artist - Test Title"),
|
| 53 |
+
os.path.join("path", "to", "input", "test.mp3"),
|
| 54 |
+
mock_parse_ultrastar_txt.return_value))
|
| 55 |
+
|
| 56 |
+
mock_parse_ultrastar_txt.assert_called_once()
|
| 57 |
+
mock_ultrastar_bpm_to_real_bpm.assert_called_once()
|
| 58 |
+
mock_dirname.assert_called_once()
|
| 59 |
+
mock_create_folder.assert_called_once()
|