def assert_catalog_inclusion(catalog: Catalog, other_catalog: Catalog): for message in catalog: if message.id: # ignore header other_message = other_catalog.get(message.id) assert other_message, ( "Message %s is not contained in both catalogs" % message.id) assert_messages_are_same(message, other_message)
def test_find_corresponding_message_exists(self): catalog = Catalog() catalog.add("id", string="Text") corresponding = find_corresponding_message(catalog, Message("id")) self.assertTrue(corresponding) assert_messages_deeply_equal(corresponding, catalog.get("id")) self.assertEqual(find_corresponding_string(catalog, Message("id")), "Text")
def _update_catalog( path: pathlib.Path, locale_id: str, pot_catalog: Catalog, default_messages: Dict[str, str], ) -> Catalog: if not default_messages: try: with open(path, "rb") as po: old_catalog = read_po(po) except FileNotFoundError: old_catalog = Catalog(locale_id) catalog = Catalog(locale_id) for message in pot_catalog: if message.id: if default_messages: try: new_string = default_messages[message.id] except KeyError as err: raise ValueError("Missing default message for %s" % message.id) from err else: old_message = old_catalog.get(message.id) new_string = old_message.string if old_message else "" catalog.add( message.id, string=new_string, auto_comments=message.auto_comments, user_comments=message.user_comments, flags=message.flags, locations=message.locations, ) return catalog
def find_message(catalog: Catalog, message_id: str, context: Optional[str] = None) -> Optional[Message]: message = catalog.get(message_id, context=context) return message if message else None