From 409218bc3d5b62e4f3e37aa57126cd628a34bd21 Mon Sep 17 00:00:00 2001 From: Nicolas Wack 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 . # - +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