Esempio n. 1
0
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)
Esempio n. 2
0
 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")
Esempio n. 3
0
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
Esempio n. 4
0
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