Пример #1
0
    def test_start_TooFewConnectionsInDict(self):
        # Arrange
        program = "SQLSource(conn1, args)\nConnectionWrapper(conn2, args)" +\
                  "\nCSVSource(conn3)\nSQLSource(conn4, args)"
        transform_visitor = TransformVisitor(self.conn_scope)
        actual = ast.parse(program)

        # Act/Assert
        with self.assertRaises(StopIteration):
            transform_visitor.start(actual)      
Пример #2
0
 def test_start_NoModifications(self):
     # Arrange
     program = """a = 2\nb = a + 3"""
     actual = ast.parse(program)
     expect = ast.parse(program)
     transform_visitor = TransformVisitor(self.conn_scope)
     
     # Act
     transform_visitor.start(actual)
     
     # Assert
     self.assertEqual(dump(actual), dump(expect))
Пример #3
0
    def test_start_ModifyMultiple(self):
        # Arrange
        program = "SQLSource(conn1, args)\nConnectionWrapper(conn2, args)\nCSVSource(conn3)"
        transform_visitor = TransformVisitor(self.conn_scope)
        actual = ast.parse(program)

        # Act
        transform_visitor.start(actual)

        # Assert
        self.assertEqual(actual.body[0].value.args[0].id, 'conn_a')
        self.assertEqual(actual.body[1].value.args[0].id, 'conn_b')
        self.assertEqual(actual.body[2].value.args[0].id, 'conn_c')
Пример #4
0
    def test_start_ModifyKeywordArg(self):
        # Arrange
        program = "{}(connection=conn, args=args)"
        transform_visitor = TransformVisitor(self.conn_scope)
        for s in MODIFY_LIST:
            p = program.format(s)
            actual = ast.parse(p)
            old = ast.parse(p)

            # Act
            transform_visitor.start(actual)
            
            # Assert
            # We check that some modification has been made
            self.assertNotEqual(dump(actual), dump(old))

            # We check that the correct change was made
            self.assertEqual(actual.body[0].value.keywords[0].value.id, 'conn_a')

            # We check that nothing else was changed, this is done by removing
            # the part that should be changed from both.
            actual.body[0].value.keywords[0].value = None
            old.body[0].value.keywords[0].value = None
            self.assertEqual(dump(actual), dump(old))