pgadmin4/web/pgadmin/tools/backup/tests/test_create_backup_job.py
2023-01-02 11:53:55 +05:30

81 lines
2.8 KiB
Python

##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
import os
from pgadmin.utils.route import BaseTestGenerator
from regression import parent_node_dict
from pgadmin.utils import does_utility_exist
import pgadmin.tools.backup.tests.test_backup_utils as backup_utils
class BackupJobTest(BaseTestGenerator):
"""Backup api test cases"""
scenarios = [
('When backup the object with the default options',
dict(
params=dict(
file='test_backup',
format='custom',
verbose=True,
blobs=True,
schemas=[],
tables=[],
database='postgres'
),
url='/backup/job/{0}/object',
expected_params=dict(
expected_cmd_opts=['--verbose', '--format=c', '--blobs'],
not_expected_cmd_opts=[],
expected_exit_code=[0, None]
)
))
]
def setUp(self):
if 'default_binary_paths' not in self.server or \
self.server['default_binary_paths'] is None or \
self.server['type'] not in self.server['default_binary_paths'] or\
self.server['default_binary_paths'][self.server['type']] == '':
self.skipTest(
"default_binary_paths is not set for the server {0}".format(
self.server['name']
)
)
binary_path = os.path.join(
self.server['default_binary_paths'][self.server['type']],
'pg_dump')
if os.name == 'nt':
binary_path = binary_path + '.exe'
retVal = does_utility_exist(binary_path)
if retVal is not None:
self.skipTest(retVal)
def runTest(self):
self.server_id = parent_node_dict["server"][-1]["server_id"]
url = self.url.format(self.server_id)
# Create the backup job
job_id = backup_utils.create_backup_job(self.tester, url, self.params,
self.assertEqual)
backup_file = backup_utils.run_backup_job(self.tester,
job_id,
self.expected_params,
self.assertIn,
self.assertNotIn,
self.assertEqual
)
if backup_file is not None:
if os.path.isfile(backup_file):
os.remove(backup_file)