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