diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/alter_schema.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/alter_schema.sql new file mode 100644 index 0000000..22eb0a0 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/alter_schema.sql @@ -0,0 +1,26 @@ +-- SCHEMA: test_schema_$%{}[]()&*^!@""'`\/# + +-- DROP SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" ; + +CREATE SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" + AUTHORIZATION enterprisedb; + +COMMENT ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" + IS 'test_comment'; + +GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT ALL ON TABLES TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT ALL ON TABLES TO PUBLIC; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT ALL ON SEQUENCES TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT EXECUTE ON FUNCTIONS TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT USAGE ON TYPES TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/create_schema.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/create_schema.sql new file mode 100644 index 0000000..71ba6a5 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/create_schema.sql @@ -0,0 +1,23 @@ +-- SCHEMA: test_schema_$%{}[]()&*^!@""'`\/# + +-- DROP SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" ; + +CREATE SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" + AUTHORIZATION enterprisedb; + +COMMENT ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" + IS 'test_comment'; + +GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT ALL ON TABLES TO PUBLIC; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT ALL ON SEQUENCES TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT EXECUTE ON FUNCTIONS TO enterprisedb; + +ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" +GRANT USAGE ON TYPES TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/test.json new file mode 100644 index 0000000..5e0c9dc --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tests/default/9.2_plus/test.json @@ -0,0 +1,160 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Schema", + "endpoint": "NODE-schema.obj", + "sql_endpoint": "NODE-schema.sql_id", + "data": { + "name": "test_schema_$%{}[]()&*^!@\"\"'`\\/#", + "namespaceowner": "enterprisedb", + "description": "test_comment", + "nspacl": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "C", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "U", + "privilege": true, + "with_grant": false + }] + }], + "seclabels": [], + "deftblacl": [{ + "grantee": "PUBLIC", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "a", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "r", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "w", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "d", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "D", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "x", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "t", + "privilege": true, + "with_grant": false + }] + }], + "defseqacl": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "r", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "w", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "U", + "privilege": true, + "with_grant": false + }] + }], + "deffuncacl": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "X", + "privilege": true, + "with_grant": false + }] + }], + "deftypeacl": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + }] + }] +}, + "expected_sql_file": "create_schema.sql" + }, + { + "type": "alter", + "name": "Alter Schema", + "endpoint": "NODE-schema.obj_id", + "sql_endpoint": "NODE-schema.sql_id", + "data": { + "oid": 40970, + "description": "test_comment", + "nspacl": { + "changed": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "U", + "privilege": true, + "with_grant": false + }] + }] + }, + "deftblacl": { + "changed": [{ + "grantee": "enterprisedb", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "d", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "w", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "r", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "t", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "a", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "x", + "privilege": true, + "with_grant": false + }, { + "privilege_type": "D", + "privilege": true, + "with_grant": false + }] + }] + } +}, + "expected_sql_file": "alter_schema.sql" + } + + + + ] +} + + diff --git a/web/regression/re_sql/tests/test_resql.py b/web/regression/re_sql/tests/test_resql.py index 8d8fd38..7de815f 100644 --- a/web/regression/re_sql/tests/test_resql.py +++ b/web/regression/re_sql/tests/test_resql.py @@ -196,7 +196,6 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator): if 'type' in scenario and scenario['type'] == 'create': # Get the url and create the specific node. - if 'data' in scenario and 'schema' in scenario['data']: # If schema is already exist then fetch the oid self.get_db_connection() @@ -240,6 +239,10 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator): if 'store_table_id' in scenario: self.table_id = object_id + # Update schema id for Schema node test cases + if "NODE-schema.obj" in scenario["endpoint"]: + self.schema_id = object_id + # Compare the reverse engineering SQL if not self.check_re_sql(scenario, object_id): print(scenario['name'] + "... FAIL")