Updated some tests.
This commit is contained in:
parent
01f639b809
commit
66f6f32916
@ -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()
|
||||||
|
|
||||||
|
@ -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. """
|
||||||
|
@ -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()
|
@ -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()
|
||||||
|
Loading…
Reference in New Issue
Block a user