def test_format_stderr(self):
        # SETUP
        expected_report = "sys.stderr.write('abc') | x = None"

        # EXEC
        builder = ReportBuilder()
        builder.add_output('abc', 1, target_name='sys.stderr')
        builder.assign(name='x', value=None, line_number=1)

        # VERIFY
        self.assertReportEqual(expected_report, builder.report())
    def test_output_stderr(self):
        # SETUP
        expected_report = """\
sys.stderr.write('a\\n')
"""

        # EXEC
        builder = ReportBuilder()
        builder.add_output('a\n', 1, target_name='sys.stderr')

        # VERIFY
        self.assertReportEqual(expected_report, builder.report())
    def test_output_without_newline(self):
        # SETUP
        expected_report = """\
sys.stdout.write('a')
"""

        # EXEC
        builder = ReportBuilder()
        builder.add_output('a', 1)

        # VERIFY
        self.assertReportEqual(expected_report, builder.report())
    def test_output(self):
        # SETUP
        expected_report = """\
print('a')
"""

        # EXEC
        builder = ReportBuilder()
        builder.add_output('a\n', 1)

        # VERIFY
        self.assertReportEqual(expected_report, builder.report())
    def test_multiple_outputs_different_lines(self):
        # SETUP
        expected_report = """\
print('a')

print('b')
"""

        # EXEC
        builder = ReportBuilder()
        builder.add_output('a\n', 1)
        builder.add_output('b\n', 3)

        # VERIFY
        self.assertReportEqual(expected_report, builder.report())