          self.assertEqual(warnings, expected_warnings)
  
      def test_related_name_converted_to_text(self):
          rel_name = Bar._meta.get_field('a').remote_field.related_name
          self.assertIsInstance(rel_name, six.text_type)
  
      def test_abstract_model_pending_operations(self):
          """
          Foreign key fields declared on abstract models should not add lazy
          relations to resolve relationship declared as string (#24215).
 
</s> remove         # Empty strings should be returned as Unicode
 </s> add         # Empty strings should be returned as string </s> remove     if isinstance(pattern, six.string_types):
 </s> add     if isinstance(pattern, str): </s> remove         self.assertIsInstance(normalized, six.text_type)
 </s> add  </s> remove         self.assertIs(type(a.misc_data), six.text_type)
 </s> add  </s> remove         if isinstance(dr_input, six.string_types):
 </s> add         if isinstance(dr_input, str):
        self.assertIsInstance(rel_name, str)
          self.assertEqual(warnings, expected_warnings)
  
      def test_related_name_converted_to_text(self):
          rel_name = Bar._meta.get_field('a').remote_field.related_name
        self.assertIsInstance(rel_name, str)
  
      def test_abstract_model_pending_operations(self):
          """
          Foreign key fields declared on abstract models should not add lazy
          relations to resolve relationship declared as string (#24215).
keep keep keep keep replace keep keep keep keep keep
 Refs #23919 -- Removed six.<various>_types usage

Thanks Tim Graham and Simon Charette for the reviews. 
tests/model_fields/test_foreignkey.py