Ejemplo n.º 1
0
 def test_execute_finish(self, _query):
     sql = 'update user set id=100'
     row = [
         1, 'CHECKED', 0, 'Execute Successfully', 'None', 'use archery', 0,
         "'0_0_0'", 'None', '0', ''
     ]
     column_list = [
         'ID', 'stage', 'errlevel', 'stagestatus', 'errormessage', 'SQL',
         'Affected_rows', 'sequence', 'backup_dbname', 'execute_time',
         'sqlsha1'
     ]
     _query.return_value = ResultSet(full_sql=sql,
                                     rows=[row],
                                     column_list=column_list)
     new_engine = InceptionEngine()
     execute_result = new_engine.execute(workflow=self.wf)
     self.assertIsInstance(execute_result, ReviewSet)
Ejemplo n.º 2
0
def _table_ref(sql_content, instance, db_name):
    """
    解析语法树,获取语句涉及的表,用于查询权限限制
    :param sql_content:
    :param instance:
    :param db_name:
    :return:
    """
    inception_engine = InceptionEngine()
    query_tree = inception_engine.query_print(instance=instance,
                                              db_name=db_name,
                                              sql=sql_content)
    table_ref = query_tree.get('table_ref', [])
    db_list = [table_info['db'] for table_info in table_ref]
    table_list = [table_info['table'] for table_info in table_ref]
    # 异常解析的情形
    if '' in db_list or '*' in table_list:
        raise RuntimeError('Inception Error: 存在空数据库表信息')
    if not (db_list or table_list):
        raise RuntimeError('Inception Error: 未解析到任何库表信息')
    return table_ref
Ejemplo n.º 3
0
 def test_get_backup_connection(self, _connect):
     new_engine = InceptionEngine()
     new_engine.get_backup_connection()
     _connect.assert_called_once()
Ejemplo n.º 4
0
 def test_query_not_limit(self, _conn, _cursor, _execute):
     _conn.return_value.cursor.return_value.fetchall.return_value = [(1,)]
     new_engine = InceptionEngine(instance=self.ins)
     query_result = new_engine.query(db_name=0, sql='select 1', limit_num=0)
     self.assertIsInstance(query_result, ResultSet)