Updated some tests.

This commit is contained in:
Manuel Cortez 2020-07-07 17:03:25 -05:00
parent 01f639b809
commit 66f6f32916
4 changed files with 38 additions and 50 deletions

View File

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
testmodules = ['test.test_storage', 'test.test_extractors', 'test.test_fixes', 'test.test_i18n'] testmodules = ['test.test_fixes', 'test.test_storage', 'test.test_services', 'test.test_i18n']
suite = unittest.TestSuite() suite = unittest.TestSuite()

View File

@ -13,15 +13,15 @@ if sys.version[0] == "3":
class fixesTestCase(unittest.TestCase): class fixesTestCase(unittest.TestCase):
def test_winpaths_error_in_python3(self): # def test_winpaths_error_in_python3(self):
""" Testing the winpaths error happening only in Python 3 due to changes introduced to ctypes. """ # """ Testing the winpaths error happening only in Python 3 due to changes introduced to ctypes. """
# If this test fails, it means winpaths has been updated to fix the ctypes issue already. # # If this test fails, it means winpaths has been updated to fix the ctypes issue already.
# Therefore this test and the corresponding issue should be removed. # # Therefore this test and the corresponding issue should be removed.
if sys.version[0] != "3": # if sys.version[0] != "3":
return # return
# A reload of winpaths is needed to rever the fix of winpaths, if has been applied before # # A reload of winpaths is needed to rever the fix of winpaths, if has been applied before
reload(winpaths) # reload(winpaths)
self.assertRaises(AttributeError, winpaths.get_appdata) # self.assertRaises(AttributeError, winpaths.get_appdata)
def test_requests_fix(self): def test_requests_fix(self):
""" Testing the requests fix and check if the certificates file exists in the provided path. """ """ Testing the requests fix and check if the certificates file exists in the provided path. """

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" Unittests for extractors present in MusicDL. """ """ Unittests for services present in MusicDL. """
from __future__ import unicode_literals from __future__ import unicode_literals
import sys import sys
import unittest import unittest
@ -10,8 +10,8 @@ import config
storage.setup() storage.setup()
config.setup() config.setup()
i18n.setup() i18n.setup()
import extractors import services
from extractors import base from services import base
# Pytohn 2/3 compat # Pytohn 2/3 compat
if sys.version[0] == "2": if sys.version[0] == "2":
@ -19,31 +19,31 @@ if sys.version[0] == "2":
else: else:
strtype = str strtype = str
class extractorsTestCase(unittest.TestCase): class servicesTestCase(unittest.TestCase):
def setUp(self): def setUp(self):
""" Configure i18n functions for avoiding a traceback later. """ """ Configure i18n functions for avoiding a traceback later. """
i18n.setup() i18n.setup()
def search(self, extractor_name, search_query="piano", skip_validation=False): def search(self, service_name, search_query="piano", skip_validation=False):
""" Search a video in the passed extractor name. """ """ Search a video in the passed service name. """
# Test basic instance stuff. # Test basic instance stuff.
extractor_instance = getattr(extractors, extractor_name).interface() service_instance = getattr(services, service_name).interface()
extractor_instance.search(search_query) service_instance.search(search_query)
self.assertIsInstance(extractor_instance.results, list) self.assertIsInstance(service_instance.results, list)
self.assertNotEqual(len(extractor_instance.results), 0) self.assertNotEqual(len(service_instance.results), 0)
self.assertIsInstance(len(extractor_instance.results), int) self.assertIsInstance(len(service_instance.results), int)
# Take and test validity of the first item. # Take and test validity of the first item.
item = extractor_instance.results[0] item = service_instance.results[0]
self.assertIsInstance(item, base.song) self.assertIsInstance(item, base.song)
self.assertIsInstance(item.title, strtype) self.assertIsInstance(item.title, strtype)
self.assertNotEqual(item.title, "") self.assertNotEqual(item.title, "")
if extractor_name == "youtube": # Duration is only available for youtube. if service_name == "youtube": # Duration is only available for youtube.
self.assertIsInstance(item.duration, strtype) self.assertIsInstance(item.duration, strtype)
self.assertNotEqual(item.duration, "") self.assertNotEqual(item.duration, "")
self.assertIsInstance(item.url, strtype) self.assertIsInstance(item.url, strtype)
self.assertNotEqual(item.url, "") self.assertNotEqual(item.url, "")
if extractor_name == "youtube" and skip_validation == False: if service_name == "youtube" and skip_validation == False:
match = re.search("((?<=(v|V)/)|(?<=be/)|(?<=(\?|\&)v=)|(?<=embed/))([\w-]+)", item.url) match = re.search("((?<=(v|V)/)|(?<=be/)|(?<=(\?|\&)v=)|(?<=embed/))([\w-]+)", item.url)
self.assertNotEqual(match, None) self.assertNotEqual(match, None)
formatted_track = item.format_track() formatted_track = item.format_track()
@ -55,7 +55,7 @@ class extractorsTestCase(unittest.TestCase):
def search_blank(self, extractor_name, search_query=""): def search_blank(self, extractor_name, search_query=""):
""" Attempt to search in any extractor by passing a blank string. """ """ Attempt to search in any extractor by passing a blank string. """
extractor_instance = getattr(extractors, extractor_name).interface() extractor_instance = getattr(services, extractor_name).interface()
self.assertRaises(ValueError, extractor_instance.search, search_query) self.assertRaises(ValueError, extractor_instance.search, search_query)
def test_youtube_search(self): def test_youtube_search(self):
@ -72,35 +72,23 @@ class extractorsTestCase(unittest.TestCase):
def test_youtube_direct_link(self): def test_youtube_direct_link(self):
""" Testing a search in youtube by passing a direct link. """ """ Testing a search in youtube by passing a direct link. """
self.search("youtube", "https://www.youtube.com/watch?v=hwDiI9p9L-g") self.search("youtube", "https://www.youtube.com/watch?v=XkeU8w2Y-2Y")
def test_youtube_playlist(self): def test_youtube_playlist(self):
""" Testing a youtube search by passing a link to a playlist. """ """ Testing a youtube search by passing a link to a playlist. """
self.search("youtube", "https://www.youtube.com/playlist?list=PLqivnvaruBVH8fqI5JU9h5jZKV-32bbEn", skip_validation=True) self.search("youtube", "https://www.youtube.com/channel/UCPTYdUGtBMuqGg6ZtvYC1zQ", skip_validation=True)
# Uncomment the following test only if you live or test this in Russia.
# def test_zaycev_search(self):
# """ Testing a search made in zaycev.net """
# self.search("zaycev")
def test_mailru_search(self): # def test_zaycev_search_unicode(self):
""" Testing a mail.ru search. """ # """ Testing a search made in zaycev.net with unicode characters. """
self.search("mailru") # self.search("zaycev", "Пианино")
def test_mailru_search_unicode(self): # def test_zaycev_search_blank(self):
""" Testing a mail.ru search with unicode characters. """ # """ Testing a search in zaycev.net when text is blank. """
self.search("mailru", "Пианино") # self.search_blank("zaycev")
def test_mailru_search_blank(self):
""" Testing a mail.ru search when text is blank. """
self.search_blank("mailru")
def test_zaycev_search(self):
""" Testing a search made in zaycev.net """
self.search("zaycev")
def test_zaycev_search_unicode(self):
""" Testing a search made in zaycev.net with unicode characters. """
self.search("zaycev", "Пианино")
def test_zaycev_search_blank(self):
""" Testing a search in zaycev.net when text is blank. """
self.search_blank("zaycev")
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()

View File

@ -21,7 +21,7 @@ class storageTestCase(unittest.TestCase):
def test_installer_path(self): def test_installer_path(self):
""" Testing if paths are generated appropiately. """ """ Testing if paths are generated appropiately. """
# this is a temporary fix for winpaths. # this is a temporary fix for winpaths.
fake_installer_file = open(os.path.join(paths.app_path(), "uninstall.exe"), "w") fake_installer_file = open(os.path.join(paths.app_path(), "Uninstall.exe"), "w")
fake_installer_file.close() fake_installer_file.close()
fix_winpaths.fix() fix_winpaths.fix()
storage.setup() storage.setup()