MSQL tests for Roles node

Murtuza Zabuawala <[email protected]>
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CAKKotZTHy_E0e+NAsXHvUrJzUoTChUECWOZ9DyZQTuxfPx8tDQ@mail.gmail.com>
Hi,

PFA patch to add MSQL tests for roles node.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
RM_4415_roles_msql_tests.diff (application/octet-stream, 18.5 KB)
diff --git a/web/pgadmin/browser/server_groups/servers/roles/__init__.py b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
index eb5dfc978..4d83f650e 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
@@ -506,8 +506,7 @@ rolmembership:{
                         "The current user does not have permission to create "
                         "the role."
                     )
-                elif action == 'msql' and 'rid' in kwargs and \
-                        kwargs['rid'] != -1:
+                elif action == 'msql' and 'rid' in kwargs:
                     fetch_name = True
 
                 if check_permission:
@@ -863,8 +862,8 @@ rolmembership:{
 
     @check_precondition(action='msql')
     @validate_request
-    def msql(self, gid, sid, rid=-1):
-        if rid == -1:
+    def msql(self, gid, sid, rid=None):
+        if rid is None:
             return make_json_response(
                 data=render_template(
                     self.sql_path + 'create.sql',
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql
new file mode 100644
index 000000000..7156049e1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql
new file mode 100644
index 000000000..0595fdb93
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql
new file mode 100644
index 000000000..bd025f963
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	NOSUPERUSER
+	NOCREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql
new file mode 100644
index 000000000..7156049e1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql
new file mode 100644
index 000000000..0595fdb93
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql
new file mode 100644
index 000000000..429e0ac14
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	SUPERUSER
+	CREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql
new file mode 100644
index 000000000..f624a21d1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	LOGIN
+	SUPERUSER
+	CREATEDB
+	CREATEROLE
+	INHERIT
+	REPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql
new file mode 100644
index 000000000..a4ca80900
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	NOLOGIN
+	NOSUPERUSER
+	NOCREATEDB
+	NOCREATEROLE
+	INHERIT
+	NOREPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
index 3a2bc9427..17feb43ef 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
@@ -5,6 +5,7 @@
       "name": "Create Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": false,
@@ -17,37 +18,42 @@
           "rolcatupdate": false,
           "rolreplication": false,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_role.sql"
+      "expected_sql_file": "create_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_role_description.sql"
+      "expected_sql_file": "alter_role_description.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_role_name.sql"
+      "expected_sql_file": "alter_role_name.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": true,
         "rolcreatedb": true,
@@ -57,7 +63,8 @@
         "rolvaliduntil": "2050-01-01 00:00:00 +05:30",
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
-      "expected_sql_file": "alter_role_options.sql"
+      "expected_sql_file": "alter_role_options.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "delete",
@@ -70,6 +77,7 @@
       "name": "Create Login Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": true,
@@ -82,37 +90,42 @@
           "rolcatupdate": true,
           "rolreplication": true,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_login_role.sql"
+      "expected_sql_file": "create_login_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_login_role_description.sql"
+      "expected_sql_file": "alter_login_role_description.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_login_role_name.sql"
+      "expected_sql_file": "alter_login_role_name.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": false,
         "rolcreatedb": false,
@@ -122,7 +135,8 @@
         "rolvaliduntil": "2050-01-01 00:00:00 +05:30",
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
-      "expected_sql_file": "alter_login_role_options.sql"
+      "expected_sql_file": "alter_login_role_options.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "delete",
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql
new file mode 100644
index 000000000..0abf43505
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql
new file mode 100644
index 000000000..088b07834
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql
new file mode 100644
index 000000000..4dc1ebdca
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	NOSUPERUSER
+	NOCREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql
new file mode 100644
index 000000000..0abf43505
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql
new file mode 100644
index 000000000..088b07834
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql
new file mode 100644
index 000000000..1a196a375
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	SUPERUSER
+	CREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql
new file mode 100644
index 000000000..a3e6cc7ee
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	LOGIN
+	SUPERUSER
+	CREATEDB
+	CREATEROLE
+	INHERIT
+	REPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql
new file mode 100644
index 000000000..6ea5ec5ad
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	NOLOGIN
+	NOSUPERUSER
+	NOCREATEDB
+	NOCREATEROLE
+	INHERIT
+	NOREPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
index 97ab53bae..3de2d40ac 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
@@ -5,6 +5,7 @@
       "name": "Create Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": false,
@@ -17,37 +18,42 @@
           "rolcatupdate": false,
           "rolreplication": false,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_role.sql"
+      "expected_sql_file": "create_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_role_description.sql"
+      "expected_sql_file": "alter_role_description.sql",
+      "expected_msql_file": "alter_role_description.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_role_name.sql"
+      "expected_sql_file": "alter_role_name.sql",
+      "expected_msql_file": "alter_role_name.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": true,
         "rolcreatedb": true,
@@ -58,6 +64,7 @@
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
       "expected_sql_file": "alter_role_options.sql",
+      "expected_msql_file": "alter_role_options.msql",
       "convert_timestamp_columns": ["rolvaliduntil"]
     },
     {
@@ -71,6 +78,7 @@
       "name": "Create Login Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": true,
@@ -83,37 +91,42 @@
           "rolcatupdate": true,
           "rolreplication": true,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_login_role.sql"
+      "expected_sql_file": "create_login_role.sql",
+      "expected_msql_file": "create_login_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_login_role_description.sql"
+      "expected_sql_file": "alter_login_role_description.sql",
+      "expected_msql_file": "alter_login_role_description.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_login_role_name.sql"
+      "expected_sql_file": "alter_login_role_name.sql",
+      "expected_msql_file": "alter_login_role_name.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": false,
         "rolcreatedb": false,
@@ -124,6 +137,7 @@
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
       "expected_sql_file": "alter_login_role_options.sql",
+      "expected_msql_file": "alter_login_role_options.msql",
       "convert_timestamp_columns": ["rolvaliduntil"]
     },
     {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.