Move test parametrization into its own file.

This commit is contained in:
Tobias Gruetzmacher 2016-04-16 12:01:43 +02:00
parent 7c3a87970b
commit 7708c678a6
2 changed files with 41 additions and 33 deletions

41
tests/conftest.py Normal file
View file

@ -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'))

View file

@ -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'))