1
0
Fork 0
pgcli/tests/test_config.py

44 lines
988 B
Python

import io
import os
import stat
import pytest
from pgcli.config import ensure_dir_exists, skip_initial_comment
def test_ensure_file_parent(tmpdir):
subdir = tmpdir.join("subdir")
rcfile = subdir.join("rcfile")
ensure_dir_exists(str(rcfile))
def test_ensure_existing_dir(tmpdir):
rcfile = str(tmpdir.mkdir("subdir").join("rcfile"))
# should just not raise
ensure_dir_exists(rcfile)
def test_ensure_other_create_error(tmpdir):
subdir = tmpdir.join('subdir"')
rcfile = subdir.join("rcfile")
# trigger an oserror that isn't "directory already exists"
os.chmod(str(tmpdir), stat.S_IREAD)
with pytest.raises(OSError):
ensure_dir_exists(str(rcfile))
@pytest.mark.parametrize(
"text, skipped_lines",
(
("abc\n", 1),
("#[section]\ndef\n[section]", 2),
("[section]", 0),
),
)
def test_skip_initial_comment(text, skipped_lines):
assert skip_initial_comment(io.StringIO(text)) == skipped_lines