from test.test_support import run_unittest

import unittest

import StringIO



class SoftspaceTests(unittest.TestCase):

    def test_bug_480215(self):

        # SF bug 480215:  softspace confused in nested print

        f = StringIO.StringIO()

        class C:

            def __str__(self):

                print >> f, 'a'

                return 'b'



        print >> f, C(), 'c ', 'd\t', 'e'

        print >> f, 'f', 'g'

        # In 2.2 & earlier, this printed ' a\nbc  d\te\nf g\n'

        self.assertEqual(f.getvalue(), 'a\nb c  d\te\nf g\n')



def test_main():

    run_unittest(SoftspaceTests)



if __name__ == '__main__':

    test_main()

