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())
Ejemplo n.º 2
0
    def test_assign_function(self):
        # SETUP
        expected_report = ''
        f = lambda n: n + 1

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='f', value=f, line_number=2)
        report = builder.report()

        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 3
0
 def test_assign_function(self):
     # SETUP
     expected_report = ''
     f = lambda n: n + 1
     
     # EXEC
     builder = ReportBuilder()
     builder.assign(name='f', value=f, line_number=2)
     report = builder.report()
     
     # VERIFY
     self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 4
0
    def test_multiple_messages(self):
        # SETUP
        expected_report = """\
x = 1 y = 2 """
        
        # EXEC
        builder = ReportBuilder()
        builder.assign(name='x', value=1, line_number=1)
        builder.assign(name='y', value=2, line_number=1)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 5
0
 def test_assign_object_without_repr(self):
     # SETUP
     expected_report = ''
     class class_without_repr(object):
         pass
     
     # EXEC
     builder = ReportBuilder()
     builder.assign(name='x', value=class_without_repr(), line_number=2)
     report = builder.report()
     
     # VERIFY
     self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 6
0
    def test_multiple_messages(self):
        # SETUP
        expected_report = """\
x = 1 y = 2 """

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='x', value=1, line_number=1)
        builder.assign(name='y', value=2, line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 7
0
    def test_assign_function(self):
        # SETUP
        expected_report = ''

        def f(n):
            return n + 1

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='f', value=f, line_number=2)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 8
0
    def test_assign_object_without_repr(self):
        # SETUP
        expected_report = ''

        class class_without_repr(object):
            pass

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='x', value=class_without_repr(), line_number=2)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
    def test_assign_function(self):
        # SETUP
        expected_report = ''

        def f(n):
            return n+1

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='f', value=f, line_number=2)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
    def test_assign_object_with_repr_exception(self):
        # SETUP
        expected_report = ''

        class BadReprClass(object):
            def __repr__(self):
                raise NotImplementedError()

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='m', value=BadReprClass(), line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 11
0
    def test_multiple_lines(self):
        # SETUP
        expected_report = """\
a = 3 

b = 'xyz' """
        
        # EXEC
        builder = ReportBuilder()
        builder.assign(name='a', value=3, line_number=1)
        builder.assign(name='b', value="xyz", line_number=3)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 12
0
    def test_assign_object_with_repr_exception(self):
        # SETUP
        expected_report = ''

        class BadReprClass(object):
            def __repr__(self):
                raise NotImplementedError()

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='m', value=BadReprClass(), line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 13
0
    def test_multiple_lines(self):
        # SETUP
        expected_report = """\
a = 3

b = 'xyz' """

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='a', value=3, line_number=1)
        builder.assign(name='b', value="xyz", line_number=3)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 14
0
 def test_assign_object_with_multiline_repr(self):
     # SETUP
     expected_report = 'm = multiline_class(1, 2) '
     class multiline_class(object):
         def __init__(self, x, y):
             self.x = x
             self.y = y
         def __repr__(self):
             return "multiline_class(%r,\n%r)" % (self.x, self.y)
     
     # EXEC
     builder = ReportBuilder()
     builder.assign(name='m', value=multiline_class(1, 2), line_number=1)
     report = builder.report()
     
     # VERIFY
     self.assertEqual(expected_report.splitlines(), report.splitlines())
    def test_message_limit(self):
        # SETUP
        expected_report = """\
a = 10
b = 20
"""

        # EXEC
        builder = ReportBuilder(message_limit=4)
        builder.assign('a', 10, 1)
        builder.assign('b', 20, 2)
        with self.assertRaisesRegex(RuntimeError, r'message limit exceeded'):
            builder.assign('c', 30, 3)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 16
0
    def test_assign_object_with_multiline_repr(self):
        # SETUP
        expected_report = 'm = multiline_class(1, 2) '

        class multiline_class(object):
            def __init__(self, x, y):
                self.x = x
                self.y = y

            def __repr__(self):
                return "multiline_class(%r,\n%r)" % (self.x, self.y)

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='m', value=multiline_class(1, 2), line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 17
0
    def test_assign(self):
        # SETUP
        expected_value = 5
        expected_report = """\

x = 5 
"""
        
        # EXEC
        builder = ReportBuilder()
        value = builder.assign(name='x', value=expected_value, line_number=2)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
        self.assertEqual(expected_value, value)
Ejemplo n.º 18
0
    def test_assign(self):
        # SETUP
        expected_value = 5
        expected_report = """\

x = 5
"""

        # EXEC
        builder = ReportBuilder()
        value = builder.assign(name='x', value=expected_value, line_number=2)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
        self.assertEqual(expected_value, value)
Ejemplo n.º 19
0
    def test_nested_blocks(self):
        # SETUP
        expected_report = """\
x = 'first' | x = 'second' 
            | y = 1 | y = 2 """
        
        # EXEC
        builder = ReportBuilder()
        builder.start_block(1, 2)
        builder.assign(name='x', value='first', line_number=1)
        builder.start_block(1, 2)
        builder.assign(name='x', value='second', line_number=1)
        builder.start_block(2, 2)
        builder.assign(name='y', value=1, line_number=2)
        builder.start_block(2, 2)
        builder.assign(name='y', value=2, line_number=2)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 20
0
    def test_nested_blocks(self):
        # SETUP
        expected_report = """\
x = 'first' | x = 'second'
            | y = 1 | y = 2 """

        # EXEC
        builder = ReportBuilder()
        builder.start_block(1, 2)
        builder.assign(name='x', value='first', line_number=1)
        builder.start_block(1, 2)
        builder.assign(name='x', value='second', line_number=1)
        builder.start_block(2, 2)
        builder.assign(name='y', value=1, line_number=2)
        builder.start_block(2, 2)
        builder.assign(name='y', value=2, line_number=2)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 21
0
    def test_multiple_visits(self):
        # SETUP
        expected_report = """\
x = 'first'    | x = 'second' 
y = 'continue' | """
        
        # EXEC
        builder = ReportBuilder()
        builder.start_block(1, 2)
        builder.assign(name='x', value='first', line_number=1)
        builder.assign(name='y', value='continue', line_number=2)
        builder.start_block(1, 2)
        builder.assign(name='x', value='second', line_number=1)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 22
0
    def test_multiple_visits(self):
        # SETUP
        expected_report = """\
x = 'first'    | x = 'second'
y = 'continue' | """

        # EXEC
        builder = ReportBuilder()
        builder.start_block(1, 2)
        builder.assign(name='x', value='first', line_number=1)
        builder.assign(name='y', value='continue', line_number=2)
        builder.start_block(1, 2)
        builder.assign(name='x', value='second', line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)
Ejemplo n.º 23
0
    def test_separate_scopes(self):
        # SETUP
        expected_report = """\
x = 'child' | x = 'child again' 

y = 'main' """
        
        # EXEC
        builder = ReportBuilder()
        builder.assign(name='y', value='main', line_number=3)
        builder.start_block(1, 1)
        builder.assign(name='x', value='child', line_number=1)
        builder.start_block(1, 1)
        builder.assign(name='x', value='child again', line_number=1)
        report = builder.report()
        
        # VERIFY
        self.assertEqual(expected_report.splitlines(), report.splitlines())
Ejemplo n.º 24
0
    def test_separate_scopes(self):
        # SETUP
        expected_report = """\
x = 'child' | x = 'child again'

y = 'main' """

        # EXEC
        builder = ReportBuilder()
        builder.assign(name='y', value='main', line_number=3)
        builder.start_block(1, 1)
        builder.assign(name='x', value='child', line_number=1)
        builder.start_block(1, 1)
        builder.assign(name='x', value='child again', line_number=1)
        report = builder.report()

        # VERIFY
        self.assertReportEqual(expected_report, report)