mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
1) Fix an error while retrieving json data from the table. Fixes #4427
2) Fix an issue where Explain and Explain Analyze are not working, it's regression of #1760. Fixes #4484 3) Fix an issue where Filter toolbar button is not working in view/edit data, it's regression of keyboard navigation. Fixes #4485
This commit is contained in:
committed by
Akshay Joshi
parent
6e49c9c36f
commit
c019778a47
@@ -251,7 +251,7 @@ class TestSaveChangedData(BaseTestGenerator):
|
||||
},
|
||||
save_status=True,
|
||||
check_sql='SELECT * FROM %s WHERE pk_col = 2',
|
||||
check_result='SELECT 0'
|
||||
check_result=None
|
||||
)),
|
||||
]
|
||||
|
||||
|
||||
98
web/pgadmin/tools/sqleditor/tests/test_view_data.py
Normal file
98
web/pgadmin/tools/sqleditor/tests/test_view_data.py
Normal file
@@ -0,0 +1,98 @@
|
||||
##########################################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2019, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
import uuid
|
||||
import json
|
||||
import random
|
||||
|
||||
from pgadmin.utils.route import BaseTestGenerator
|
||||
from pgadmin.browser.server_groups.servers.databases.tests import utils as \
|
||||
database_utils
|
||||
from regression import parent_node_dict
|
||||
from regression.python_test_utils import test_utils
|
||||
from pgadmin.utils import server_utils, IS_PY2
|
||||
|
||||
|
||||
class TestViewData(BaseTestGenerator):
|
||||
"""
|
||||
This class checks the view data result for a table with JSON datatype
|
||||
"""
|
||||
skip_on_database = ['gpdb']
|
||||
scenarios = [
|
||||
(
|
||||
'Table with JSON datatype',
|
||||
dict(
|
||||
table_sql="""Create Table <TABLE_NAME>(
|
||||
id integer Not Null,
|
||||
json_val json Not Null,
|
||||
Constraint table_pk Primary Key(id)
|
||||
);""",
|
||||
result_data=None,
|
||||
rows_fetched_to=0
|
||||
)
|
||||
)
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
self.server_id = self.server_information['server_id']
|
||||
self.database_info = parent_node_dict["database"][-1]
|
||||
self.db_name = self.database_info["db_name"]
|
||||
self.db_id = self.database_info["db_id"]
|
||||
|
||||
self.connection = test_utils.get_db_connection(
|
||||
self.db_name,
|
||||
self.server['username'],
|
||||
self.server['db_password'],
|
||||
self.server['host'],
|
||||
self.server['port']
|
||||
)
|
||||
|
||||
def runTest(self):
|
||||
self.table = "test_table_%s" % (str(uuid.uuid4())[1:8])
|
||||
self.table_sql = self.table_sql.replace('<TABLE_NAME>', self.table)
|
||||
# Create table
|
||||
test_utils.create_table_with_query(self.server,
|
||||
self.db_name,
|
||||
self.table_sql)
|
||||
|
||||
# Fetch Table OID
|
||||
pg_cursor = self.connection.cursor()
|
||||
pg_cursor.execute("""Select oid FROM pg_class WHERE
|
||||
relname = '%s' AND relkind IN ('r','s','t')""" % self.table)
|
||||
|
||||
result = pg_cursor.fetchall()
|
||||
table_id = result[0][0]
|
||||
|
||||
# Initialize query tool
|
||||
url = '/datagrid/initialize/datagrid/3/table/{0}/{1}/{2}/{3}'.format(
|
||||
test_utils.SERVER_GROUP, self.server_id, self.db_id, table_id)
|
||||
response = self.tester.post(url)
|
||||
|
||||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
response_data = json.loads(response.data.decode('utf-8'))
|
||||
self.trans_id = response_data['data']['gridTransId']
|
||||
|
||||
url = "/sqleditor/view_data/start/{0}".format(self.trans_id)
|
||||
response = self.tester.get(url)
|
||||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
# Check the query result
|
||||
url = '/sqleditor/poll/{0}'.format(self.trans_id)
|
||||
response = self.tester.get(url)
|
||||
self.assertEquals(response.status_code, 200)
|
||||
response_data = json.loads(response.data.decode('utf-8'))
|
||||
|
||||
self.assertEquals(response_data['data']['result'], self.result_data)
|
||||
self.assertEquals(response_data['data']['rows_fetched_to'],
|
||||
self.rows_fetched_to)
|
||||
|
||||
def tearDown(self):
|
||||
database_utils.disconnect_database(self, self.server_id,
|
||||
self.db_id)
|
||||
Reference in New Issue
Block a user