title: assertRaisesRegexp does work with unicode in Python2
body: <p>Hi I noticed assertRaisesRegexp doesn't work with unicode on Python 2.7.
  I was trying the run the following code</p>
  
  <pre><code>import unittest
  def raise_exception():
      raise Exception(u'\u4e2d\u6587')    
  
  class TestUnicode(unittest.TestCase):
      def test_test1(self):
          with self.assertRaisesRegexp(Exception, u'\u4e2d\u6587'):
              raise_exception()
  
  if __name__ == '__main__':
      unittest.main()
  </code></pre>
  
  <p>But got the following error</p>
  
  <pre><code>Traceback (most recent call last):
  File "C:\ZChenCode\unicode.py", line 27, in test_test1
    raise_exception()
    File "C:\Python27\ArcGIS10.3\Lib\unittest\case.py", line 127, in __exit__
      if not expected_regexp.search(str(exc_value)):
  UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
  </code></pre>
  
  <p>Looks like Python standard library is trying to convert a unicode string to str type which caused the error.
  This function works well on Python3 if I use assertRaiseRegx, no unicode issue.
  Any suggestions on how to make it work in Python2?</p>