def test_exits_if_filename_already_exists_as_directory(tmp_path):
    """Exits if given filename already exists as directory name."""
    os.chdir(tmp_path)
    name_to_be_tested = "foobar"
    foobar = Path(name_to_be_tested)
    foobar.mkdir()
    with pytest.raises(SystemExit):
        _return_filename_validated(name_to_be_tested)
def test_returns_validated_filename():
    """Passes when filename is valid."""
    assert _return_filename_validated("foobar.txt")
def test_exits_if_filename_matches_bad_pattern():
    """Exits if filename matches regex for an Emacs backup file."""
    fname = "foobar.txt~"
    with pytest.raises(SystemExit):
        _return_filename_validated(fname)
def test_exits_if_filename_starts_with_dot():
    """Exits if filename is "hidden" (starts with a dot)."""
    fname = ".foobar.txt"
    with pytest.raises(SystemExit):
        _return_filename_validated(fname)
def test_exits_if_filename_is_empty(tmp_path):
    """Exits if given filename is empty string."""
    with pytest.raises(SystemExit):
        _return_filename_validated(filename="")
def test_exits_if_filename_contains_umlaut():
    """Exits if umlaut found in filename."""
    with pytest.raises(SystemExit):
        _return_filename_validated("föö.txt")
def test_exits_if_filename_is_none(tmp_path):
    """Exits if filename is None."""
    with pytest.raises(SystemExit):
        _return_filename_validated(filename=None)
def test_exits_if_filename_contains_space():
    """Exits if space found in filename."""
    with pytest.raises(SystemExit):
        _return_filename_validated("My File.txt")
def test_exits_if_filename_contains_forward_slash():
    """Exits if forward slash (for pathname components) found in filename."""
    with pytest.raises(SystemExit):
        _return_filename_validated("foo/bar.txt")
def test_exits_if_no_alphanumeric_characters_used():
    """Exits if no alphanumeric characters found in filename."""
    with pytest.raises(SystemExit):
        _return_filename_validated("..:.,.")
def test_exits_if_illegal_character_used():
    """Exits if illegal character found in filename."""
    with pytest.raises(SystemExit):
        _return_filename_validated("foo;bar.txt")
def test_returns_validated_filename_even_for_pathlike_object():
    """Passes when Pathlike object filename is valid."""
    assert _return_filename_validated(Path("foobar.txt"))