Fix (some) end-to-end tests (#721).
This commit is contained in:
parent
48b6a1679a
commit
ab351548d2
9 changed files with 118 additions and 128 deletions
|
@ -14,7 +14,7 @@ MONITOR_STATE_TO_CRONHUB = {
|
|||
|
||||
|
||||
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
|
||||
'''
|
||||
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(
|
||||
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
|
||||
'''
|
||||
No destruction is necessary for this monitor.
|
||||
|
|
|
@ -14,7 +14,7 @@ MONITOR_STATE_TO_CRONITOR = {
|
|||
|
||||
|
||||
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
|
||||
'''
|
||||
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(
|
||||
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
|
||||
'''
|
||||
No destruction is necessary for this monitor.
|
||||
|
|
|
@ -70,7 +70,7 @@ def format_buffered_logs_for_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,
|
||||
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}')
|
||||
|
||||
|
||||
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
|
||||
getting reused by other instances of this monitor.
|
||||
|
|
|
@ -6,7 +6,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
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
|
||||
'''
|
||||
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(
|
||||
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
|
||||
'''
|
||||
No destruction is necessary for this monitor.
|
||||
|
|
|
@ -13,7 +13,7 @@ EVENTS_API_URL = 'https://events.pagerduty.com/v2/enqueue'
|
|||
|
||||
|
||||
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
|
||||
'''
|
||||
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(
|
||||
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
|
||||
'''
|
||||
No destruction is necessary for this monitor.
|
||||
|
|
|
@ -22,60 +22,57 @@ def write_configuration(
|
|||
storing database dumps, dump format (for PostgreSQL), and encryption passphrase.
|
||||
'''
|
||||
config = f'''
|
||||
location:
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
|
||||
storage:
|
||||
encryption_passphrase: "test"
|
||||
encryption_passphrase: "test"
|
||||
|
||||
hooks:
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
- name: all
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
- name: all
|
||||
format: custom
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
mysql_databases:
|
||||
- name: test
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
- name: all
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
- name: all
|
||||
format: sql
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
mongodb_databases:
|
||||
- name: test
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
authentication_database: admin
|
||||
format: {mongodb_dump_format}
|
||||
- name: all
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
sqlite_databases:
|
||||
- name: sqlite_test
|
||||
path: /tmp/sqlite_test.db
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
- name: all
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
- name: all
|
||||
format: custom
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
mysql_databases:
|
||||
- name: test
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
- name: all
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
- name: all
|
||||
format: sql
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
mongodb_databases:
|
||||
- name: test
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
authentication_database: admin
|
||||
format: {mongodb_dump_format}
|
||||
- name: all
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
sqlite_databases:
|
||||
- name: sqlite_test
|
||||
path: /tmp/sqlite_test.db
|
||||
'''
|
||||
|
||||
with open(config_path, 'w') as config_file:
|
||||
|
@ -96,51 +93,48 @@ def write_custom_restore_configuration(
|
|||
restore_username, restore_password and restore_path.
|
||||
'''
|
||||
config = f'''
|
||||
location:
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
|
||||
storage:
|
||||
encryption_passphrase: "test"
|
||||
encryption_passphrase: "test"
|
||||
|
||||
hooks:
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
restore_hostname: postgresql2
|
||||
restore_port: 5433
|
||||
restore_username: postgres2
|
||||
restore_password: test2
|
||||
mysql_databases:
|
||||
- name: test
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
restore_hostname: mysql2
|
||||
restore_port: 3307
|
||||
restore_username: root
|
||||
restore_password: test2
|
||||
mongodb_databases:
|
||||
- name: test
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
authentication_database: admin
|
||||
format: {mongodb_dump_format}
|
||||
restore_hostname: mongodb2
|
||||
restore_port: 27018
|
||||
restore_username: root2
|
||||
restore_password: test2
|
||||
sqlite_databases:
|
||||
- name: sqlite_test
|
||||
path: /tmp/sqlite_test.db
|
||||
restore_path: /tmp/sqlite_test2.db
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
restore_hostname: postgresql2
|
||||
restore_port: 5433
|
||||
restore_username: postgres2
|
||||
restore_password: test2
|
||||
mysql_databases:
|
||||
- name: test
|
||||
hostname: mysql
|
||||
username: root
|
||||
password: test
|
||||
restore_hostname: mysql2
|
||||
restore_port: 3307
|
||||
restore_username: root
|
||||
restore_password: test2
|
||||
mongodb_databases:
|
||||
- name: test
|
||||
hostname: mongodb
|
||||
username: root
|
||||
password: test
|
||||
authentication_database: admin
|
||||
format: {mongodb_dump_format}
|
||||
restore_hostname: mongodb2
|
||||
restore_port: 27018
|
||||
restore_username: root2
|
||||
restore_password: test2
|
||||
sqlite_databases:
|
||||
- name: sqlite_test
|
||||
path: /tmp/sqlite_test.db
|
||||
restore_path: /tmp/sqlite_test2.db
|
||||
'''
|
||||
|
||||
with open(config_path, 'w') as config_file:
|
||||
|
@ -161,23 +155,20 @@ def write_simple_custom_restore_configuration(
|
|||
these options for PostgreSQL.
|
||||
'''
|
||||
config = f'''
|
||||
location:
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
source_directories:
|
||||
- {source_directory}
|
||||
repositories:
|
||||
- {repository_path}
|
||||
borgmatic_source_directory: {borgmatic_source_directory}
|
||||
|
||||
storage:
|
||||
encryption_passphrase: "test"
|
||||
encryption_passphrase: "test"
|
||||
|
||||
hooks:
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
postgresql_databases:
|
||||
- name: test
|
||||
hostname: postgresql
|
||||
username: postgres
|
||||
password: test
|
||||
format: {postgresql_dump_format}
|
||||
'''
|
||||
|
||||
with open(config_path, 'w') as config_file:
|
||||
|
|
|
@ -38,5 +38,4 @@ def test_validate_config_command_with_show_flag_displays_configuration():
|
|||
f'validate-borgmatic-config --config {config_path} --show'.split(' ')
|
||||
).decode(sys.stdout.encoding)
|
||||
|
||||
assert 'location:' in output
|
||||
assert 'repositories:' in output
|
||||
|
|
|
@ -10,7 +10,7 @@ def test_destroy_monitor_removes_healthchecks_handler():
|
|||
original_handlers = list(logger.handlers)
|
||||
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
|
||||
|
||||
|
@ -19,6 +19,6 @@ def test_destroy_monitor_without_healthchecks_handler_does_not_raise():
|
|||
logger = logging.getLogger()
|
||||
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
|
||||
|
|
|
@ -86,7 +86,7 @@ def test_initialize_monitor_creates_log_handler_with_ping_body_limit():
|
|||
).once()
|
||||
|
||||
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,
|
||||
).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():
|
||||
|
@ -112,7 +112,7 @@ def test_initialize_monitor_creates_log_handler_with_zero_ping_body_limit():
|
|||
).once()
|
||||
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
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
|
||||
)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue