4 # Author: Lea Wiemann <LeWiemann@gmail.com>
5 # Copyright: This module has been placed in the public domain.
8 Test module for the --record-dependencies option.
14 import DocutilsTestSupport
# must be imported before docutils
19 class RecordDependenciesTests(unittest
.TestCase
):
21 # docutils.utils.DependencyList records relative URLs, not platform paths,
22 # so use "/" as a path separator even on Windows (not os.path.join).
24 def get_record(self
, **settings
):
25 recordfile
= 'record.txt'
26 settings
.setdefault('source_path',
27 os
.path
.join('data', 'dependencies.txt'))
28 settings
.setdefault('settings_overrides', {})
29 settings
['settings_overrides'] = settings
['settings_overrides'].copy()
30 settings
['settings_overrides']['_disable_config'] = 1
31 if not settings
['settings_overrides'].has_key('record_dependencies'):
32 settings
['settings_overrides']['record_dependencies'] = \
33 docutils
.utils
.DependencyList(recordfile
)
34 docutils
.core
.publish_file(destination
=DocutilsTestSupport
.DevNull(),
36 settings
['settings_overrides']['record_dependencies'].close()
37 return open(recordfile
).read().splitlines()
39 def test_dependencies(self
):
40 self
.assertEqual(self
.get_record(),
41 ['data/include.txt', 'data/raw.txt'])
42 self
.assertEqual(self
.get_record(writer_name
='latex'),
45 # this is a URL, not a path:
48 def test_csv_dependencies(self
):
52 self
.get_record(source_path
=os
.path
.join('data',
54 ['data/csv_data.txt'])
58 def test_stylesheet_dependencies(self
):
59 # Parameters to publish_file.
60 s
= {'settings_overrides': {}}
61 so
= s
['settings_overrides']
62 so
['embed_stylesheet'] = 0
63 so
['stylesheet_path'] = os
.path
.join('data', 'stylesheet.txt')
64 so
['stylesheet'] = None
65 s
['writer_name'] = 'html'
66 self
.assert_(os
.path
.join('data', 'stylesheet.txt') not in
68 so
['embed_stylesheet'] = 1
69 self
.assert_('data/stylesheet.txt' in self
.get_record(**s
))
70 del so
['embed_stylesheet']
71 s
['writer_name'] = 'latex'
72 self
.assert_('data/stylesheet.txt' in self
.get_record(**s
))
75 if __name__
== '__main__':