| Index: tests/test_page_outputs.py |
| =================================================================== |
| --- a/tests/test_page_outputs.py |
| +++ b/tests/test_page_outputs.py |
| @@ -1,36 +1,20 @@ |
| +from __future__ import print_function |
| + |
| import os |
| import sys |
| import runpy |
| import pytest |
| import urllib2 |
| -from .conftest import ROOTPATH |
| +from .conftest import PAGE_LIST, LANG_LIST |
| from .utils import get_dir_contents, run_test_server |
| -def get_expected_outputs(test_type): |
| - expected_out_path = os.path.join(ROOTPATH, 'tests', 'expected_output') |
| - outputs = get_dir_contents(expected_out_path) |
| - for filename in list(outputs): |
| - # Move test-type-specific expected outputs (e.g. "xyz@static" -> "xyz") |
| - # and remove the expected outputs that don't apply for this test type. |
| - if filename.endswith('@' + test_type): |
| - realname = filename.split('@')[0] |
| - outputs[realname] = outputs[filename] |
| - if '@' in filename: |
| - del outputs[filename] |
| - return outputs.items() |
| - |
| - |
| -static_expected_outputs = get_expected_outputs('static') |
| -dynamic_expected_outputs = get_expected_outputs('dynamic') |
| - |
| - |
| @pytest.fixture(scope='session', params=['master', None]) |
| def revision(request): |
| return request.param |
| @pytest.fixture(scope='session') |
| def static_output(revision, request, temp_site): |
| static_out_path = os.path.join(temp_site, 'static_out') |
| @@ -48,27 +32,31 @@ |
| yield ts |
| @pytest.fixture(scope='session') |
| def output_pages(static_output): |
| return get_dir_contents(static_output) |
| -@pytest.mark.parametrize('filename,expected_output', static_expected_outputs) |
| -def test_static(output_pages, filename, expected_output): |
| - if expected_output.startswith('## MISSING'): |
| - assert filename not in output_pages |
| +@pytest.mark.parametrize('page', PAGE_LIST) |
| +@pytest.mark.parametrize('lang', LANG_LIST) |
| +def test_static(regtest, output_pages, revision, page, lang): |
| + path = '{}/{}'.format(lang, page) |
| + if path in output_pages: |
| + regtest.write(output_pages[path]) |
| else: |
| - assert expected_output == output_pages[filename] |
| + regtest.write('## MISSING') |
| -@pytest.mark.parametrize('filename,expected_output', dynamic_expected_outputs) |
| -def test_dynamic(dynamic_server, filename, expected_output): |
| - response = urllib2.urlopen(dynamic_server + filename) |
| - assert expected_output == response.read().strip() |
| +@pytest.mark.parametrize('page', PAGE_LIST) |
| +@pytest.mark.parametrize('lang', LANG_LIST) |
| +def test_dynamic(regtest, dynamic_server, page, lang): |
| + path = '{}/{}'.format(lang, page) |
| + response = urllib2.urlopen(dynamic_server + path) |
| + regtest.write(response.read()) |
| def test_revision_arg(revision, output_pages): |
| if revision is None: |
| assert 'en/bar' in output_pages |
| else: |
| assert 'en/bar' not in output_pages |