def test_commands_list(self):
cases = dict(
default=dict(
init_kwargs=dict(service='service'),
expected_commands_list=['rollback'],
unexpected_commands_list=['revert', 'migrate', 'migrate-back', 'backup', 'restore', 'pull', 'update', 'prepare', 'push', 'upgrade'],
),
prepare_tasks=dict(
init_kwargs=dict(service='service', registry='registry'),
expected_commands_list=['rollback', 'prepare', 'push', 'upgrade'],
unexpected_commands_list=['backup', 'restore', 'migrate', 'migrate-back', 'pull', 'update', 'revert'],
),
migrate_tasks=dict(
init_kwargs=dict(service='service', migrate_commands=True),
expected_commands_list=['rollback', 'migrate', 'migrate-back'],
unexpected_commands_list=['backup', 'restore', 'prepare', 'push', 'pull', 'update', 'revert', 'upgrade'],
),
backup_tasks=dict(
init_kwargs=dict(service='service', backup_commands=True),
expected_commands_list=['rollback', 'backup', 'restore'],
unexpected_commands_list=['migrate', 'migrate-back', 'prepare', 'push', 'pull', 'update', 'revert', 'upgrade'],
),
revert_task=dict(
init_kwargs=dict(service='service', revert_command=True),
expected_commands_list=['rollback', 'revert'],
unexpected_commands_list=['migrate', 'migrate-back', 'prepare', 'push', 'pull', 'update', 'backup', 'restore', 'upgrade'],
),
pull_task=dict(
init_kwargs=dict(service='service', pull_command=True),
expected_commands_list=['rollback', 'pull'],
unexpected_commands_list=['migrate', 'migrate-back', 'prepare', 'push', 'revert', 'update', 'backup', 'restore', 'upgrade'],
),
update_task=dict(
init_kwargs=dict(service='service', update_command=True),
expected_commands_list=['rollback', 'update'],
unexpected_commands_list=['migrate', 'migrate-back', 'prepare', 'push', 'pull', 'revert', 'backup', 'restore', 'upgrade'],
),
complex=dict(
init_kwargs=dict(service='service', backup_commands=True, migrate_commands=True, registry='registry', revert_command=True, update_command=True, pull_command=True),
expected_commands_list=['pull', 'rollback', 'update', 'backup', 'restore', 'migrate', 'migrate-back', 'prepare', 'push', 'revert', 'upgrade'],
unexpected_commands_list=[],
),
all_tasks=dict(
init_kwargs=dict(service='service', backup_commands=True, migrate_commands=True, registry='registry', revert_command=True, update_command=True, pull_command=True),
expected_commands_list=['pull', 'rollback', 'update', 'backup', 'restore', 'migrate', 'migrate-back', 'prepare', 'push', 'revert', 'upgrade', 'deploy'],
unexpected_commands_list=[],
env=dict(tasks='task'),
),
)
for case, data in cases.items():
with self.subTest(case=case):
with mock.patch.dict(fab.env, data.get('env', {})):
tasks_list = tasks.DockerTasks(**data['init_kwargs'])
docstring, new_style, classic, default = load_tasks_from_module(tasks_list)
for expected_command in data['expected_commands_list']:
self.assertIn(expected_command, new_style)
for unexpected_command in data['unexpected_commands_list']:
self.assertNotIn(unexpected_command, new_style)