Skip to content

Commit

Permalink
pythonGH-127488: Add tests for the file - msgfmt.py file in Tools/i18…
Browse files Browse the repository at this point in the history
…n/msgfmt
  • Loading branch information
srinivasreddy committed Dec 2, 2024
1 parent 1f8267b commit 095a567
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions Lib/test/test_msgfmt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import unittest
import os
import tempfile
from Tools.i18n.msgfmt import make

class TestMsgfmt(unittest.TestCase):

def setUp(self):
self.test_dir = tempfile.TemporaryDirectory()
self.addCleanup(self.test_dir.cleanup)

def create_po_file(self, content):
po_file_path = os.path.join(self.test_dir.name, 'test.po')
with open(po_file_path, 'w', encoding='utf-8') as f:
f.write(content)
return po_file_path

def test_make_creates_mo_file(self):
po_content = '''
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\\n"
msgid "Hello"
msgstr "Bonjour"
'''
po_file = self.create_po_file(po_content)
mo_file = os.path.splitext(po_file)[0] + '.mo'

make(po_file, mo_file)

self.assertTrue(os.path.exists(mo_file))

def test_make_handles_fuzzy(self):
po_content = '''
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\\n"
#, fuzzy
msgid "Hello"
msgstr "Bonjour"
'''
po_file = self.create_po_file(po_content)
mo_file = os.path.splitext(po_file)[0] + '.mo'

make(po_file, mo_file)

self.assertTrue(os.path.exists(mo_file))

def test_make_invalid_po_file(self):
po_content = '''
msgid "Hello"
msgstr "Bonjour"
msgid_plural "Hellos"
'''
po_file = self.create_po_file(po_content)
mo_file = os.path.splitext(po_file)[0] + '.mo'

with self.assertRaises(SystemExit):
make(po_file, mo_file)

if __name__ == '__main__':
unittest.main()

0 comments on commit 095a567

Please sign in to comment.