diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py index e9ef8ac..2ea178e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py @@ -26,6 +26,7 @@ from pgadmin.utils import IS_PY2 if not IS_PY2: unicode = str + class CastModule(CollectionNodeModule): """ class CastModule(CollectionNodeModule) @@ -96,8 +97,9 @@ class CastView(PGChildNodeView): class CastView(PGChildNodeView) A view class for cast node derived from PGChildNodeView. This class is - responsible for all the stuff related to view like create/update/delete cast, - showing properties of cast node, showing sql in sql pane. + responsible for all the stuff related to view like + create/update/delete cast, showing properties of cast node, + showing sql in sql pane. Methods: ------- @@ -110,11 +112,12 @@ class CastView(PGChildNodeView): manager,conn & template_path properties to self * list() - - This function is used to list all the cast nodes within that collection. + - This function is used to list all the cast nodes within that + collection. * nodes() - - This function will used to create all the child node within that collection. - Here it will create all the cast nodes. + - This function will used to create all the child node within that + collection. Here it will create all the cast nodes. * properties(gid, sid, did, rg_id) - This function will show the properties of the selected cast node @@ -135,14 +138,16 @@ class CastView(PGChildNodeView): - This function will generate sql from model data * sql(gid, sid, did, rg_id): - - This function will generate sql to show in sql pane for the selected cast node. + - This function will generate sql to show in sql pane for the selected + cast node. * get_type(): - - This function will fetch all the types for source and target types select control. + - This function will fetch all the types for source and target types + select control. * get_functions(): - - This function will fetch associated functions list depending on selected source - and target types while creating a new cast node. + - This function will fetch associated functions list depending on + selected source and target types while creating a new cast node. """ node_type = blueprint.node_type @@ -171,8 +176,14 @@ class CastView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'get_type': [{'get': 'get_src_and_trg_type'}, {'get': 'get_src_and_trg_type'}], - 'get_functions': [{'post': 'get_functions'}, {'post': 'get_functions'}] + 'get_type': [ + {'get': 'get_src_and_trg_type'}, + {'get': 'get_src_and_trg_type'} + ], + 'get_functions': [ + {'post': 'get_functions'}, + {'post': 'get_functions'} + ] }) def _init_(self, **kwargs): @@ -192,7 +203,9 @@ class CastView(PGChildNodeView): def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] - self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(kwargs['sid']) + self.manager = get_driver( + PG_DEFAULT_DRIVER + ).connection_manager(kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # Set template path for the SQL scripts self.template_path = 'cast/sql/#{0}#'.format(self.manager.version) @@ -225,7 +238,8 @@ class CastView(PGChildNodeView): return internal_server_error(errormsg=res) for row in res['rows']: - row['castcontext'] = True if row['castcontext'] == 'IMPLICIT' else False + row['castcontext'] = True if row['castcontext'] == 'IMPLICIT' \ + else False return ajax_response( response=res['rows'], @@ -235,8 +249,8 @@ class CastView(PGChildNodeView): @check_precondition def nodes(self, gid, sid, did): """ - This function will used to create all the child nodes within the collection. - Here it will create all the cast nodes. + This function will used to create all the child nodes within the + collection. Here it will create all the cast nodes. :param gid: group id :param sid: server id :param did: database id @@ -366,17 +380,19 @@ class CastView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - # we need oid to to add object in tree at browser, below sql will gives the same + # we need oid to to add object in tree at browser, below sql will + # gives the same last_system_oid = 0 if self.blueprint.show_system_objects else \ (self.manager.db_info[did])['datlastsysoid'] \ if self.manager.db_info is not None and \ did in self.manager.db_info else 0 - sql = render_template("/".join([self.template_path, 'properties.sql']), - srctyp=data['srctyp'], - trgtyp=data['trgtyp'], - datlastsysoid=last_system_oid, - showsysobj=self.blueprint.show_system_objects - ) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + srctyp=data['srctyp'], + trgtyp=data['trgtyp'], + datlastsysoid=last_system_oid, + showsysobj=self.blueprint.show_system_objects + ) status, cid = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=cid) @@ -527,10 +543,12 @@ class CastView(PGChildNodeView): (self.manager.db_info[did])['datlastsysoid'] \ if self.manager.db_info is not None and \ did in self.manager.db_info else 0 - sql = render_template("/".join([self.template_path, 'properties.sql']), - cid=cid, - datlastsysoid=last_system_oid, - showsysobj=self.blueprint.show_system_objects) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + cid=cid, + datlastsysoid=last_system_oid, + showsysobj=self.blueprint.show_system_objects + ) status, res = self.conn.execute_dict(sql) if not status: @@ -549,7 +567,10 @@ class CastView(PGChildNodeView): return sql, data['name'] if 'name' in data else old_data['name'] else: if 'srctyp' in data and 'trgtyp' in data: - sql = render_template("/".join([self.template_path, 'create.sql']), data=data, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'create.sql']), + data=data, conn=self.conn + ) else: return u"-- definition incomplete", None return sql, data['srctyp'] + "->" + data["trgtyp"] @@ -638,14 +659,14 @@ class CastView(PGChildNodeView): status, res = self.conn.execute_scalar(sql) if not status: return internal_server_error( - _("Could not generate reversed engineered SQL for the cast.\n\n{0}").format( - res - ) + _("Could not generate reversed engineered SQL for the " + "cast.\n\n{0}").format(res) ) if res is None: return gone( - _("Could not generate reversed engineered SQL for the cast node.\n") + _("Could not generate reversed engineered SQL for the " + "cast node.\n") ) return ajax_response(response=res) diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py b/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py index 0b6a9ef..84b2b8d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py @@ -56,7 +56,8 @@ def create_cast(server, source_type, target_type): # Get 'oid' from newly created cast pg_cursor.execute( "SELECT ca.oid FROM pg_cast ca WHERE ca.castsource = " - "(SELECT t.oid FROM pg_type t WHERE format_type(t.oid, NULL)='%s') " + "(SELECT t.oid FROM pg_type t " + "WHERE format_type(t.oid, NULL)='%s') " "AND ca.casttarget = (SELECT t.oid FROM pg_type t WHERE " "format_type(t.oid, NULL) = '%s')" % (source_type, target_type)) oid = pg_cursor.fetchone() @@ -75,7 +76,8 @@ def verify_cast(connection, source_type, target_type): pg_cursor = connection.cursor() pg_cursor.execute( "SELECT * FROM pg_cast ca WHERE ca.castsource = " - "(SELECT t.oid FROM pg_type t WHERE format_type(t.oid, NULL)='%s') " + "(SELECT t.oid FROM pg_type t " + "WHERE format_type(t.oid, NULL)='%s') " "AND ca.casttarget = (SELECT t.oid FROM pg_type t WHERE " "format_type(t.oid, NULL) = '%s')" % (source_type, target_type)) casts = pg_cursor.fetchall() @@ -92,7 +94,8 @@ def drop_cast(connection, source_type, target_type): pg_cursor = connection.cursor() pg_cursor.execute( "SELECT * FROM pg_cast ca WHERE ca.castsource = " - "(SELECT t.oid FROM pg_type t WHERE format_type(t.oid, NULL)='%s') " + "(SELECT t.oid FROM pg_type t " + "WHERE format_type(t.oid, NULL)='%s') " "AND ca.casttarget = (SELECT t.oid FROM pg_type t WHERE " "format_type(t.oid, NULL) = '%s')" % (source_type, target_type)) if pg_cursor.fetchall(): diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py index 33ef894..1fa8b26 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py @@ -30,7 +30,8 @@ class EventTriggerModule(CollectionNodeModule): """ class EventTriggerModule(CollectionNodeModule) - A module class for Event trigger node derived from CollectionNodeModule. + A module class for Event trigger node derived from + CollectionNodeModule. Methods: ------- @@ -51,7 +52,8 @@ class EventTriggerModule(CollectionNodeModule): def __init__(self, *args, **kwargs): """ - Method is used to initialize the EventTriggerModule and it's base module. + Method is used to initialize the EventTriggerModule and it's base + module. Args: *args: @@ -184,9 +186,12 @@ class EventTriggerView(PGChildNodeView): @wraps(f) def wrap(*args, **kwargs): - # Here - args[0] will always hold self & kwargs will hold gid, sid, did + # Here - args[0] will always hold self & kwargs will hold gid, + # sid, did self = args[0] - self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(kwargs['sid']) + self.manager = get_driver( + PG_DEFAULT_DRIVER + ).connection_manager(kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) self.template_path = 'event_triggers/sql/9.3_plus' @@ -222,8 +227,8 @@ class EventTriggerView(PGChildNodeView): @check_precondition def nodes(self, gid, sid, did): """ - This function is used to create all the child nodes within the collection. - Here it will create all the event trigger nodes. + This function is used to create all the child nodes within the + collection. Here it will create all the event trigger nodes. Args: gid: Server Group ID @@ -318,7 +323,10 @@ class EventTriggerView(PGChildNodeView): Returns: """ - sql = render_template("/".join([self.template_path, 'properties.sql']), etid=etid, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + etid=etid, conn=self.conn + ) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) @@ -374,18 +382,27 @@ class EventTriggerView(PGChildNodeView): ) ) try: - sql = render_template("/".join([self.template_path, 'create.sql']), data=data, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'create.sql']), + data=data, conn=self.conn + ) status, res = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=res) - sql = render_template("/".join([self.template_path, 'grant.sql']), data=data, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'grant.sql']), + data=data, conn=self.conn + ) sql = sql.strip('\n').strip(' ') status, res = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=res) - sql = render_template("/".join([self.template_path, 'get_oid.sql']), data=data) + sql = render_template( + "/".join([self.template_path, 'get_oid.sql']), + data=data + ) status, etid = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=etid) @@ -431,7 +448,10 @@ class EventTriggerView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - sql = render_template("/".join([self.template_path, 'get_oid.sql']), data=data) + sql = render_template( + "/".join([self.template_path, 'get_oid.sql']), + data=data + ) status, etid = self.conn.execute_scalar(sql) return jsonify( @@ -478,7 +498,10 @@ class EventTriggerView(PGChildNodeView): else: cascade = False try: - sql = render_template("/".join([self.template_path, 'delete.sql']), etid=etid) + sql = render_template( + "/".join([self.template_path, 'delete.sql']), + etid=etid + ) status, name = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=name) @@ -495,7 +518,10 @@ class EventTriggerView(PGChildNodeView): ) ) - sql = render_template("/".join([self.template_path, 'delete.sql']), name=name, cascade=cascade) + sql = render_template( + "/".join([self.template_path, 'delete.sql']), + name=name, cascade=cascade + ) status, res = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=res) @@ -568,7 +594,10 @@ class EventTriggerView(PGChildNodeView): ] if etid is not None: - sql = render_template("/".join([self.template_path, 'properties.sql']), etid=etid) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + etid=etid + ) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) @@ -584,7 +613,10 @@ class EventTriggerView(PGChildNodeView): for arg in required_args: if arg not in data: data[arg] = old_data[arg] - sql = render_template("/".join([self.template_path, 'update.sql']), data=data, o_data=old_data) + sql = render_template( + "/".join([self.template_path, 'update.sql']), + data=data, o_data=old_data + ) else: required_args = { 'name': 'Name', @@ -605,16 +637,22 @@ class EventTriggerView(PGChildNodeView): "Could not find the required parameter %s." % err ) ) - sql = render_template("/".join([self.template_path, 'create.sql']), data=data) + sql = render_template( + "/".join([self.template_path, 'create.sql']), + data=data + ) sql += "\n" - sql += render_template("/".join([self.template_path, 'grant.sql']), data=data) + sql += render_template( + "/".join([self.template_path, 'grant.sql']), + data=data + ) return sql @check_precondition def sql(self, gid, sid, did, etid): """ - This function will generate sql to show in the sql pane for the selected - event trigger node. + This function will generate sql to show in the sql pane for the + selected event trigger node. Args: gid: Server Group ID @@ -625,7 +663,10 @@ class EventTriggerView(PGChildNodeView): Returns: """ - sql = render_template("/".join([self.template_path, 'properties.sql']), etid=etid) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + etid=etid + ) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) @@ -638,16 +679,27 @@ class EventTriggerView(PGChildNodeView): result = res['rows'][0] result = self._formatter(result) - sql = render_template("/".join([self.template_path, 'create.sql']), data=result, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'create.sql']), + data=result, conn=self.conn + ) sql += "\n\n" - sql += render_template("/".join([self.template_path, 'grant.sql']), data=result, conn=self.conn) + sql += render_template( + "/".join([self.template_path, 'grant.sql']), + data=result, conn=self.conn + ) - db_sql = render_template("/".join([self.template_path, 'get_db.sql']), did=did) + db_sql = render_template( + "/".join([self.template_path, 'get_db.sql']), + did=did + ) status, db_name = self.conn.execute_scalar(db_sql) if not status: return internal_server_error(errormsg=db_name) - sql_header = u"-- Event Trigger: {0} on database {1}\n\n-- ".format(result['name'], db_name) + sql_header = u"-- Event Trigger: {0} on database {1}\n\n-- ".format( + result['name'], db_name + ) sql_header += render_template( "/".join([self.template_path, 'delete.sql']), @@ -675,7 +727,9 @@ class EventTriggerView(PGChildNodeView): """ res = [{'label': '', 'value': ''}] - sql = render_template("/".join([self.template_path, 'eventfunctions.sql'])) + sql = render_template( + "/".join([self.template_path, 'eventfunctions.sql']) + ) status, rest = self.conn.execute_2darray(sql) if not status: return internal_server_error(errormsg=rest) diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/tests/test_event_trigger_get.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/tests/test_event_trigger_get.py index 647e6b1..b07e7d5 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/tests/test_event_trigger_get.py +++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/tests/test_event_trigger_get.py @@ -77,10 +77,11 @@ class EventTriggerGetTestCase(BaseTestGenerator): if not func_response: raise Exception("Could not find the trigger function.") response = self.tester.get( - self.url + str(utils.SERVER_GROUP) + '/' - + str(self.server_id) + '/' + str(self.db_id) + '/' + - str(self.event_trigger_id), - content_type='html/json') + self.url + + str(utils.SERVER_GROUP) + '/' + str(self.server_id) + '/' + + str(self.db_id) + '/' + str(self.event_trigger_id), + content_type='html/json' + ) self.assertEquals(response.status_code, 200) def tearDown(self): diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py index abb9631..abef0d2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py @@ -78,8 +78,8 @@ class ExtensionModule(CollectionNodeModule): @property def script_load(self): """ - Load the module script for extension, when any of the database nodes are - initialized. + Load the module script for extension, when any of the database nodes + are initialized. """ return databases.DatabaseModule.NODE_TYPE diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py index a516d1e..90acae3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py @@ -90,7 +90,8 @@ class LanguageModule(CollectionNodeModule): @property def script_load(self): """ - Load the module script for language, when any of the database nodes are initialized. + Load the module script for language, when any of the database nodes + are initialized. Returns: node type of the server module. """ @@ -112,9 +113,9 @@ class LanguageView(PGChildNodeView): """ class LanguageView(PGChildNodeView) - A view class for Language node derived from PGChildNodeView. This class is - responsible for all the stuff related to view like updating language - node, showing properties, showing sql in sql pane. + A view class for Language node derived from PGChildNodeView. + This class is responsible for all the stuff related to view like + updating language node, showing properties, showing sql in sql pane. Methods: ------- @@ -127,11 +128,12 @@ class LanguageView(PGChildNodeView): manager,conn & template_path properties to self * list() - - This function is used to list all the language nodes within that collection. + - This function is used to list all the language nodes within that + collection. * nodes() - - This function will used to create all the child node within that collection. - Here it will create all the language node. + - This function will used to create all the child node within that + collection. Here it will create all the language node. * properties(gid, sid, did, lid) - This function will show the properties of the selected language node @@ -146,25 +148,30 @@ class LanguageView(PGChildNodeView): - This function will delete the selected language node * msql(gid, sid, did, lid) - - This function is used to return modified SQL for the selected language node + - This function is used to return modified SQL for the selected + language node * get_sql(data, lid) - This function will generate sql from model data * get_functions(gid, sid, did) - - This function returns the handler and inline functions for the selected language node + - This function returns the handler and inline functions for the + selected language node * get_templates(gid, sid, did) - This function returns language templates. * sql(gid, sid, did, lid): - - This function will generate sql to show it in sql pane for the selected language node. + - This function will generate sql to show it in sql pane for the + selected language node. * dependents(gid, sid, did, lid): - - This function get the dependents and return ajax response for the language node. + - This function get the dependents and return ajax response for the + language node. * dependencies(self, gid, sid, did, lid): - - This function get the dependencies and return ajax response for the language node. + - This function get the dependencies and return ajax response for the + language node. """ node_type = blueprint.node_type @@ -197,7 +204,8 @@ class LanguageView(PGChildNodeView): def _init_(self, **kwargs): """ Method is used to initialize the LanguageView and its base view. - Initialize all the variables create/used dynamically like conn, template_path. + Initialize all the variables create/used dynamically like conn, + template_path. Args: **kwargs: @@ -223,9 +231,11 @@ class LanguageView(PGChildNodeView): self.manager = self.driver.connection_manager(kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # Set the template path for the SQL scripts - self.template_path = ("languages/sql/#gpdb#{0}#".format(self.manager.version) - if self.manager.server_type == 'gpdb' - else "languages/sql/#{0}#".format(self.manager.version)) + self.template_path = ( + "languages/sql/#gpdb#{0}#".format(self.manager.version) if + self.manager.server_type == 'gpdb' else + "languages/sql/#{0}#".format(self.manager.version) + ) return f(*args, **kwargs) @@ -234,7 +244,8 @@ class LanguageView(PGChildNodeView): @check_precondition def list(self, gid, sid, did): """ - This function is used to list all the language nodes within that collection. + This function is used to list all the language nodes within that + collection. Args: gid: Server Group ID @@ -254,8 +265,8 @@ class LanguageView(PGChildNodeView): @check_precondition def nodes(self, gid, sid, did): """ - This function is used to create all the child nodes within the collection. - Here it will create all the language nodes. + This function is used to create all the child nodes within the + collection. Here it will create all the language nodes. Args: gid: Server Group ID @@ -323,7 +334,10 @@ class LanguageView(PGChildNodeView): did: Database ID lid: Language ID """ - sql = render_template("/".join([self.template_path, 'properties.sql']), lid=lid) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + lid=lid + ) status, res = self.conn.execute_dict(sql) if not status: @@ -334,7 +348,10 @@ class LanguageView(PGChildNodeView): gettext("Could not find the language information.") ) - sql = render_template("/".join([self.template_path, 'acl.sql']), lid=lid) + sql = render_template( + "/".join([self.template_path, 'acl.sql']), + lid=lid + ) status, result = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=result) @@ -344,7 +361,13 @@ class LanguageView(PGChildNodeView): res['rows'][0]['lanacl'] = dict() res['rows'][0]['lanacl']['grantee'] = 'PUBLIC' res['rows'][0]['lanacl']['grantor'] = res['rows'][0]['lanowner'] - res['rows'][0]['lanacl']['privileges'] = [{'privilege_type': 'U', 'privilege': True, 'with_grant': False}] + res['rows'][0]['lanacl']['privileges'] = [ + { + 'privilege_type': 'U', + 'privilege': True, + 'with_grant': False + } + ] else: for row in result['rows']: priv = parse_priv_from_db(row) @@ -354,7 +377,8 @@ class LanguageView(PGChildNodeView): res['rows'][0][row['deftype']] = [priv] seclabels = [] - if 'seclabels' in res['rows'][0] and res['rows'][0]['seclabels'] is not None: + if 'seclabels' in res['rows'][0] and \ + res['rows'][0]['seclabels'] is not None: import re for sec in res['rows'][0]['seclabels']: sec = re.search(r'([^=]+)=(.*$)', sec) @@ -443,8 +467,10 @@ class LanguageView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - sql = render_template("/".join([self.template_path, 'properties.sql']), - lanname=data['name'], conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + lanname=data['name'], conn=self.conn + ) status, r_set = self.conn.execute_dict(sql) if not status: @@ -482,15 +508,20 @@ class LanguageView(PGChildNodeView): try: # Get name for language from lid - sql = render_template("/".join([self.template_path, 'delete.sql']), lid=lid, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'delete.sql']), + lid=lid, conn=self.conn + ) status, lname = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=lname) # drop language - sql = render_template("/".join([self.template_path, 'delete.sql']), lname=lname, - cascade=cascade, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'delete.sql']), + lname=lname, cascade=cascade, conn=self.conn + ) status, res = self.conn.execute_scalar(sql) if not status: @@ -513,7 +544,8 @@ class LanguageView(PGChildNodeView): @check_precondition def msql(self, gid, sid, did, lid=None): """ - This function is used to return modified SQL for the selected language node. + This function is used to return modified SQL for the selected + language node. Args: gid: Server Group ID @@ -538,7 +570,7 @@ class LanguageView(PGChildNodeView): return make_json_response( data=sql, status=200 - ) + ) except Exception as e: return internal_server_error(errormsg=str(e)) @@ -555,7 +587,9 @@ class LanguageView(PGChildNodeView): ] if lid is not None: - sql = render_template("/".join([self.template_path, 'properties.sql']), lid=lid) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), lid=lid + ) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) @@ -568,19 +602,28 @@ class LanguageView(PGChildNodeView): for key in ['lanacl']: if key in data and data[key] is not None: if 'added' in data[key]: - data[key]['added'] = parse_priv_to_db(data[key]['added'], ["U"]) + data[key]['added'] = parse_priv_to_db( + data[key]['added'], ["U"] + ) if 'changed' in data[key]: - data[key]['changed'] = parse_priv_to_db(data[key]['changed'], ["U"]) + data[key]['changed'] = parse_priv_to_db( + data[key]['changed'], ["U"] + ) if 'deleted' in data[key]: - data[key]['deleted'] = parse_priv_to_db(data[key]['deleted'], ["U"]) + data[key]['deleted'] = parse_priv_to_db( + data[key]['deleted'], ["U"] + ) old_data = res['rows'][0] for arg in required_args: if arg not in data: data[arg] = old_data[arg] - sql = render_template("/".join([self.template_path, 'update.sql']), data=data, - o_data=old_data, conn=self.conn) - return sql.strip('\n'), data['name'] if 'name' in data else old_data['name'] + sql = render_template( + "/".join([self.template_path, 'update.sql']), + data=data, o_data=old_data, conn=self.conn + ) + return sql.strip('\n'), data['name'] if 'name' in data \ + else old_data['name'] else: if 'lanacl' in data: @@ -590,11 +633,11 @@ class LanguageView(PGChildNodeView): data=data, conn=self.conn) return sql.strip('\n'), data['name'] - @check_precondition def get_functions(self, gid, sid, did): """ - This function returns the handler and inline functions for the selected language node. + This function returns the handler and inline functions for the + selected language node. Args: gid: Server Group ID @@ -632,7 +675,8 @@ class LanguageView(PGChildNodeView): @check_precondition def sql(self, gid, sid, did, lid): """ - This function will generate sql to show in the sql pane for the selected language node. + This function will generate sql to show in the sql pane for the + selected language node. Args: gid: Server Group ID @@ -640,7 +684,10 @@ class LanguageView(PGChildNodeView): did: Database ID lid: Language ID """ - sql = render_template("/".join([self.template_path, 'properties.sql']), lid=lid) + sql = render_template( + "/".join([self.template_path, 'properties.sql']), + lid=lid + ) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) @@ -653,7 +700,10 @@ class LanguageView(PGChildNodeView): # Making copy of output for future use old_data = dict(res['rows'][0]) - sql = render_template("/".join([self.template_path, 'acl.sql']), lid=lid) + sql = render_template( + "/".join([self.template_path, 'acl.sql']), + lid=lid + ) status, result = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=result) @@ -676,7 +726,10 @@ class LanguageView(PGChildNodeView): }) old_data['seclabels'] = seclabels - sql = render_template("/".join([self.template_path, 'sqlpane.sql']), data=old_data, conn=self.conn) + sql = render_template( + "/".join([self.template_path, 'sqlpane.sql']), + data=old_data, conn=self.conn + ) return ajax_response(response=sql.strip('\n')) diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/tests/test_language_add.py b/web/pgadmin/browser/server_groups/servers/databases/languages/tests/test_language_add.py index 0f76cc6..4c6f9c0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/languages/tests/test_language_add.py +++ b/web/pgadmin/browser/server_groups/servers/databases/languages/tests/test_language_add.py @@ -50,23 +50,21 @@ class LanguagesAddTestCase(BaseTestGenerator): "lanval": "fmgr_c_validator", "name": "language_%s" % str(uuid.uuid4())[1:8], "seclabels": [], - "template_list": - [ - "plperl", - "plperlu", - "plpython2u", - "plpython3u", - "plpythonu", - "pltcl", - "pltclu" - ], + "template_list": [ + "plperl", + "plperlu", + "plpython2u", + "plpython3u", + "plpythonu", + "pltcl", + "pltclu" + ], "trusted": "true" - } + } response = self.tester.post( self.url + str(utils.SERVER_GROUP) + '/' + - str(self.server_id) + '/' + str( - self.db_id) + '/', + str(self.server_id) + '/' + str(self.db_id) + '/', data=json.dumps(self.data), content_type='html/json') @@ -76,7 +74,7 @@ class LanguagesAddTestCase(BaseTestGenerator): """This function delete added language and disconnect the test database.""" - language_utils.delete_language(self.server, self.db_name, - self.data['name']) + language_utils.delete_language( + self.server, self.db_name, self.data['name'] + ) database_utils.disconnect_database(self, self.server_id, self.db_id) -