Exemplo n.º 1
0
def test_migrate_spamc_config_write_failure():
    # OSError (e.g. os.open)
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3',
                              service_overriden=False)
    fileops = MockFileOperations(write_error=make_OSError(errno.EACCES))
    fileops.files[SPAMC_CONFIG_FILE] = '--ssl sslv3\n# foo\n-B\n'
    backup_func = MockBackup()

    lib_spamc.migrate_spamc_config(facts, fileops, backup_func)

    # The main purpose of this test is to check that exceptions are handled
    # properly. The following assertions are supplementary.
    assert fileops.read_called == 1
    assert fileops.write_called == 1

    # IOError (e.g. builtin open)
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3',
                              service_overriden=False)
    fileops = MockFileOperations(write_error=make_IOError(errno.EACCES))
    fileops.files[SPAMC_CONFIG_FILE] = '--ssl sslv3\n# foo\n-B\n'
    backup_func = MockBackup()

    lib_spamc.migrate_spamc_config(facts, fileops, backup_func)

    assert fileops.read_called == 1
    assert fileops.write_called == 1
Exemplo n.º 2
0
def test_migrate_spamc_config_no_write_if_backup_fails():
    # OSError (e.g. os.open)
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3', service_overriden=False)
    fileops = MockFileOperations()
    backup_func = MockBackup(to_raise=make_OSError(errno.EACCES))

    spamassassinconfigupdate_spamc.migrate_spamc_config(facts, fileops, backup_func)

    assert fileops.write_called == 0

    # IOError (e.g. file.read)
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3', service_overriden=False)
    fileops = MockFileOperations()
    backup_func = MockBackup(to_raise=make_IOError(errno.EACCES))

    spamassassinconfigupdate_spamc.migrate_spamc_config(facts, fileops, backup_func)

    assert fileops.write_called == 0
Exemplo n.º 3
0
def test_migrate_spamc_config_no_ssl_option():
    facts = SpamassassinFacts(spamc_ssl_argument=None, service_overriden=False)
    fileops = MockFileOperations()
    backup_func = MockBackup()

    lib_spamc.migrate_spamc_config(facts, fileops, backup_func)

    assert backup_func.called == 0
    assert fileops.read_called == 0
    assert fileops.write_called == 0
Exemplo n.º 4
0
def test_migrate_spamc_config():
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3', service_overriden=False)
    fileops = MockFileOperations()
    fileops.files[SPAMC_CONFIG_FILE] = '--ssl sslv3\n# foo\n-B\n'
    backup_func = MockBackup()

    spamassassinconfigupdate_spamc.migrate_spamc_config(facts, fileops, backup_func)

    assert backup_func.called == 1
    assert backup_func.paths[0] == SPAMC_CONFIG_FILE
    assert fileops.files[SPAMC_CONFIG_FILE] == '--ssl\n# foo\n-B\n'
    assert fileops.read_called == 1
    assert fileops.files_read[SPAMC_CONFIG_FILE] == 1
    assert fileops.write_called == 1
    assert fileops.files_written[SPAMC_CONFIG_FILE] == 1
Exemplo n.º 5
0
def test_migrate_configs():
    facts = SpamassassinFacts(spamc_ssl_argument='sslv3',
                              spamd_ssl_version='sslv3',
                              service_overriden=False)
    fileops = MockFileOperations()
    fileops.files[SPAMC_CONFIG_FILE] = '--ssl sslv3\n# foo\n-B\n'
    content = ('# foo\n' + SYSCONFIG_VARIABLE +
               '="-c --ssl-version sslv3 -hdx"\n' + '# bar \n')
    fileops.files[SYSCONFIG_SPAMASSASSIN] = content
    backup_func = MockBackup()

    spamassassinconfigupdate.migrate_configs(facts, fileops, backup_func)

    assert backup_func.called == 2
    assert SPAMC_CONFIG_FILE in backup_func.paths
    assert SYSCONFIG_SPAMASSASSIN in backup_func.paths
    assert fileops.files[SPAMC_CONFIG_FILE] == '--ssl\n# foo\n-B\n'
    expected_content = ('# foo\n' + SYSCONFIG_VARIABLE + '="-c --ssl -hx"\n' +
                        '# bar \n')
    assert fileops.files[SYSCONFIG_SPAMASSASSIN] == expected_content