| From 409218bc3d5b62e4f3e37aa57126cd628a34bd21 Mon Sep 17 00:00:00 2001 |
| From: Nicolas Wack <wackou@gmail.com> |
| Date: Fri, 19 Apr 2013 22:08:38 +0200 |
| Subject: [PATCH] Allow to run tests using "python setup.py test"; fixed |
| autodetect_all test target |
| |
| --- |
| fabfile.py | 1 + |
| setup.py | 3 ++- |
| tests/__init__.py | 0 |
| tests/guessittest.py | 19 ++++++++++++------- |
| tests/test_autodetect.py | 2 +- |
| tests/test_autodetect_all.py | 12 ++++++++---- |
| 6 files changed, 24 insertions(+), 13 deletions(-) |
| create mode 100644 tests/__init__.py |
| |
| diff --git a/fabfile.py b/fabfile.py |
| index 5b2c9fe..d8c4112 100644 |
| --- a/fabfile.py |
| +++ b/fabfile.py |
| @@ -25,6 +25,7 @@ def run(self): |
| test_ep = TestTask('episode', 'episodes') |
| test_movie = TestTask('movie', 'movies') |
| test_auto = TestTask('autodetect', 'autodetected files') |
| +test_auto_all = TestTask('autodetect_all', 'all files using autodetected type') |
| test_lang = TestTask('language', 'languages') |
| test_utils = TestTask('utils', 'utility functions') |
| test_matchtree = TestTask('matchtree', 'MatchTree') |
| diff --git a/setup.py b/setup.py |
| index deee110..81f907d 100644 |
| --- a/setup.py |
| +++ b/setup.py |
| @@ -65,7 +65,8 @@ |
| include_package_data=True, |
| install_requires = requires, |
| entry_points=entry_points, |
| - extras_require = { 'language_detection': ['guess-language>=0.2'] } |
| + extras_require = { 'language_detection': ['guess-language>=0.2'] }, |
| + test_suite = 'tests' |
| ) |
| |
| |
| diff --git a/tests/__init__.py b/tests/__init__.py |
| new file mode 100644 |
| index 0000000..e69de29 |
| diff --git a/tests/guessittest.py b/tests/guessittest.py |
| index c56b6ca..cfeaef0 100644 |
| --- a/tests/guessittest.py |
| +++ b/tests/guessittest.py |
| @@ -21,7 +21,7 @@ |
| from __future__ import unicode_literals |
| from guessit import base_text_type, u |
| from guessit.slogging import setupLogging |
| -from unittest import * |
| +from unittest import TestCase, TestLoader, TextTestRunner |
| |
| import yaml, logging, sys, os |
| from os.path import * |
| @@ -58,20 +58,25 @@ def allTests(testClass): |
| |
| class TestGuessit(TestCase): |
| |
| - |
| - |
| - def checkMinimumFieldsCorrect(self, filetype, filename, removeType=True): |
| + def checkMinimumFieldsCorrect(self, filetype, filename, remove_type=True, |
| + exclude_files=None): |
| groundTruth = yaml.load(load_file_in_same_dir(__file__, filename)) |
| def guess_func(string): |
| return guess_file_info(string, filetype=filetype) |
| |
| - return self.checkFields(groundTruth, guess_func, removeType) |
| + return self.checkFields(groundTruth, guess_func, remove_type, exclude_files) |
| |
| - def checkFields(self, groundTruth, guess_func, removeType=True): |
| + |
| + def checkFields(self, groundTruth, guess_func, remove_type=True, |
| + exclude_files=None): |
| correct, total = 0, 0 |
| + exclude_files = exclude_files or [] |
| |
| for filename, required_fields in groundTruth.items(): |
| filename = u(filename) |
| + if filename in exclude_files: |
| + continue |
| + |
| log.debug('\n' + '-' * 120) |
| log.info('Guessing information for file: %s' % filename) |
| |
| @@ -85,7 +90,7 @@ def error(*args): |
| is_incomplete[0] = True |
| |
| # no need for these in the unittests |
| - if removeType: |
| + if remove_type: |
| try: |
| del found['type'] |
| except: |
| diff --git a/tests/test_autodetect.py b/tests/test_autodetect.py |
| index 1e0fd9d..e654afb 100644 |
| --- a/tests/test_autodetect.py |
| +++ b/tests/test_autodetect.py |
| @@ -25,7 +25,7 @@ class TestAutoDetect(TestGuessit): |
| def testAutoDetect(self): |
| self.checkMinimumFieldsCorrect(filetype='autodetect', |
| filename='autodetect.yaml', |
| - removeType=False) |
| + remove_type=False) |
| |
| |
| suite = allTests(TestAutoDetect) |
| diff --git a/tests/test_autodetect_all.py b/tests/test_autodetect_all.py |
| index 6aa1704..cfd3463 100644 |
| --- a/tests/test_autodetect_all.py |
| +++ b/tests/test_autodetect_all.py |
| @@ -18,23 +18,27 @@ |
| # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| # |
| |
| - |
| +from __future__ import unicode_literals |
| from guessittest import * |
| |
| +IGNORE_EPISODES = [ 'finale ' ] |
| +IGNORE_MOVIES = [] |
| |
| class TestAutoDetectAll(TestGuessit): |
| def testAutoMatcher(self): |
| self.checkMinimumFieldsCorrect(filetype='autodetect', |
| filename='autodetect.yaml', |
| - removeType=False) |
| + remove_type=False) |
| |
| def testAutoMatcherMovies(self): |
| self.checkMinimumFieldsCorrect(filetype='autodetect', |
| - filename='movies.yaml') |
| + filename='movies.yaml', |
| + exclude_files=IGNORE_MOVIES) |
| |
| def testAutoMatcherEpisodes(self): |
| self.checkMinimumFieldsCorrect(filetype='autodetect', |
| - filename='episodes.yaml') |
| + filename='episodes.yaml', |
| + exclude_files=IGNORE_EPISODES) |
| |
| |
| suite = allTests(TestAutoDetectAll) |
| -- |
| 1.8.1.6 |
| |
| Added by maksbotan@gentoo.org, to be upstreamed |
| |
| diff -ur /var/tmp/portage/dev-python/guessit-0.5.4/work/guessit-0.5.4/tests/test_language.py guessit-0.5.4/tests/test_language.py |
| --- /var/tmp/portage/dev-python/guessit-0.5.4/work/guessit-0.5.4/tests/test_language.py 2013-02-11 03:49:53.000000000 +0400 |
| +++ guessit-0.5.4/tests/test_language.py 2013-04-25 18:41:22.000000000 +0400 |
| @@ -20,6 +20,7 @@ |
| |
| from __future__ import unicode_literals |
| from guessittest import * |
| +import io |
| |
| class TestLanguage(TestGuessit): |
| |
| @@ -81,7 +82,7 @@ |
| |
| def test_opensubtitles(self): |
| opensubtitles_langfile = file_in_same_dir(__file__, 'opensubtitles_languages_2012_05_09.txt') |
| - langs = [ u(l).strip().split('\t') for l in open(opensubtitles_langfile) ][1:] |
| + langs = [ u(l).strip().split('\t') for l in io.open(opensubtitles_langfile, encoding="utf8") ][1:] |
| for lang in langs: |
| # check that we recognize the opensubtitles language code correctly |
| # and that we are able to output this code from a language |