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
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
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)
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
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
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
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
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
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
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