mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
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:
commit
ec176d83e7
@ -126,37 +126,31 @@ class path(text_type):
|
|||||||
def utime(self, arg):
|
def utime(self, arg):
|
||||||
os.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):
|
def write_text(self, text, encoding='utf-8', **kwargs):
|
||||||
"""
|
"""
|
||||||
Writes the given `text` to the file.
|
Writes the given `text` to the file.
|
||||||
"""
|
"""
|
||||||
if isinstance(text, bytes):
|
if isinstance(text, bytes):
|
||||||
text = text.decode(encoding)
|
text = text.decode(encoding)
|
||||||
f = open(self, 'w', encoding=encoding, **kwargs)
|
with open(self, 'w', encoding=encoding, **kwargs) as f:
|
||||||
try:
|
|
||||||
f.write(text)
|
f.write(text)
|
||||||
finally:
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def text(self, encoding='utf-8', **kwargs):
|
def text(self, encoding='utf-8', **kwargs):
|
||||||
"""
|
"""
|
||||||
Returns the text in the file.
|
Returns the text in the file.
|
||||||
"""
|
"""
|
||||||
f = open(self, mode='U', encoding=encoding, **kwargs)
|
with open(self, mode='U', encoding=encoding, **kwargs) as f:
|
||||||
try:
|
|
||||||
return f.read()
|
return f.read()
|
||||||
finally:
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def bytes(self):
|
def bytes(self):
|
||||||
"""
|
"""
|
||||||
Returns the bytes in the file.
|
Returns the bytes in the file.
|
||||||
"""
|
"""
|
||||||
f = open(self, mode='rb')
|
with open(self, mode='rb') as f:
|
||||||
try:
|
|
||||||
return f.read()
|
return f.read()
|
||||||
finally:
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def write_bytes(self, bytes, append=False):
|
def write_bytes(self, bytes, append=False):
|
||||||
"""
|
"""
|
||||||
@ -169,11 +163,8 @@ class path(text_type):
|
|||||||
mode = 'ab'
|
mode = 'ab'
|
||||||
else:
|
else:
|
||||||
mode = 'wb'
|
mode = 'wb'
|
||||||
f = open(self, mode=mode)
|
with open(self, mode=mode) as f:
|
||||||
try:
|
|
||||||
f.write(bytes)
|
f.write(bytes)
|
||||||
finally:
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def exists(self):
|
def exists(self):
|
||||||
"""
|
"""
|
||||||
|
@ -376,11 +376,8 @@ def test_html_output(app, status, warning):
|
|||||||
for fname, paths in iteritems(HTML_XPATH):
|
for fname, paths in iteritems(HTML_XPATH):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
for path, check in paths:
|
for path, check in paths:
|
||||||
yield check_xpath, etree, fname, path, check
|
yield check_xpath, etree, fname, path, check
|
||||||
|
|
||||||
@ -429,11 +426,8 @@ def test_tocdepth(app, status, warning):
|
|||||||
for fname, paths in iteritems(expects):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
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):
|
for fname, paths in iteritems(expects):
|
||||||
parser = NslessParser()
|
parser = NslessParser()
|
||||||
parser.entity.update(html_entities.entitydefs)
|
parser.entity.update(html_entities.entitydefs)
|
||||||
fp = open(os.path.join(app.outdir, fname), 'rb')
|
with (app.outdir / fname).open('rb') as fp:
|
||||||
try:
|
|
||||||
etree = ET.parse(fp, parser)
|
etree = ET.parse(fp, parser)
|
||||||
finally:
|
|
||||||
fp.close()
|
|
||||||
|
|
||||||
for xpath, check, be_found in paths:
|
for xpath, check, be_found in paths:
|
||||||
yield check_xpath, etree, fname, xpath, check, be_found
|
yield check_xpath, etree, fname, xpath, check, be_found
|
||||||
|
Loading…
Reference in New Issue
Block a user