Merge pull request #2185 from sphinx-doc/use-with-to-open-file-for-testing

Fix #2185: Use with syntax to open files on testing.
This commit is contained in:
Takayuki SHIMIZUKAWA 2015-12-20 08:44:04 +09:00
commit ec176d83e7
2 changed files with 15 additions and 48 deletions

View File

@ -126,37 +126,31 @@ class path(text_type):
def utime(self, arg):
os.utime(self, arg)
def open(self, mode='r', **kwargs):
return open(self, mode, **kwargs)
def write_text(self, text, encoding='utf-8', **kwargs):
"""
Writes the given `text` to the file.
"""
if isinstance(text, bytes):
text = text.decode(encoding)
f = open(self, 'w', encoding=encoding, **kwargs)
try:
with open(self, 'w', encoding=encoding, **kwargs) as f:
f.write(text)
finally:
f.close()
def text(self, encoding='utf-8', **kwargs):
"""
Returns the text in the file.
"""
f = open(self, mode='U', encoding=encoding, **kwargs)
try:
with open(self, mode='U', encoding=encoding, **kwargs) as f:
return f.read()
finally:
f.close()
def bytes(self):
"""
Returns the bytes in the file.
"""
f = open(self, mode='rb')
try:
with open(self, mode='rb') as f:
return f.read()
finally:
f.close()
def write_bytes(self, bytes, append=False):
"""
@ -169,11 +163,8 @@ class path(text_type):
mode = 'ab'
else:
mode = 'wb'
f = open(self, mode=mode)
try:
with open(self, mode=mode) as f:
f.write(bytes)
finally:
f.close()
def exists(self):
"""

View File

@ -376,11 +376,8 @@ def test_html_output(app, status, warning):
for fname, paths in iteritems(HTML_XPATH):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for path, check in paths:
yield check_xpath, etree, fname, path, check
@ -429,11 +426,8 @@ def test_tocdepth(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -474,11 +468,8 @@ def test_tocdepth_singlehtml(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -531,11 +522,8 @@ def test_numfig_disabled(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -633,11 +621,8 @@ def test_numfig_without_numbered_toctree(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -731,11 +716,8 @@ def test_numfig_with_numbered_toctree(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -832,11 +814,8 @@ def test_numfig_with_prefix(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found
@ -930,11 +909,8 @@ def test_numfig_with_secnum_depth(app, status, warning):
for fname, paths in iteritems(expects):
parser = NslessParser()
parser.entity.update(html_entities.entitydefs)
fp = open(os.path.join(app.outdir, fname), 'rb')
try:
with (app.outdir / fname).open('rb') as fp:
etree = ET.parse(fp, parser)
finally:
fp.close()
for xpath, check, be_found in paths:
yield check_xpath, etree, fname, xpath, check, be_found