diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 000000000..f254045c5 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2004-2005 Tristan Seligmann and Jonathan Jacobs +# Copyright (C) 2012-2014 Bastian Kleineidam +# Copyright (C) 2014-2016 Tobias Gruetzmacher + +import re +import operator +import os + +from dosagelib import scraper + + +def get_test_scrapers(): + """Return scrapers that should be tested.""" + if "TESTALL" in os.environ: + # test all comics (this will take some time) + scrapers = scraper.get_scrapers() + else: + if 'TESTCOMICS' in os.environ: + scraper_pattern = re.compile(os.environ['TESTCOMICS']) + else: + # Get limited number of scraper tests on Travis builds to make it + # faster + testscrapernames = [ + 'AbstruseGoose', + 'GoComics/CalvinAndHobbes', + 'xkcd' + ] + scraper_pattern = re.compile('|'.join(testscrapernames)) + + scrapers = [ + scraperobj for scraperobj in scraper.get_scrapers() + if scraper_pattern.match(scraperobj.name) + ] + return scrapers + + +def pytest_generate_tests(metafunc): + if 'scraperobj' in metafunc.fixturenames: + metafunc.parametrize('scraperobj', get_test_scrapers(), + ids=operator.attrgetter('name')) diff --git a/tests/test_comics.py b/tests/test_comics.py index 7cfc643d3..d13d9e485 100644 --- a/tests/test_comics.py +++ b/tests/test_comics.py @@ -5,13 +5,11 @@ import re import os -import operator import multiprocessing try: from urllib.parse import urlsplit except ImportError: from urlparse import urlsplit -from dosagelib import scraper def get_host(url): @@ -119,34 +117,3 @@ def _check_stripurl(strip, scraperobj): err = 'strip URL %r does not match stripUrl pattern %s' % ( strip.stripUrl, urlmatch) assert mo is not None, err - - -def get_test_scrapers(): - """Return scrapers that should be tested.""" - if "TESTALL" in os.environ: - # test all comics (this will take some time) - scrapers = scraper.get_scrapers() - else: - if 'TESTCOMICS' in os.environ: - scraper_pattern = re.compile(os.environ['TESTCOMICS']) - else: - # Get limited number of scraper tests on Travis builds to make it - # faster - testscrapernames = [ - 'AbstruseGoose', - 'GoComics/CalvinAndHobbes', - 'xkcd' - ] - scraper_pattern = re.compile('|'.join(testscrapernames)) - - scrapers = [ - scraperobj for scraperobj in scraper.get_scrapers() - if scraper_pattern.match(scraperobj.name) - ] - return scrapers - - -def pytest_generate_tests(metafunc): - if 'scraperobj' in metafunc.fixturenames: - metafunc.parametrize('scraperobj', get_test_scrapers(), - ids=operator.attrgetter('name'))