[Python-checkins] CVS: python/dist/src/Lib/test test_unicode.py,1.6,1.7

Guido van Rossum python-dev@python.org
Mon, 10 Apr 2000 09:52:51 -0400 (EDT)


Update of /projects/cvsroot/python/dist/src/Lib/test
In directory eric:/projects/python/develop/guido/src/Lib/test

Modified Files:
	test_unicode.py 
Log Message:
Marc-Andre Lemburg:

* '...%s...' % u"abc" now coerces to Unicode just like 
  string methods. Care is taken not to reevaluate already formatted
  arguments -- only the first Unicode object appearing in the
  argument mapping is looked up twice. Added test cases for
  this to test_unicode.py.


Index: test_unicode.py
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Lib/test/test_unicode.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** test_unicode.py	2000/04/05 20:11:19	1.6
--- test_unicode.py	2000/04/10 13:52:48	1.7
***************
*** 256,259 ****
--- 256,268 ----
  assert u"%(x)s, %(y)s" % {'x':u"abc", 'y':"def"} == u'abc, def'
  assert u"%(x)s, %(ä)s" % {'x':u"abc", u'ä'.encode('utf-8'):"def"} == u'abc, def'
+ # formatting jobs delegated from the string implementation:
+ assert '...%(foo)s...' % {'foo':u"abc"} == u'...abc...'
+ assert '...%(foo)s...' % {'foo':"abc"} == '...abc...'
+ assert '...%(foo)s...' % {u'foo':"abc"} == '...abc...'
+ assert '...%(foo)s...' % {u'foo':u"abc"} == u'...abc...'
+ assert '...%(foo)s...' % {u'foo':u"abc",'def':123} ==  u'...abc...'
+ assert '...%(foo)s...' % {u'foo':u"abc",u'def':123} == u'...abc...'
+ assert '...%s...%s...%s...%s...' % (1,2,3,u"abc") == u'...1...2...3...abc...'
+ assert '...%s...' % u"abc" == u'...abc...'
  print 'done.'
  
***************
*** 265,268 ****
--- 274,297 ----
  assert unicode('hello','utf8') == u'hello'
  assert unicode('hello','latin-1') == u'hello'
+ 
+ try:
+     u'Andr\202 x'.encode('ascii')
+     u'Andr\202 x'.encode('ascii','strict')
+ except ValueError:
+     pass
+ else:
+     raise AssertionError, "u'Andr\202'.encode('ascii') failed to raise an exception"
+ assert u'Andr\202 x'.encode('ascii','ignore') == "Andr x"
+ assert u'Andr\202 x'.encode('ascii','replace') == "Andr? x"
+ 
+ try:
+     unicode('Andr\202 x','ascii')
+     unicode('Andr\202 x','ascii','strict')
+ except ValueError:
+     pass
+ else:
+     raise AssertionError, "unicode('Andr\202') failed to raise an exception"
+ assert unicode('Andr\202 x','ascii','ignore') == u"Andr x"
+ assert unicode('Andr\202 x','ascii','replace') == u'Andr\uFFFD x'
  
  assert u'hello'.encode('ascii') == 'hello'