From 8213a012660e86a76e8e2dd474504d66d6d3103f Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Fri, 28 Mar 2025 16:26:22 +0000 Subject: [PATCH 1/2] Add test --- Lib/test/test_tools/test_msgfmt.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Lib/test/test_tools/test_msgfmt.py b/Lib/test/test_tools/test_msgfmt.py index 55a10888c21f70..ca53b35648afa4 100644 --- a/Lib/test/test_tools/test_msgfmt.py +++ b/Lib/test/test_tools/test_msgfmt.py @@ -1,6 +1,7 @@ """Tests for the Tools/i18n/msgfmt.py tool.""" import json +import struct import sys import unittest from gettext import GNUTranslations @@ -40,6 +41,28 @@ def test_compilation(self): self.assertDictEqual(actual._catalog, expected._catalog) + def test_binary_header(self): + with open(data_dir / "general.mo", "rb") as f: + mo_data = f.read() + + ( + magic, + version, + num_strings, + orig_table_offset, + trans_table_offset, + hash_table_size, + hash_table_offset, + ) = struct.unpack("Iiiiiii", mo_data[:28]) + + self.assertEqual(magic, 0x950412de) + self.assertEqual(version, 0) + self.assertEqual(num_strings, 9) + self.assertEqual(orig_table_offset, 28) + self.assertEqual(trans_table_offset, 100) + self.assertEqual(hash_table_size, 0) + self.assertEqual(hash_table_offset, 0) + def test_translations(self): with open(data_dir / 'general.mo', 'rb') as f: t = GNUTranslations(f) From c005eb03c5137b966d6129b86c98b46ad987d768 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Fri, 28 Mar 2025 20:28:44 +0000 Subject: [PATCH 2/2] Tomas's feedback --- Lib/test/test_tools/test_msgfmt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_tools/test_msgfmt.py b/Lib/test/test_tools/test_msgfmt.py index ca53b35648afa4..dafac0562f472d 100644 --- a/Lib/test/test_tools/test_msgfmt.py +++ b/Lib/test/test_tools/test_msgfmt.py @@ -53,7 +53,7 @@ def test_binary_header(self): trans_table_offset, hash_table_size, hash_table_offset, - ) = struct.unpack("Iiiiiii", mo_data[:28]) + ) = struct.unpack("=Iiiiiii", mo_data[:28]) self.assertEqual(magic, 0x950412de) self.assertEqual(version, 0)