          self.assertEqual(bytes(obj), b'foo')
  
      def test_text(self):
          obj = self.lazy_wrap('foo')
          self.assertEqual(six.text_type(obj), 'foo')
  
      def test_bool(self):
          # Refs #21840
          for f in [False, 0, (), {}, [], None, set()]:
              self.assertFalse(self.lazy_wrap(f))
 
</s> remove             addresses = [[six.text_type(address) for address in obj.addresses.all()] for obj in qs]
        self.assertEqual(addresses, [[six.text_type(self.author_address)], [], []])
 </s> add             addresses = [[str(address) for address in obj.addresses.all()] for obj in qs]
        self.assertEqual(addresses, [[str(self.author_address)], [], []]) </s> remove         self.assertEqual(addresses, [[six.text_type(self.author_address)], [], []])
 </s> add         self.assertEqual(addresses, [[str(self.author_address)], [], []]) </s> remove             addresses = [[six.text_type(address) for address in obj.addresses.all()]
 </s> add             addresses = [[str(address) for address in obj.addresses.all()] </s> remove                 if not isinstance(f.remote_field.model, six.string_types):
 </s> add                 if not isinstance(f.remote_field.model, str): </s> remove     if isinstance(stream_or_string, six.string_types):
 </s> add     if isinstance(stream_or_string, str):
        self.assertEqual(str(obj), 'foo')
          self.assertEqual(bytes(obj), b'foo')
  
      def test_text(self):
          obj = self.lazy_wrap('foo')
        self.assertEqual(str(obj), 'foo')
  
      def test_bool(self):
          # Refs #21840
          for f in [False, 0, (), {}, [], None, set()]:
              self.assertFalse(self.lazy_wrap(f))
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/utils_tests/test_lazyobject.py