mirror of
https://github.com/borgmatic-collective/borgmatic.git
synced 2026-07-29 21:03:02 +02:00
Fix database dumps hooks not respecting working_directory
This commit is contained in:
committed by
Christoph Bock
parent
14a8055e71
commit
51ef9c7708
@@ -155,7 +155,11 @@ def database_names_to_dump(database, config, username, password, environment, dr
|
||||
if skip_names:
|
||||
logger.debug(f'Skipping database names: {", ".join(skip_names)}')
|
||||
|
||||
show_output = execute_command_and_capture_output(show_command, environment=environment)
|
||||
show_output = execute_command_and_capture_output(
|
||||
show_command,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
return tuple(
|
||||
show_name
|
||||
@@ -239,6 +243,7 @@ def execute_dump_command(
|
||||
dump_command,
|
||||
environment=environment,
|
||||
run_to_completion=False,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
|
||||
@@ -495,4 +500,5 @@ def restore_data_source_dump(
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
@@ -90,11 +90,20 @@ def dump_data_sources(
|
||||
|
||||
if dump_format == 'directory':
|
||||
dump.create_parent_directory_for_dump(dump_filename)
|
||||
execute_command(command, shell=True) # noqa: S604
|
||||
execute_command( # noqa: S604
|
||||
command,
|
||||
shell=True,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
else:
|
||||
dump.create_named_pipe_for_dump(dump_filename)
|
||||
processes.append(
|
||||
execute_command(command, shell=True, run_to_completion=False), # noqa: S604
|
||||
execute_command( # noqa: S604
|
||||
command,
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
),
|
||||
)
|
||||
|
||||
if not dry_run:
|
||||
@@ -273,6 +282,7 @@ def restore_data_source_dump(
|
||||
[extract_process] if extract_process else [],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout if extract_process else None,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -84,7 +84,11 @@ def database_names_to_dump(database, config, username, password, environment, dr
|
||||
if skip_names:
|
||||
logger.debug(f'Skipping database names: {", ".join(skip_names)}')
|
||||
|
||||
show_output = execute_command_and_capture_output(show_command, environment=environment)
|
||||
show_output = execute_command_and_capture_output(
|
||||
show_command,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
return tuple(
|
||||
show_name
|
||||
@@ -170,6 +174,7 @@ def execute_dump_command(
|
||||
dump_command,
|
||||
environment=environment,
|
||||
run_to_completion=False,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
|
||||
@@ -432,4 +437,5 @@ def restore_data_source_dump(
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
@@ -103,7 +103,11 @@ def database_names_to_dump(database, config, environment, dry_run):
|
||||
+ (tuple(database['list_options'].split(' ')) if 'list_options' in database else ())
|
||||
)
|
||||
logger.debug('Querying for "all" PostgreSQL databases to dump')
|
||||
list_output = execute_command_and_capture_output(list_command, environment=environment)
|
||||
list_output = execute_command_and_capture_output(
|
||||
list_command,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
return tuple(
|
||||
row[0]
|
||||
@@ -245,6 +249,7 @@ def dump_data_sources(
|
||||
command,
|
||||
shell=True,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
else:
|
||||
dump.create_named_pipe_for_dump(dump_filename)
|
||||
@@ -254,6 +259,7 @@ def dump_data_sources(
|
||||
shell=True,
|
||||
environment=environment,
|
||||
run_to_completion=False,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
),
|
||||
)
|
||||
|
||||
@@ -422,5 +428,10 @@ def restore_data_source_dump(
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout if extract_process else None,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
execute_command(
|
||||
analyze_command,
|
||||
environment=environment,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
execute_command(analyze_command, environment=environment)
|
||||
|
||||
@@ -101,7 +101,12 @@ def dump_data_sources(
|
||||
|
||||
dump.create_named_pipe_for_dump(dump_filename)
|
||||
processes.append(
|
||||
execute_command(command, shell=True, run_to_completion=False), # noqa: S604
|
||||
execute_command( # noqa: S604
|
||||
command,
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
),
|
||||
)
|
||||
|
||||
if not dry_run:
|
||||
@@ -205,4 +210,5 @@ def restore_data_source_dump(
|
||||
[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=borgmatic.config.paths.get_working_directory(config),
|
||||
)
|
||||
|
||||
@@ -196,6 +196,7 @@ def test_database_names_to_dump_queries_mariadb_for_database_names():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -231,6 +232,7 @@ def test_database_names_to_dump_with_database_name_all_and_skip_names_filters_ou
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nbaz\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -263,6 +265,7 @@ def test_database_names_to_dump_with_environment_password_transport_skips_defaul
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -299,6 +302,7 @@ def test_database_names_to_dump_runs_mariadb_with_tls():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -335,6 +339,7 @@ def test_database_names_to_dump_runs_mariadb_without_tls():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -710,6 +715,7 @@ def test_database_names_to_dump_runs_mariadb_with_list_options():
|
||||
'show schemas',
|
||||
),
|
||||
environment=None,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar').once()
|
||||
|
||||
assert module.database_names_to_dump(database, {}, 'root', 'trustsome1', None, '') == (
|
||||
@@ -744,6 +750,7 @@ def test_database_names_to_dump_runs_non_default_mariadb_with_list_options():
|
||||
'--execute',
|
||||
'show schemas',
|
||||
),
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar').once()
|
||||
|
||||
assert module.database_names_to_dump(database, {}, 'root', 'trustsome1', None, '') == (
|
||||
@@ -779,6 +786,7 @@ def test_execute_dump_command_runs_mariadb_dump():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -821,6 +829,7 @@ def test_execute_dump_command_with_environment_password_transport_skips_defaults
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -865,6 +874,7 @@ def test_execute_dump_command_runs_mariadb_dump_without_add_drop_database():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -916,6 +926,7 @@ def test_execute_dump_command_runs_mariadb_dump_with_hostname_and_port():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -962,6 +973,7 @@ def test_execute_dump_command_runs_mariadb_dump_with_tls():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1008,6 +1020,7 @@ def test_execute_dump_command_runs_mariadb_dump_without_tls():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1053,6 +1066,7 @@ def test_execute_dump_command_runs_mariadb_dump_with_username_and_password():
|
||||
),
|
||||
environment={},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1099,6 +1113,7 @@ def test_execute_dump_command_runs_mariadb_dump_with_options():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1145,6 +1160,7 @@ def test_execute_dump_command_runs_non_default_mariadb_dump_with_options():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1247,6 +1263,7 @@ def test_restore_data_source_dump_runs_mariadb_to_restore():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1285,6 +1302,7 @@ def test_restore_data_source_dump_runs_mariadb_with_options():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1325,6 +1343,7 @@ def test_restore_data_source_dump_runs_non_default_mariadb_with_options():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1372,6 +1391,7 @@ def test_restore_data_source_dump_runs_mariadb_with_hostname_and_port():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1414,6 +1434,7 @@ def test_restore_data_source_dump_runs_mariadb_with_tls():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1456,6 +1477,7 @@ def test_restore_data_source_dump_runs_mariadb_without_tls():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1494,6 +1516,7 @@ def test_restore_data_source_dump_runs_mariadb_with_username_and_password():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1537,6 +1560,7 @@ def test_restore_data_source_with_environment_password_transport_skips_defaults_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root', 'MYSQL_PWD': 'trustsome1'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1595,6 +1619,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1658,6 +1683,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
|
||||
@@ -37,6 +37,7 @@ def test_dump_data_sources_runs_mongodump_for_each_database():
|
||||
('mongodump', '--db', name, '--archive', '>', f'databases/localhost/{name}'),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
@@ -116,6 +117,7 @@ def test_dump_data_sources_runs_mongodump_with_hostname_and_port():
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -183,6 +185,7 @@ def test_dump_data_sources_runs_mongodump_with_username_and_password():
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -221,6 +224,7 @@ def test_dump_data_sources_runs_mongodump_with_directory_format():
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
('mongodump', '--out', 'databases/localhost/foo', '--db', 'foo'),
|
||||
shell=True,
|
||||
working_directory=None,
|
||||
).and_return(flexmock()).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -271,6 +275,7 @@ def test_dump_data_sources_runs_mongodump_with_options():
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -310,6 +315,7 @@ def test_dump_data_sources_runs_mongodumpall_for_all_databases():
|
||||
('mongodump', '--archive', '>', 'databases/localhost/all'),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -378,6 +384,7 @@ def test_restore_data_source_dump_runs_mongorestore():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -420,6 +427,7 @@ def test_restore_data_source_dump_runs_mongorestore_with_hostname_and_port():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -473,6 +481,7 @@ def test_restore_data_source_dump_runs_mongorestore_with_username_and_password()
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -534,6 +543,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -595,6 +605,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -627,6 +638,7 @@ def test_restore_data_source_dump_runs_mongorestore_with_options():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -667,6 +679,7 @@ def test_restore_databases_dump_runs_mongorestore_with_schemas():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -699,6 +712,7 @@ def test_restore_data_source_dump_runs_psql_for_all_database_dump():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -756,6 +770,7 @@ def test_restore_data_source_dump_without_extract_process_restores_from_disk():
|
||||
processes=[],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=None,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -797,6 +812,7 @@ def test_dump_data_sources_uses_custom_mongodump_command():
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -865,6 +881,7 @@ def test_restore_data_source_dump_uses_custom_mongorestore_command():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
|
||||
@@ -78,6 +78,7 @@ def test_database_names_to_dump_queries_mysql_for_database_names():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -117,6 +118,7 @@ def test_database_names_to_dump_with_database_name_all_and_skip_names_filters_ou
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nbaz\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -153,6 +155,7 @@ def test_database_names_to_dump_with_environment_password_transport_skips_defaul
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -189,6 +192,7 @@ def test_database_names_to_dump_runs_mysql_with_tls():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -225,6 +229,7 @@ def test_database_names_to_dump_runs_mysql_without_tls():
|
||||
'show schemas',
|
||||
),
|
||||
environment=environment,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar\nmysql\n').once()
|
||||
|
||||
names = module.database_names_to_dump(
|
||||
@@ -595,6 +600,7 @@ def test_database_names_to_dump_runs_mysql_with_list_options():
|
||||
'show schemas',
|
||||
),
|
||||
environment=None,
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar').once()
|
||||
|
||||
assert module.database_names_to_dump(database, {}, 'root', 'trustsome1', None, '') == (
|
||||
@@ -626,6 +632,7 @@ def test_database_names_to_dump_runs_non_default_mysql_with_list_options():
|
||||
'--execute',
|
||||
'show schemas',
|
||||
),
|
||||
working_directory=None,
|
||||
).and_return('foo\nbar').once()
|
||||
|
||||
assert module.database_names_to_dump(database, {}, 'root', 'trustsome1', None, '') == (
|
||||
@@ -661,6 +668,7 @@ def test_execute_dump_command_runs_mysqldump():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -707,6 +715,7 @@ def test_execute_dump_command_with_environment_password_transport_skips_defaults
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -751,6 +760,7 @@ def test_execute_dump_command_runs_mysqldump_without_add_drop_database():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -802,6 +812,7 @@ def test_execute_dump_command_runs_mysqldump_with_hostname_and_port():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -848,6 +859,7 @@ def test_execute_dump_command_runs_mysqldump_with_tls():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -894,6 +906,7 @@ def test_execute_dump_command_runs_mysqldump_without_tls():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -939,6 +952,7 @@ def test_execute_dump_command_runs_mysqldump_with_username_and_password():
|
||||
),
|
||||
environment={},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -985,6 +999,7 @@ def test_execute_dump_command_runs_mysqldump_with_options():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1030,6 +1045,7 @@ def test_execute_dump_command_runs_non_default_mysqldump():
|
||||
),
|
||||
environment=None,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
|
||||
assert (
|
||||
@@ -1131,6 +1147,7 @@ def test_restore_data_source_dump_runs_mysql_to_restore():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1169,6 +1186,7 @@ def test_restore_data_source_dump_runs_mysql_with_options():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1207,6 +1225,7 @@ def test_restore_data_source_dump_runs_non_default_mysql_with_options():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1254,6 +1273,7 @@ def test_restore_data_source_dump_runs_mysql_with_hostname_and_port():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1296,6 +1316,7 @@ def test_restore_data_source_dump_runs_mysql_with_tls():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1338,6 +1359,7 @@ def test_restore_data_source_dump_runs_mysql_without_tls():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1376,6 +1398,7 @@ def test_restore_data_source_dump_runs_mysql_with_username_and_password():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1423,6 +1446,7 @@ def test_restore_data_source_with_environment_password_transport_skips_defaults_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root', 'MYSQL_PWD': 'trustsome1'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1483,6 +1507,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1548,6 +1573,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'USER': 'root'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
|
||||
@@ -131,6 +131,7 @@ def test_database_names_to_dump_with_all_and_format_lists_databases_with_hostnam
|
||||
'1234',
|
||||
),
|
||||
environment=object,
|
||||
working_directory=None,
|
||||
).and_return('foo,test,\nbar,test,"stuff and such"')
|
||||
|
||||
assert module.database_names_to_dump(database, {}, flexmock(), dry_run=False) == (
|
||||
@@ -156,6 +157,7 @@ def test_database_names_to_dump_with_all_and_format_lists_databases_with_usernam
|
||||
'postgres',
|
||||
),
|
||||
environment=object,
|
||||
working_directory=None,
|
||||
).and_return('foo,test,\nbar,test,"stuff and such"')
|
||||
|
||||
assert module.database_names_to_dump(database, {}, flexmock(), dry_run=False) == (
|
||||
@@ -172,6 +174,7 @@ def test_database_names_to_dump_with_all_and_format_lists_databases_with_options
|
||||
flexmock(module).should_receive('execute_command_and_capture_output').with_args(
|
||||
('psql', '--list', '--no-password', '--no-psqlrc', '--csv', '--tuples-only', '--harder'),
|
||||
environment=object,
|
||||
working_directory=None,
|
||||
).and_return('foo,test,\nbar,test,"stuff and such"')
|
||||
|
||||
assert module.database_names_to_dump(database, {}, flexmock(), dry_run=False) == (
|
||||
@@ -216,6 +219,7 @@ def test_database_names_to_dump_with_all_and_psql_command_uses_custom_command():
|
||||
'--tuples-only',
|
||||
),
|
||||
environment=object,
|
||||
working_directory=None,
|
||||
).and_return('foo,text').once()
|
||||
|
||||
assert module.database_names_to_dump(database, {}, flexmock(), dry_run=False) == ('foo',)
|
||||
@@ -272,6 +276,7 @@ def test_dump_data_sources_runs_pg_dump_for_each_database():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -448,6 +453,7 @@ def test_dump_data_sources_runs_pg_dump_with_hostname_and_port():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -510,6 +516,7 @@ def test_dump_data_sources_runs_pg_dump_with_username_and_password():
|
||||
shell=True,
|
||||
environment={'PGPASSWORD': 'trustsome1', 'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -570,6 +577,7 @@ def test_dump_data_sources_with_username_injection_attack_gets_escaped():
|
||||
shell=True,
|
||||
environment={'PGPASSWORD': 'trustsome1', 'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -625,6 +633,7 @@ def test_dump_data_sources_runs_pg_dump_with_directory_format():
|
||||
),
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).and_return(flexmock()).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -686,6 +695,7 @@ def test_dump_data_sources_runs_pg_dump_with_string_compression():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(processes[0]).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -747,6 +757,7 @@ def test_dump_data_sources_runs_pg_dump_with_integer_compression():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(processes[0]).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -807,6 +818,7 @@ def test_dump_data_sources_runs_pg_dump_with_options():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -853,6 +865,7 @@ def test_dump_data_sources_runs_pg_dumpall_for_all_databases():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -911,6 +924,7 @@ def test_dump_data_sources_runs_non_default_pg_dump():
|
||||
shell=True,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(process).once()
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -961,6 +975,7 @@ def test_restore_data_source_dump_runs_pg_restore():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -974,6 +989,7 @@ def test_restore_data_source_dump_runs_pg_restore():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1022,6 +1038,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_hostname_and_port():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1039,6 +1056,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_hostname_and_port():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1087,6 +1105,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_username_and_password():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGPASSWORD': 'trustsome1', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1102,6 +1121,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_username_and_password():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGPASSWORD': 'trustsome1', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1165,6 +1185,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGPASSWORD': 'clipassword', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1184,6 +1205,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGPASSWORD': 'clipassword', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1247,6 +1269,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGPASSWORD': 'restorepassword', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1266,6 +1289,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGPASSWORD': 'restorepassword', 'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1316,6 +1340,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_options():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1330,6 +1355,7 @@ def test_restore_data_source_dump_runs_pg_restore_with_options():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1368,10 +1394,12 @@ def test_restore_data_source_dump_runs_psql_for_all_database_dump():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
('psql', '--no-password', '--no-psqlrc', '--quiet', '--command', 'ANALYZE'),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1406,6 +1434,7 @@ def test_restore_data_source_dump_runs_psql_for_plain_database_dump():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1419,6 +1448,7 @@ def test_restore_data_source_dump_runs_psql_for_plain_database_dump():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1473,6 +1503,7 @@ def test_restore_data_source_dump_runs_non_default_pg_restore_and_psql():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1491,6 +1522,7 @@ def test_restore_data_source_dump_runs_non_default_pg_restore_and_psql():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1560,6 +1592,7 @@ def test_restore_data_source_dump_without_extract_process_restores_from_disk():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=None,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1573,6 +1606,7 @@ def test_restore_data_source_dump_without_extract_process_restores_from_disk():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
@@ -1619,6 +1653,7 @@ def test_restore_data_source_dump_with_schemas_restores_schemas():
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=None,
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
(
|
||||
@@ -1632,6 +1667,7 @@ def test_restore_data_source_dump_with_schemas_restores_schemas():
|
||||
'ANALYZE',
|
||||
),
|
||||
environment={'PGSSLMODE': 'disable'},
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
module.restore_data_source_dump(
|
||||
|
||||
@@ -122,6 +122,7 @@ def test_dump_data_sources_with_path_injection_attack_gets_escaped():
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(processes[0])
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -179,6 +180,7 @@ def test_dump_data_sources_runs_non_default_sqlite_with_path_injection_attack_ge
|
||||
),
|
||||
shell=True,
|
||||
run_to_completion=False,
|
||||
working_directory=None,
|
||||
).and_return(processes[0])
|
||||
flexmock(module.dump).should_receive('write_data_source_dumps_metadata').with_args(
|
||||
'/run/borgmatic',
|
||||
@@ -333,6 +335,7 @@ def test_restore_data_source_dump_restores_database():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
@@ -369,6 +372,7 @@ def test_restore_data_source_dump_runs_non_default_sqlite_restores_database():
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
@@ -403,6 +407,7 @@ def test_restore_data_source_dump_with_connection_params_uses_connection_params_
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
@@ -437,6 +442,7 @@ def test_restore_data_source_dump_runs_non_default_sqlite_with_connection_params
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
@@ -474,6 +480,7 @@ def test_restore_data_source_dump_without_connection_params_uses_restore_params_
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
@@ -509,6 +516,7 @@ def test_restore_data_source_dump_runs_non_default_sqlite_without_connection_par
|
||||
processes=[extract_process],
|
||||
output_log_level=logging.DEBUG,
|
||||
input_file=extract_process.stdout,
|
||||
working_directory=None,
|
||||
).once()
|
||||
|
||||
flexmock(module.os).should_receive('remove').once()
|
||||
|
||||
Reference in New Issue
Block a user