          """
          self.assertEqual('django', six.text_type(string_concat("dja", "ngo")))
  
      def test_safe_status(self):
          """
          Translating a string requiring no auto-escaping shouldn't change the "safe" status.
          """
          s = mark_safe(str('Password'))
 
</s> remove     t = getattr(_active, "value", None)
    if t is not None:
        result = getattr(t, translation_function)(eol_message)
 </s> add     if len(eol_message) == 0:
        # Returns an empty value of the corresponding type if an empty message
        # is given, instead of metadata, which is the default gettext behavior.
        result = type(message)("") </s> remove         if _default is None:
            _default = translation(settings.LANGUAGE_CODE)
        result = getattr(_default, translation_function)(eol_message)
 </s> add         _default = _default or translation(settings.LANGUAGE_CODE)
        translation_object = getattr(_active, "value", _default)

        result = getattr(translation_object, translation_function)(eol_message)

    def test_empty_value(self):
        """
        Empty value must stay empty after being translated (#23196).
        """
        with translation.override('de'):
            self.assertEqual("", ugettext(""))
            self.assertEqual(b"", gettext(b""))
            s = mark_safe("")
            self.assertEqual(s, ugettext(s))

          """
          self.assertEqual('django', six.text_type(string_concat("dja", "ngo")))
  
    def test_empty_value(self):
        """
        Empty value must stay empty after being translated (#23196).
        """
        with translation.override('de'):
            self.assertEqual("", ugettext(""))
            self.assertEqual(b"", gettext(b""))
            s = mark_safe("")
            self.assertEqual(s, ugettext(s))

      def test_safe_status(self):
          """
          Translating a string requiring no auto-escaping shouldn't change the "safe" status.
          """
          s = mark_safe(str('Password'))
keep keep add keep keep keep keep keep
 Fixed #23196 -- Short-circuited empty string translation

Translating an empty string used to return the gettext catalog
metadata instead of the empty string.
Thanks Ned Batchelder for the suggestion, Tim Graham for the review
and Anton Berezin and Claude Paroz for contributions to the patch. 
tests/i18n/tests.py