def test_cd(tmpdir): original_cwd = Path.cwd() with cd(tmpdir): assert Path.cwd() == tmpdir assert Path.cwd() != original_cwd assert original_cwd == Path.cwd()
def test_init_absolute_root_path(self, tmpdir): root_path = Path(tmpdir.join('dir_abs')) with cd(tmpdir): result = self.runner.invoke( cli, ['init', '-p', str(root_path), '-mk']) assert result.exit_code == 0 assert (root_path / 'logme.ini').is_file()
def test_init_raise_invalid_dir(self, tmpdir): with cd(tmpdir): result = self.runner.invoke(cli, ['init', '-p', 'blah']) with pytest.raises(NotADirectoryError) as e_info: raise result.exception assert e_info.value.args[0] == f"{tmpdir.join('blah')} does not exist. If you'd " \ f"like to make the directory, please use '-mk' flag."
def test_remove_raise(self, tmpdir, conf_name, message): with cd(tmpdir): self.runner.invoke(cli, ['init']) with pytest.raises(LogmeError) as e_info: result = self.runner.invoke(cli, ['remove', conf_name]) raise result.exception assert e_info.value.args[0] == message
def test_upgrade_command(self, tmpdir): local_logme_file = Path(__file__).parent / 'logme.ini' tmpdir_file = tmpdir.join('logme.ini') shutil.copyfile(local_logme_file, tmpdir_file) with cd(tmpdir): result = self.runner.invoke(cli, ['upgrade']) assert result.output.strip( ) == f"{tmpdir_file} has been updated to {__version__}"
def test_validate_conf_section_exist(tmpdir): """ Test raise when section already exists""" with cd(tmpdir): runner = CliRunner() runner.invoke(cli, ['init']) runner.invoke(cli, ['add', 'blah']) with pytest.raises(LogmeError) as e_info: validate_conf('blah', Path(tmpdir / 'logme.ini')) assert "'blah' logging config already exists in config file" in e_info.value.args[ 0]
def test_add_command(self, tmpdir): with cd(tmpdir): self.runner.invoke(cli, ['init']) result = self.runner.invoke(cli, ['add', 'blah']) config_path = tmpdir.join('logme.ini') config = ConfigParser.from_files(config_path) assert result.exit_code == 0 assert Path(config_path).is_file() assert set(config.sections()) == {'colors', 'logme', 'blah'}
def test_init_override(self, tmpdir): with cd(tmpdir): # Before override self.runner.invoke(cli, ['init', '-lvl', 'error']) logme_path = Path(tmpdir) / 'logme.ini' conf_content_before = get_logger_config(logme_path) assert conf_content_before['level'] == 'ERROR' self.runner.invoke(cli, ['init', '-o']) conf_content_after = get_logger_config(logme_path) assert conf_content_after['level'] == 'DEBUG'
def test_init_raise_conf_exists(self, tmpdir): with cd(tmpdir): self.runner.invoke(cli, ['init']) logme_path = Path(tmpdir) / 'logme.ini' assert logme_path.exists() result = self.runner.invoke(cli, ['init']) with pytest.raises(LogmeError) as e_info: raise result.exception assert e_info.value.args[ 0] == f"logme.ini already exists at {logme_path}"
def test_remove_command(self, tmpdir): with cd(tmpdir): self.runner.invoke(cli, ['init']) self.runner.invoke(cli, ['add', 'test']) config_path = tmpdir.join('logme.ini') config_before = ConfigParser.from_files(config_path) assert set(config_before.sections()) == {'colors', 'logme', 'test'} result = self.runner.invoke(cli, ['remove', 'test']) config_after = ConfigParser.from_files(config_path) assert result.exit_code == 0 assert config_after.sections() == ['colors', 'logme']
def test_init(self, tmpdir, file_path, cmd_args): expected_file = Path(tmpdir.join(file_path)) with cd(tmpdir): result = self.runner.invoke(cli, cmd_args) assert result.exit_code == 0 assert expected_file.is_file() conf = ConfigParser.from_files(expected_file) assert conf.sections() == ['colors', 'logme'] # Assert the first section is the color config with open(expected_file) as file: line = file.readline() assert line == '[colors]\n'
def test_add_command_no_file(self, tmpdir): with cd(tmpdir): with pytest.raises(FileNotFoundError): result = self.runner.invoke(cli, ['add', 'blah']) raise result.exception