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'
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
)
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
])
45 parts
.append('The following paths are unique:')
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
)
59 return differences
, uniques