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()