Fix (some) end-to-end tests (#721).

This commit is contained in:
Dan Helfman 2023-07-09 17:40:02 -07:00
parent 48b6a1679a
commit ab351548d2
9 changed files with 118 additions and 128 deletions

View file

@ -14,7 +14,7 @@ MONITOR_STATE_TO_CRONHUB = {
def initialize_monitor( def initialize_monitor(
ping_url, config_filename, monitoring_log_level, dry_run ping_url, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No initialization is necessary for this monitor. No initialization is necessary for this monitor.
@ -55,7 +55,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
def destroy_monitor( def destroy_monitor(
ping_url_or_uuid, config_filename, monitoring_log_level, dry_run ping_url_or_uuid, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No destruction is necessary for this monitor. No destruction is necessary for this monitor.

View file

@ -14,7 +14,7 @@ MONITOR_STATE_TO_CRONITOR = {
def initialize_monitor( def initialize_monitor(
ping_url, config_filename, monitoring_log_level, dry_run ping_url, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No initialization is necessary for this monitor. No initialization is necessary for this monitor.
@ -50,7 +50,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
def destroy_monitor( def destroy_monitor(
ping_url_or_uuid, config_filename, monitoring_log_level, dry_run ping_url_or_uuid, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No destruction is necessary for this monitor. No destruction is necessary for this monitor.

View file

@ -70,7 +70,7 @@ def format_buffered_logs_for_payload():
return payload return payload
def initialize_monitor(hook_config, config_filename, monitoring_log_level, dry_run): def initialize_monitor(hook_config, config, config_filename, monitoring_log_level, dry_run):
''' '''
Add a handler to the root logger that stores in memory the most recent logs emitted. That way, Add a handler to the root logger that stores in memory the most recent logs emitted. That way,
we can send them all to Healthchecks upon a finish or failure state. But skip this if the we can send them all to Healthchecks upon a finish or failure state. But skip this if the
@ -133,7 +133,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
logger.warning(f'{config_filename}: Healthchecks error: {error}') logger.warning(f'{config_filename}: Healthchecks error: {error}')
def destroy_monitor(hook_config, config_filename, monitoring_log_level, dry_run): def destroy_monitor(hook_config, config, config_filename, monitoring_log_level, dry_run):
''' '''
Remove the monitor handler that was added to the root logger. This prevents the handler from Remove the monitor handler that was added to the root logger. This prevents the handler from
getting reused by other instances of this monitor. getting reused by other instances of this monitor.

View file

@ -6,7 +6,7 @@ logger = logging.getLogger(__name__)
def initialize_monitor( def initialize_monitor(
ping_url, config_filename, monitoring_log_level, dry_run ping_url, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No initialization is necessary for this monitor. No initialization is necessary for this monitor.
@ -75,7 +75,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
def destroy_monitor( def destroy_monitor(
ping_url_or_uuid, config_filename, monitoring_log_level, dry_run ping_url_or_uuid, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No destruction is necessary for this monitor. No destruction is necessary for this monitor.

View file

@ -13,7 +13,7 @@ EVENTS_API_URL = 'https://events.pagerduty.com/v2/enqueue'
def initialize_monitor( def initialize_monitor(
integration_key, config_filename, monitoring_log_level, dry_run integration_key, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No initialization is necessary for this monitor. No initialization is necessary for this monitor.
@ -75,7 +75,7 @@ def ping_monitor(hook_config, config, config_filename, state, monitoring_log_lev
def destroy_monitor( def destroy_monitor(
ping_url_or_uuid, config_filename, monitoring_log_level, dry_run ping_url_or_uuid, config, config_filename, monitoring_log_level, dry_run
): # pragma: no cover ): # pragma: no cover
''' '''
No destruction is necessary for this monitor. No destruction is necessary for this monitor.

View file

@ -22,18 +22,15 @@ def write_configuration(
storing database dumps, dump format (for PostgreSQL), and encryption passphrase. storing database dumps, dump format (for PostgreSQL), and encryption passphrase.
''' '''
config = f''' config = f'''
location: source_directories:
source_directories:
- {source_directory} - {source_directory}
repositories: repositories:
- {repository_path} - {repository_path}
borgmatic_source_directory: {borgmatic_source_directory} borgmatic_source_directory: {borgmatic_source_directory}
storage: encryption_passphrase: "test"
encryption_passphrase: "test"
hooks: postgresql_databases:
postgresql_databases:
- name: test - name: test
hostname: postgresql hostname: postgresql
username: postgres username: postgres
@ -48,7 +45,7 @@ hooks:
hostname: postgresql hostname: postgresql
username: postgres username: postgres
password: test password: test
mysql_databases: mysql_databases:
- name: test - name: test
hostname: mysql hostname: mysql
username: root username: root
@ -62,7 +59,7 @@ hooks:
hostname: mysql hostname: mysql
username: root username: root
password: test password: test
mongodb_databases: mongodb_databases:
- name: test - name: test
hostname: mongodb hostname: mongodb
username: root username: root
@ -73,7 +70,7 @@ hooks:
hostname: mongodb hostname: mongodb
username: root username: root
password: test password: test
sqlite_databases: sqlite_databases:
- name: sqlite_test - name: sqlite_test
path: /tmp/sqlite_test.db path: /tmp/sqlite_test.db
''' '''
@ -96,18 +93,15 @@ def write_custom_restore_configuration(
restore_username, restore_password and restore_path. restore_username, restore_password and restore_path.
''' '''
config = f''' config = f'''
location: source_directories:
source_directories:
- {source_directory} - {source_directory}
repositories: repositories:
- {repository_path} - {repository_path}
borgmatic_source_directory: {borgmatic_source_directory} borgmatic_source_directory: {borgmatic_source_directory}
storage: encryption_passphrase: "test"
encryption_passphrase: "test"
hooks: postgresql_databases:
postgresql_databases:
- name: test - name: test
hostname: postgresql hostname: postgresql
username: postgres username: postgres
@ -117,7 +111,7 @@ hooks:
restore_port: 5433 restore_port: 5433
restore_username: postgres2 restore_username: postgres2
restore_password: test2 restore_password: test2
mysql_databases: mysql_databases:
- name: test - name: test
hostname: mysql hostname: mysql
username: root username: root
@ -126,7 +120,7 @@ hooks:
restore_port: 3307 restore_port: 3307
restore_username: root restore_username: root
restore_password: test2 restore_password: test2
mongodb_databases: mongodb_databases:
- name: test - name: test
hostname: mongodb hostname: mongodb
username: root username: root
@ -137,7 +131,7 @@ hooks:
restore_port: 27018 restore_port: 27018
restore_username: root2 restore_username: root2
restore_password: test2 restore_password: test2
sqlite_databases: sqlite_databases:
- name: sqlite_test - name: sqlite_test
path: /tmp/sqlite_test.db path: /tmp/sqlite_test.db
restore_path: /tmp/sqlite_test2.db restore_path: /tmp/sqlite_test2.db
@ -161,18 +155,15 @@ def write_simple_custom_restore_configuration(
these options for PostgreSQL. these options for PostgreSQL.
''' '''
config = f''' config = f'''
location: source_directories:
source_directories:
- {source_directory} - {source_directory}
repositories: repositories:
- {repository_path} - {repository_path}
borgmatic_source_directory: {borgmatic_source_directory} borgmatic_source_directory: {borgmatic_source_directory}
storage: encryption_passphrase: "test"
encryption_passphrase: "test"
hooks: postgresql_databases:
postgresql_databases:
- name: test - name: test
hostname: postgresql hostname: postgresql
username: postgres username: postgres

View file

@ -38,5 +38,4 @@ def test_validate_config_command_with_show_flag_displays_configuration():
f'validate-borgmatic-config --config {config_path} --show'.split(' ') f'validate-borgmatic-config --config {config_path} --show'.split(' ')
).decode(sys.stdout.encoding) ).decode(sys.stdout.encoding)
assert 'location:' in output
assert 'repositories:' in output assert 'repositories:' in output

View file

@ -10,7 +10,7 @@ def test_destroy_monitor_removes_healthchecks_handler():
original_handlers = list(logger.handlers) original_handlers = list(logger.handlers)
logger.addHandler(module.Forgetful_buffering_handler(byte_capacity=100, log_level=1)) logger.addHandler(module.Forgetful_buffering_handler(byte_capacity=100, log_level=1))
module.destroy_monitor(flexmock(), flexmock(), flexmock(), flexmock()) module.destroy_monitor(flexmock(), flexmock(), flexmock(), flexmock(), flexmock())
assert logger.handlers == original_handlers assert logger.handlers == original_handlers
@ -19,6 +19,6 @@ def test_destroy_monitor_without_healthchecks_handler_does_not_raise():
logger = logging.getLogger() logger = logging.getLogger()
original_handlers = list(logger.handlers) original_handlers = list(logger.handlers)
module.destroy_monitor(flexmock(), flexmock(), flexmock(), flexmock()) module.destroy_monitor(flexmock(), flexmock(), flexmock(), flexmock(), flexmock())
assert logger.handlers == original_handlers assert logger.handlers == original_handlers

View file

@ -86,7 +86,7 @@ def test_initialize_monitor_creates_log_handler_with_ping_body_limit():
).once() ).once()
module.initialize_monitor( module.initialize_monitor(
{'ping_body_limit': ping_body_limit}, 'test.yaml', monitoring_log_level, dry_run=False {'ping_body_limit': ping_body_limit}, {}, 'test.yaml', monitoring_log_level, dry_run=False
) )
@ -99,7 +99,7 @@ def test_initialize_monitor_creates_log_handler_with_default_ping_body_limit():
monitoring_log_level, monitoring_log_level,
).once() ).once()
module.initialize_monitor({}, 'test.yaml', monitoring_log_level, dry_run=False) module.initialize_monitor({}, {}, 'test.yaml', monitoring_log_level, dry_run=False)
def test_initialize_monitor_creates_log_handler_with_zero_ping_body_limit(): def test_initialize_monitor_creates_log_handler_with_zero_ping_body_limit():
@ -112,7 +112,7 @@ def test_initialize_monitor_creates_log_handler_with_zero_ping_body_limit():
).once() ).once()
module.initialize_monitor( module.initialize_monitor(
{'ping_body_limit': ping_body_limit}, 'test.yaml', monitoring_log_level, dry_run=False {'ping_body_limit': ping_body_limit}, {}, 'test.yaml', monitoring_log_level, dry_run=False
) )
@ -121,7 +121,7 @@ def test_initialize_monitor_creates_log_handler_when_send_logs_true():
flexmock(module).should_receive('Forgetful_buffering_handler').once() flexmock(module).should_receive('Forgetful_buffering_handler').once()
module.initialize_monitor( module.initialize_monitor(
{'send_logs': True}, 'test.yaml', monitoring_log_level=1, dry_run=False {'send_logs': True}, {}, 'test.yaml', monitoring_log_level=1, dry_run=False
) )
@ -130,7 +130,7 @@ def test_initialize_monitor_bails_when_send_logs_false():
flexmock(module).should_receive('Forgetful_buffering_handler').never() flexmock(module).should_receive('Forgetful_buffering_handler').never()
module.initialize_monitor( module.initialize_monitor(
{'send_logs': False}, 'test.yaml', monitoring_log_level=1, dry_run=False {'send_logs': False}, {}, 'test.yaml', monitoring_log_level=1, dry_run=False
) )