Exemplo n.º 1
0
    def test_basic_diagram_generation(self):
        diagram_data = py_diagrammer.generate_diagrams_for_code('x = 1', [0])

        self.assertEqual(len(diagram_data), 2)
        self.assertEqual(diagram_data[0].keys(), {'scenes', 'output', 'error'})
        self.assertEqual(diagram_data[0]['scenes'].keys(),
                         {'globals', 'locals'})
        self.assertEqual(diagram_data[0]['output'], '')
        self.assertEqual(diagram_data[0]['error'], '')
Exemplo n.º 2
0
    def test_collection_iterative_diagram_generation(self):
        diagram_data = py_diagrammer.generate_diagrams_for_code(
            'l = []\nfor i in range(5):\n\tl.append(i)', [2])

        self.assertEqual(len(diagram_data), 6)

        for diagram in diagram_data:
            self.assertEqual(diagram.keys(), {'scenes', 'output', 'error'})
            self.assertEqual(diagram['scenes'].keys(), {'globals', 'locals'})
            self.assertEqual(diagram['output'], '')
            self.assertEqual(diagram['error'], '')
Exemplo n.º 3
0
    def test_complex_output_generation(self):
        iterations = 5
        diagram_data = py_diagrammer.generate_diagrams_for_code(
            f'for i in range({iterations}):\n\tprint(i)', [1])

        self.assertEqual(len(diagram_data), iterations + 1)

        expected_output = ''

        for i, snapshot in enumerate(diagram_data):
            if i < iterations:
                expected_output += f'{i}\n'

            self.assertEqual(snapshot['output'], expected_output)
            self.assertEqual(snapshot['error'], '')
Exemplo n.º 4
0
    def test_error_generation(self):
        diagram_data = py_diagrammer.generate_diagrams_for_code('print(5', [0])

        self.assertEqual(diagram_data[0]['output'], '')
        self.assertEqual(diagram_data[0]['error'],
                         'SyntaxError: invalid syntax (<string>, line 2)\n')
Exemplo n.º 5
0
    def test_basic_output_generation(self):
        diagram_data = py_diagrammer.generate_diagrams_for_code(
            'print(5)', [0])

        self.assertEqual(diagram_data[0]['output'], '5\n')
        self.assertEqual(diagram_data[0]['error'], '')