Use code objects for exec statements instead of files

This commit is contained in:
Daniel Neuhäuser 2010-05-08 22:00:15 +02:00
parent b81d428b89
commit 25b16f89e0
2 changed files with 6 additions and 3 deletions

View File

@ -167,9 +167,10 @@ class Config(object):
os.chdir(dirname)
f = open(config_file, 'U')
try:
exec f in config
code = compile(f.read(), config_file, 'exec')
finally:
f.close()
exec code in config
except SyntaxError, err:
raise ConfigError('There is a syntax error in your '
'configuration file: ' + str(err))

View File

@ -87,9 +87,10 @@ def test_quickstart_defaults(tempdir):
ns = {}
f = open(conffile, 'U')
try:
exec f in ns
code = compile(f.read(), conffile, 'exec')
finally:
f.close()
exec code in ns
assert ns['extensions'] == []
assert ns['templates_path'] == ['_templates']
assert ns['source_suffix'] == '.rst'
@ -144,9 +145,10 @@ def test_quickstart_all_answers(tempdir):
ns = {}
f = open(conffile, 'U')
try:
exec f in ns
code = compile(f.read(), conffile, 'exec')
finally:
f.close()
exec code in ns
assert ns['extensions'] == ['sphinx.ext.autodoc', 'sphinx.ext.doctest']
assert ns['templates_path'] == ['.templates']
assert ns['source_suffix'] == '.txt'