# -*- coding: utf-8 -*-

d = {
    'name': u'יוניקוד'
}

class U:
    def __str__(self):
        print '%s.__str__ called' % self.__class__.__name__
        return 'string'
    def __unicode__(self):
        print '%s.__unicode__ called' % self.__class__.__name__
        return u'יוניקוד'

string = 'String'
unicode_string = u'יוניקוד'
expected = u'Stringיוניקוד'

        
print 'add unicode literal to string'       
assert string + u'יוניקוד' == expected

print 'add unicode from dict to string'       
assert string + d['name'] == expected

print 'add unicode from variable to string'       
assert string + unicode_string == expected

print 'add object unicode value to string'
obj = U()    
assert string + unicode(obj) == expected
