mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-44827: Improve error if BOM on first line of .po file (GH-130187)
This commit is contained in:
parent
185ac5adaf
commit
01ba7df499
2 changed files with 18 additions and 0 deletions
|
@ -39,6 +39,14 @@ class CompilationTest(unittest.TestCase):
|
||||||
|
|
||||||
self.assertDictEqual(actual._catalog, expected._catalog)
|
self.assertDictEqual(actual._catalog, expected._catalog)
|
||||||
|
|
||||||
|
def test_po_with_bom(self):
|
||||||
|
with temp_cwd():
|
||||||
|
Path('bom.po').write_bytes(b'\xef\xbb\xbfmsgid "Python"\nmsgstr "Pioton"\n')
|
||||||
|
|
||||||
|
res = assert_python_failure(msgfmt, 'bom.po')
|
||||||
|
err = res.err.decode('utf-8')
|
||||||
|
self.assertIn('The file bom.po starts with a UTF-8 BOM', err)
|
||||||
|
|
||||||
def test_invalid_msgid_plural(self):
|
def test_invalid_msgid_plural(self):
|
||||||
with temp_cwd():
|
with temp_cwd():
|
||||||
Path('invalid.po').write_text('''\
|
Path('invalid.po').write_text('''\
|
||||||
|
|
|
@ -32,9 +32,11 @@ import getopt
|
||||||
import struct
|
import struct
|
||||||
import array
|
import array
|
||||||
from email.parser import HeaderParser
|
from email.parser import HeaderParser
|
||||||
|
import codecs
|
||||||
|
|
||||||
__version__ = "1.2"
|
__version__ = "1.2"
|
||||||
|
|
||||||
|
|
||||||
MESSAGES = {}
|
MESSAGES = {}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,6 +118,14 @@ def make(filename, outfile):
|
||||||
print(msg, file=sys.stderr)
|
print(msg, file=sys.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
if lines[0].startswith(codecs.BOM_UTF8):
|
||||||
|
print(
|
||||||
|
f"The file {infile} starts with a UTF-8 BOM which is not allowed in .po files.\n"
|
||||||
|
"Please save the file without a BOM and try again.",
|
||||||
|
file=sys.stderr
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
section = msgctxt = None
|
section = msgctxt = None
|
||||||
fuzzy = 0
|
fuzzy = 0
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue