Пример #1
0
def test_make_OSError():
    exception = make_OSError(errno.ENOENT)
    assert isinstance(exception, OSError)
    assert exception.errno == errno.ENOENT

    exception = make_OSError(errno.ENOTDIR)
    assert isinstance(exception, OSError)
    assert exception.errno == errno.ENOTDIR
Пример #2
0
def test_spamassassin_service_overriden_nonexistent_inaccessible():
    # If we can't check if the file is there, we treat it as if it was there,
    # so that the SpamassassinConfigUpdate actor doesn't make changes to
    # /etc/sysconfig/spamassassin that may not be justified.
    listdir = MockListDir(to_raise=make_OSError(errno.EACCES))
    overriden = lib_spamd.spamassassin_service_overriden(listdir.listdir)
    assert overriden is True
Пример #3
0
 def listdir(self, path):
     if self.to_raise:
         raise self.to_raise
     if os.path.normpath(path) == self.path:
         return self.file_names
     self.error = True
     raise make_OSError(errno.ENOENT)
Пример #4
0
def test_migrate_spamd_config_write_failure():
    # OSError (e.g. os.open)
    facts = SpamassassinFacts(service_overriden=False, spamd_ssl_version='tlsv1')
    fileops = MockFileOperations(write_error=make_OSError(errno.EACCES))
    content = ('# foo\n' +
               SYSCONFIG_VARIABLE + '="-c --ssl-version tlsv1 -hdx"\n' +
               '# bar \n')
    fileops.files[SYSCONFIG_SPAMASSASSIN] = content
    backup_func = MockBackup()

    lib_spamd.migrate_spamd_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(service_overriden=False, spamd_ssl_version='tlsv1')
    fileops = MockFileOperations(write_error=make_IOError(errno.EACCES))
    content = ('# foo\n' +
               SYSCONFIG_VARIABLE + '="-c --ssl-version tlsv1 -hdx"\n' +
               '# bar \n')
    fileops.files[SYSCONFIG_SPAMASSASSIN] = content
    backup_func = MockBackup()

    lib_spamd.migrate_spamd_config(facts, fileops, backup_func)

    assert fileops.read_called == 1
    assert fileops.write_called == 1
Пример #5
0
def test_migrate_spamd_config_no_write_if_backup_fails():
    # OSError (e.g. os.open)
    facts = SpamassassinFacts(service_overriden=False, spamd_ssl_version='tlsv1')
    fileops = MockFileOperations()
    content = ('# foo\n' +
               SYSCONFIG_VARIABLE + '="-c --ssl-version tlsv1 -hdx"\n' +
               '# bar \n')
    fileops.files[SYSCONFIG_SPAMASSASSIN] = content
    backup_func = MockBackup(to_raise=make_OSError(errno.EACCES))

    lib_spamd.migrate_spamd_config(facts, fileops, backup_func)

    assert backup_func.called == 1
    assert fileops.write_called == 0

    # IOError (e.g. file.read)
    facts = SpamassassinFacts(service_overriden=False, spamd_ssl_version='tlsv1')
    fileops = MockFileOperations()
    content = ('# foo\n' +
               SYSCONFIG_VARIABLE + '="-c --ssl-version tlsv1 -hdx"\n' +
               '# bar \n')
    fileops.files[SYSCONFIG_SPAMASSASSIN] = content
    backup_func = MockBackup(to_raise=make_IOError(errno.EACCES))

    lib_spamd.migrate_spamd_config(facts, fileops, backup_func)

    assert backup_func.called == 1
    assert fileops.write_called == 0
Пример #6
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
def test_get_vsftpd_facts_inaccessible_dir():
    listdir = MockListDir(to_raise=make_OSError(errno.EACCES))
    fileops = MockFileOperations()

    facts = vsftpdconfigread.get_vsftpd_facts(read_func=fileops.read,
                                              listdir=listdir.listdir)

    assert facts.default_config_hash is None
    assert not facts.configs
def test_get_parsed_configs_inaccessible_dir():
    listdir = MockListDir(to_raise=make_OSError(errno.EACCES))
    fileops = MockFileOperations()

    parsed_configs = vsftpdconfigread._get_parsed_configs(
        read_func=fileops.read, listdir=listdir.listdir)

    assert fileops.read_called == 0
    assert not parsed_configs
Пример #9
0
def test_get_vsftpd_facts_nonexistent_dir():
    listdir = MockListDir(to_raise=make_OSError(errno.ENOENT))
    fileops = MockFileOperations()

    facts = library.get_vsftpd_facts(read_func=fileops.read,
                                     listdir=listdir.listdir)

    assert facts.default_config_hash is None
    assert len(facts.configs) == 0
Пример #10
0
def test_get_parsed_configs_nonexistent_dir():
    listdir = MockListDir(to_raise=make_OSError(errno.ENOENT))
    fileops = MockFileOperations()

    parsed_configs = library._get_parsed_configs(read_func=fileops.read,
                                                 listdir=listdir.listdir)

    assert fileops.read_called == 0
    assert len(parsed_configs) == 0
Пример #11
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
Пример #12
0
def test_spamassassin_service_overriden_nonexistent_dir():
    listdir = MockListDir(to_raise=make_OSError(errno.ENOENT))
    overriden = lib_spamd.spamassassin_service_overriden(listdir.listdir)
    assert overriden is False