示例#1
0
 def test_query_masking(self):
     query_result = ResultSet()
     new_engine = PgSQLEngine(instance=self.ins)
     masking_result = new_engine.query_masking(db_name=0,
                                               sql='',
                                               resultset=query_result)
     self.assertEqual(masking_result, query_result)
示例#2
0
 def test_query(self, _conn, _cursor, _execute):
     _conn.return_value.cursor.return_value.fetchmany.return_value = [(1, )]
     new_engine = PgSQLEngine(instance=self.ins)
     query_result = new_engine.query(db_name=0,
                                     sql='select 1',
                                     limit_num=100)
     self.assertIsInstance(query_result, ResultSet)
     self.assertListEqual(query_result.rows, [(1, )])
示例#3
0
 def test_query_check_star_sql(self):
     sql = "select * from xx "
     new_engine = PgSQLEngine(instance=self.ins)
     check_result = new_engine.query_check(db_name='archery', sql=sql)
     self.assertDictEqual(
         check_result, {
             'msg': 'SQL语句中含有 * ',
             'bad_query': False,
             'filtered_sql': sql.strip(),
             'has_star': True
         })
示例#4
0
 def test_query_check_disable_sql(self):
     sql = "update xxx set a=1 "
     new_engine = PgSQLEngine(instance=self.ins)
     check_result = new_engine.query_check(db_name='archery', sql=sql)
     self.assertDictEqual(
         check_result, {
             'msg': '不支持的查询语法类型!',
             'bad_query': True,
             'filtered_sql': sql.strip(),
             'has_star': False
         })
示例#5
0
 def test_query_not_limit(self, _conn, _cursor, _execute):
     _conn.return_value.cursor.return_value.fetchall.return_value = [(1, )]
     new_engine = PgSQLEngine(instance=self.ins)
     query_result = new_engine.query(db_name=0, sql='select 1', limit_num=0)
     self.assertIsInstance(query_result, ResultSet)
示例#6
0
 def test_filter_sql_with_limit(self):
     sql = "select * from xx limit 10"
     new_engine = PgSQLEngine(instance=self.ins)
     check_result = new_engine.filter_sql(sql=sql, limit_num=1)
     self.assertEqual(check_result, "select * from xx limit 10;")
示例#7
0
 def test_describe_table(self, _query):
     new_engine = PgSQLEngine(instance=self.ins)
     describe = new_engine.describe_table(db_name='archery',
                                          schema_name='archery',
                                          tb_name='text')
     self.assertIsInstance(describe, ResultSet)
示例#8
0
 def test_get_all_columns_by_tb(self, _query):
     new_engine = PgSQLEngine(instance=self.ins)
     columns = new_engine.get_all_columns_by_tb(db_name='archery',
                                                tb_name='test2',
                                                schema_name='archery')
     self.assertListEqual(columns, ['id', 'name'])
示例#9
0
 def test_get_all_tables(self, _query):
     new_engine = PgSQLEngine(instance=self.ins)
     tables = new_engine.get_all_tables(db_name='archery',
                                        schema_name='archery')
     self.assertListEqual(tables, ['test2'])
示例#10
0
 def test_get_all_schemas(self, _query):
     new_engine = PgSQLEngine(instance=self.ins)
     schemas = new_engine.get_all_schemas(db_name='archery')
     self.assertListEqual(schemas, ['archery'])
示例#11
0
 def test_get_all_databases(self, _query):
     new_engine = PgSQLEngine(instance=self.ins)
     dbs = new_engine.get_all_databases()
     self.assertListEqual(dbs, ['archery'])
示例#12
0
 def test_get_connection(self, _conn):
     new_engine = PgSQLEngine(instance=self.ins)
     new_engine.get_connection()
     _conn.assert_called_once()