示例#1
0
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()
示例#2
0
    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()
示例#3
0
    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."
示例#4
0
    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
示例#5
0
    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__}"
示例#6
0
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]
示例#7
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'}
示例#8
0
    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'
示例#9
0
    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}"
示例#10
0
    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']
示例#11
0
    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'
示例#12
0
    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