示例#1
0
 def cleanup():
     try:
         des = destroy.Destroy([], [])
         des.execute()
     except SystemExit:
         pass
     os.remove(c.strpath)
     shutil.rmtree(d.strpath)
示例#2
0
def test_execute_does_not_raise_on_exit(patched_driver_destroy,
                                        patched_print_info, molecule_instance):
    patched_driver_destroy.side_effect = subprocess.CalledProcessError(
        1, None, None)
    d = destroy.Destroy({}, {}, molecule_instance)
    result = d.execute(exit=False)

    assert (1, '') == result
示例#3
0
def test_execute_skips_when_delegated_driver(
        _patched_destroy_setup, patched_logger_warn, _patched_ansible_destroy,
        config_instance):
    d = destroy.Destroy(config_instance)
    d.execute()

    msg = 'Skipping, instances are delegated.'
    patched_logger_warn.assert_called_once_with(msg)

    assert not _patched_ansible_destroy.called
示例#4
0
def test_execute_skips_when_delegated_driver(
        patched_destroy_setup, molecule_driver_delegated_section_data,
        patched_logger_warn, patched_ansible_destroy, config_instance):
    config_instance.merge_dicts(config_instance.config,
                                molecule_driver_delegated_section_data)
    d = destroy.Destroy(config_instance)
    d.execute()

    msg = 'Skipping, instances are delegated.'
    patched_logger_warn.assert_called_once_with(msg)

    assert not patched_ansible_destroy.called
示例#5
0
def test_execute_skips_when_destroy_strategy_is_never(
        _patched_destroy_setup, patched_logger_warn, _patched_ansible_destroy,
        config_instance):
    config_instance.command_args = {'destroy': 'never'}

    d = destroy.Destroy(config_instance)
    d.execute()

    msg = "Skipping, '--destroy=never' requested."
    patched_logger_warn.assert_called_once_with(msg)

    assert not _patched_ansible_destroy.called
示例#6
0
def test_execute_skips_when_destroy_strategy_is_never(
        patched_destroy_setup, molecule_driver_delegated_section_data,
        patched_logger_warn, patched_ansible_destroy, config_instance):
    config_instance.merge_dicts(config_instance.config,
                                molecule_driver_delegated_section_data)
    config_instance.command_args = {'destroy': 'never'}

    d = destroy.Destroy(config_instance)
    d.execute()

    msg = "Skipping, '--destroy=never' requested."
    patched_logger_warn.assert_called_once_with(msg)

    assert not patched_ansible_destroy.called
示例#7
0
def test_execute_raises_on_exit(patched_driver_destroy, patched_print_info,
                                patched_print_error, patched_remove_templates,
                                patched_remove_inventory, molecule_instance):
    patched_driver_destroy.side_effect = subprocess.CalledProcessError(
        1, None, None)

    d = destroy.Destroy({}, {}, molecule_instance)
    with pytest.raises(SystemExit):
        d.execute()

    msg = "Command 'None' returned non-zero exit status 1"
    patched_print_error.assert_called_with(msg)

    assert not patched_remove_templates.called
    assert not patched_remove_inventory.called
示例#8
0
def test_execute(mocker, patched_logger_info, patched_config_validate,
                 _patched_ansible_destroy, config_instance):
    d = destroy.Destroy(config_instance)
    d.execute()

    x = [
        mocker.call("Scenario: 'default'"),
        mocker.call("Action: 'destroy'"),
    ]
    assert x == patched_logger_info.mock_calls

    _patched_ansible_destroy.assert_called_once_with()

    assert not config_instance.state.converged
    assert not config_instance.state.created
示例#9
0
def test_execute_deletes_instances(
        patched_driver_destroy, patched_print_info, patched_remove_templates,
        patched_remove_inventory, molecule_instance):
    d = destroy.Destroy({}, {}, molecule_instance)
    result = d.execute()

    msg = 'Destroying instances ...'
    patched_print_info.assert_called_once_with(msg)

    patched_driver_destroy.assert_called_once
    assert not molecule_instance.state.created
    assert not molecule_instance.state.converged
    (None, None) == result

    patched_remove_templates.assert_called_once
    patched_remove_inventory.assert_called_once
示例#10
0
def test_execute(mocker, patched_destroy_prune, patched_logger_info,
                 patched_ansible_destroy, config_instance):
    d = destroy.Destroy(config_instance)
    d.execute()
    x = [
        mocker.call('Scenario: [default]'),
        mocker.call('Provisioner: [ansible]'),
        mocker.call('Playbook: [destroy.yml]')
    ]

    assert x == patched_logger_info.mock_calls

    patched_destroy_prune.assert_called_once_with()
    patched_ansible_destroy.assert_called_once_with()

    assert not config_instance.state.converged
    assert not config_instance.state.created