HISTORY summary
[docutils.git] / test / functional / tests / standalone_rst_s5_html_1.py
blobb143ba00396f1c6d5ccfbfec0eaaec6b2b9350c8
1 exec(open('functional/tests/_standalone_rst_defaults.py').read())
3 # Source and destination file names:
4 test_source = 'standalone_rst_s5_html.txt'
5 test_destination = 'standalone_rst_s5_html_1.html'
7 # Keyword parameters passed to publish_file:
8 writer_name = 's5_html'
10 # Settings:
11 settings_overrides['theme'] = 'small-black'
12 # local copy of default stylesheet:
13 settings_overrides['stylesheet_path'] = (
14 'functional/input/data/html4css1.css')
17 # Extra functional tests.
18 # Prefix all names with '_' to avoid confusing `docutils.core.publish_file`.
20 import filecmp as _filecmp
22 def _test_more(expected_dir, output_dir, test_case, parameters):
23 """Compare ``ui/<theme>`` directories."""
24 theme = settings_overrides.get('theme', 'default')
25 expected = '%s/%s/%s' % (expected_dir, 'ui', theme)
26 output = '%s/%s/%s' % (output_dir, 'ui', theme)
27 differences, uniques = _compare_directories(expected, output)
28 parts = []
29 if differences:
30 parts.append('The following files differ from the expected output:')
31 parts.extend(differences)
32 expected = [path.replace('functional/output/', 'functional/expected/')
33 for path in differences]
34 parts.append('Please compare the expected and actual output files:')
35 parts.extend([' diff %s %s' % tup
36 for tup in zip(expected, differences)])
37 parts.append('If the actual output is correct, please replace the '
38 'expected output files:')
39 parts.extend([' mv %s %s' % tup
40 for tup in zip(differences, expected)])
41 parts.append('and check them in to Subversion:')
42 parts.extend([' svn commit -m "<comment>" %s' % path
43 for path in expected])
44 if uniques:
45 parts.append('The following paths are unique:')
46 parts.extend(uniques)
47 test_case.assertTrue(not parts, '\n'.join(parts))
49 def _compare_directories(expected, output):
50 dircmp = _filecmp.dircmp(expected, output, ['.svn', 'CVS'])
51 differences = ['%s/%s' % (output, name) for name in dircmp.diff_files]
52 uniques = (['%s/%s' % (expected, name) for name in dircmp.left_only]
53 + ['%s/%s' % (output, name) for name in dircmp.right_only])
54 for subdir in dircmp.common_dirs:
55 diffs, uniqs = _compare_directories('%s/%s' % (expected, subdir),
56 '%s/%s' % (output, subdir))
57 differences.extend(diffs)
58 uniques.extend(uniqs)
59 return differences, uniques