Pulling Marko's test fixes

This commit is contained in:
Tom Christie 2011-04-27 18:28:20 +01:00
commit fb805bbb7c
4 changed files with 35 additions and 16 deletions

View File

@ -28,12 +28,14 @@ class TestPygmentsExample(TestCase):
def test_snippets_datetime_sorted(self): def test_snippets_datetime_sorted(self):
'''Pygments examples should be datetime sorted''' '''Pygments examples should be datetime sorted'''
locations = [] locations = []
for snippet in 'abcdefghijk': for snippet in 'abcdefghij': # String length must not exceed views.MAX_FILES, otherwise test fails
form_data = {'code': '%s' % snippet, 'style':'friendly', 'lexer':'python'} form_data = {'code': '%s' % snippet, 'style':'friendly', 'lexer':'python'}
request = self.factory.post('/pygments', data=form_data) request = self.factory.post('/pygments', data=form_data)
view = views.PygmentsRoot.as_view() view = views.PygmentsRoot.as_view()
response = view(request) response = view(request)
locations.append(response.items()[2][1]) locations.append(response.items()[2][1])
import time
time.sleep(.1)
request = self.factory.get('/pygments') request = self.factory.get('/pygments')
view = views.PygmentsRoot.as_view() view = views.PygmentsRoot.as_view()
response = view(request) response = view(request)

View File

@ -25,7 +25,7 @@ def list_dir_sorted_by_ctime(dir):
"""Return a list of files sorted by creation time""" """Return a list of files sorted by creation time"""
filepaths = [os.path.join(dir, file) for file in os.listdir(dir) if not file.startswith('.')] filepaths = [os.path.join(dir, file) for file in os.listdir(dir) if not file.startswith('.')]
return [item[0] for item in sorted([(path, os.path.getctime(path)) for path in filepaths], return [item[0] for item in sorted([(path, os.path.getctime(path)) for path in filepaths],
key=operator.itemgetter(1), reverse=True)] key=operator.itemgetter(1), reverse=False)]
def remove_oldest_files(dir, max_files): def remove_oldest_files(dir, max_files):
"""Remove the oldest files in a directory 'dir', leaving at most 'max_files' remaining. """Remove the oldest files in a directory 'dir', leaving at most 'max_files' remaining.
We use this to limit the number of resources in the sandbox.""" We use this to limit the number of resources in the sandbox."""

View File

@ -4,10 +4,24 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings from django.conf import settings
from django.test.utils import get_runner from django.test.utils import get_runner
from coverage import coverage
def main(): def main():
"""Run the tests for the examples and generate a coverage report."""
# Discover the list of all modules that we should test coverage for
project_dir = os.path.dirname(__file__)
cov_files = []
for (path, dirs, files) in os.walk(project_dir):
# Drop tests and runtests directories from the test coverage report
if os.path.basename(path) == 'tests' or os.path.basename(path) == 'runtests':
continue
cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')])
TestRunner = get_runner(settings) TestRunner = get_runner(settings)
cov = coverage()
cov.erase()
cov.start()
if hasattr(TestRunner, 'func_name'): if hasattr(TestRunner, 'func_name'):
# Pre 1.2 test runners were just functions, # Pre 1.2 test runners were just functions,
# and did not support the 'failfast' option. # and did not support the 'failfast' option.
@ -19,8 +33,11 @@ def main():
failures = TestRunner(None) failures = TestRunner(None)
else: else:
test_runner = TestRunner() test_runner = TestRunner()
failures = test_runner.run_tests(None) failures = test_runner.run_tests(['blogpost', 'pygments_api'])
cov.stop()
cov.report(cov_files)
cov.xml_report(cov_files)
sys.exit(failures) sys.exit(failures)
if __name__ == '__main__': if __name__ == '__main__':

24
tox.ini
View File

@ -28,42 +28,42 @@ basepython=python2.5
deps= deps=
django==1.2.4 django==1.2.4
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py26-django12] [testenv:py26-django12]
basepython=python2.6 basepython=python2.6
deps= deps=
django==1.2.4 django==1.2.4
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py27-django12] [testenv:py27-django12]
basepython=python2.7 basepython=python2.7
deps= deps=
django==1.2.4 django==1.2.4
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py25-django13] [testenv:py25-django13]
basepython=python2.5 basepython=python2.5
deps= deps=
django==1.3 django==1.3
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py26-django13] [testenv:py26-django13]
basepython=python2.6 basepython=python2.6
deps= deps=
django==1.3 django==1.3
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py27-django13] [testenv:py27-django13]
basepython=python2.7 basepython=python2.7
deps= deps=
django==1.3 django==1.3
coverage==3.4 coverage==3.4
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
####################################### EXAMPLES ################################################ ####################################### EXAMPLES ################################################
@ -78,7 +78,7 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py26-django12e] [testenv:py26-django12e]
basepython=python2.6 basepython=python2.6
@ -91,7 +91,7 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py27-django12e] [testenv:py27-django12e]
basepython=python2.7 basepython=python2.7
@ -104,7 +104,7 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py25-django13e] [testenv:py25-django13e]
basepython=python2.5 basepython=python2.5
@ -117,7 +117,7 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py26-django13e] [testenv:py26-django13e]
basepython=python2.6 basepython=python2.6
@ -130,7 +130,7 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2
[testenv:py27-django13e] [testenv:py27-django13e]
basepython=python2.7 basepython=python2.7
@ -143,4 +143,4 @@ deps=
Pygments==1.4 Pygments==1.4
httplib2==0.6.0 httplib2==0.6.0
Markdown==2.0.3 Markdown==2.0.3
https://github.com/downloads/markotibold/unittest-xml-reporting/unittest-xml-reporting-1.1.zip unittest-xml-reporting==1.2