From 71d41ac29b89e792b3757c9b3640c510ce78d073 Mon Sep 17 00:00:00 2001 From: Grigory Smolkin Date: Wed, 11 Apr 2018 02:23:13 +0300 Subject: [PATCH] tests: minor improvements --- tests/auth_test.py | 64 +++++++++++++++++++++++++++++++++++++++++++++- tests/ptrack.py | 2 +- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/tests/auth_test.py b/tests/auth_test.py index 65f9ed31..fc21a480 100644 --- a/tests/auth_test.py +++ b/tests/auth_test.py @@ -35,7 +35,9 @@ class SimpleAuthTest(ProbackupTest, unittest.TestCase): base_dir="{0}/{1}/node".format(module_name, fname), set_replication=True, initdb_params=['--data-checksums'], - pg_options={'wal_level': 'replica', 'max_wal_senders': '2'} + pg_options={ + 'wal_level': 'replica', + 'max_wal_senders': '2'} ) backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup') self.init_pb(backup_dir) @@ -107,10 +109,70 @@ class SimpleAuthTest(ProbackupTest, unittest.TestCase): "postgres", "GRANT EXECUTE ON FUNCTION " "pg_stop_backup(boolean, boolean) TO backup") + # Do this for ptrack backups + node.safe_psql( + "postgres", + "GRANT EXECUTE ON FUNCTION pg_stop_backup() TO backup") self.backup_node( backup_dir, 'node', node, options=['-U', 'backup']) + node.safe_psql("postgres", "CREATE DATABASE test1") + + self.backup_node( + backup_dir, 'node', node, options=['-U', 'backup']) + + node.safe_psql( + "test1", "create table t1 as select generate_series(0,100)") + + node.append_conf("postgresql.auto.conf", "ptrack_enable = 'on'") + node.restart() + + try: + self.backup_node( + backup_dir, 'node', node, options=['-U', 'backup']) + self.assertEqual( + 1, 0, + "Expecting Error due to missing grant on clearing ptrack_files.") + except ProbackupException as e: + self.assertIn( + "ERROR: must be superuser or replication role to clear ptrack files\n" + "query was: SELECT pg_catalog.pg_ptrack_clear()", e.message, + '\n Unexpected Error Message: {0}\n CMD: {1}'.format( + repr(e.message), self.cmd)) + + time.sleep(1) + + try: + self.backup_node( + backup_dir, 'node', node, + backup_type='ptrack', options=['-U', 'backup']) + self.assertEqual( + 1, 0, + "Expecting Error due to missing grant on clearing ptrack_files.") + except ProbackupException as e: + self.assertIn( + "ERROR: must be superuser or replication role read ptrack files\n" + "query was: select pg_catalog.pg_ptrack_control_lsn()", e.message, + '\n Unexpected Error Message: {0}\n CMD: {1}'.format( + repr(e.message), self.cmd)) + + node.safe_psql( + "postgres", + "ALTER ROLE backup REPLICATION") + + time.sleep(1) + + # FULL + self.backup_node( + backup_dir, 'node', node, + options=['-U', 'backup']) + + # PTRACK + self.backup_node( + backup_dir, 'node', node, + backup_type='ptrack', options=['-U', 'backup']) + # Clean after yourself self.del_test_dir(module_name, fname) diff --git a/tests/ptrack.py b/tests/ptrack.py index 4536158f..a295e71c 100644 --- a/tests/ptrack.py +++ b/tests/ptrack.py @@ -1736,7 +1736,7 @@ class PtrackTest(ProbackupTest, unittest.TestCase): try: self.backup_node( backup_dir, 'node', node, backup_type='ptrack', - options=["--stream", "-j 200"] + options=["--stream", "-j 300"] ) # we should die here because exception is what we expect to happen self.assertEqual(