Ejemplo n.º 1
0
def test_make_IOError():
    exception = make_IOError(errno.ENOENT)
    assert isinstance(exception, IOError)
    assert exception.errno == errno.ENOENT

    exception = make_IOError(errno.ENOTDIR)
    assert isinstance(exception, IOError)
    assert exception.errno == errno.ENOTDIR
Ejemplo n.º 2
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
Ejemplo n.º 3
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
Ejemplo n.º 4
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
Ejemplo n.º 5
0
 def read(self, path):
     self._increment_read_counters(path)
     if self.to_raise is not None:
         raise self.to_raise
     try:
         return self.files[path]
     except KeyError:
         raise make_IOError(errno.ENOENT)
Ejemplo n.º 6
0
def test_get_spamc_ssl_argument_inaccessible():
    path = '/etc/mail/spamassassin/spamc.conf'
    fileops = MockFileOperations(to_raise=make_IOError(errno.EACCES))

    value = lib_spamc.get_spamc_ssl_argument(fileops.read)

    assert fileops.files_read == {path: 1}
    assert value is None
Ejemplo n.º 7
0
def test_hash_of_nonexistent_default_config_is_None():
    path = '/etc/vsftpd/vsftpd.conf'
    f = MockFile(path, to_raise=make_IOError(errno.ENOENT))

    h = get_default_config_hash(read_func=f.read_file)

    assert h is None
    assert not f.error
Ejemplo n.º 8
0
def test_getting_inaccessible_config_gives_None():
    path = 'my_file'
    f = MockFile(path, to_raise=make_IOError(errno.EACCES))

    res = get_config_contents(path, read_func=f.read_file)

    assert not f.error
    assert res is None
Ejemplo n.º 9
0
def test_getting_nonexistent_config_gives_None():
    path = 'my_file'
    f = MockFile(path, to_raise=make_IOError(errno.ENOENT))

    res = get_config_contents(path, read_func=f.read_file)

    assert not f.error
    assert res is None
Ejemplo n.º 10
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
Ejemplo n.º 11
0
def test_get_spamd_ssl_version_inaccessible():
    fileops = MockFileOperations(to_raise=make_IOError(errno.EACCES))
    value = lib_spamd.get_spamd_ssl_version(fileops.read)
    assert value is None