abecc97bad
This patch adds static typing, and it switches to the Hatch package manager and its Hatchling build backend.
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import json
|
|
import os
|
|
from typing import Callable
|
|
|
|
from tests.conftest import Dotfiles
|
|
|
|
|
|
def test_config_blank(dotfiles: Dotfiles, run_dotbot: Callable[..., None]) -> None:
|
|
"""Verify blank configs work."""
|
|
|
|
dotfiles.write_config([])
|
|
run_dotbot()
|
|
|
|
|
|
def test_config_empty(dotfiles: Dotfiles, run_dotbot: Callable[..., None]) -> None:
|
|
"""Verify empty configs work."""
|
|
|
|
dotfiles.write("config.yaml", "")
|
|
run_dotbot("-c", os.path.join(dotfiles.directory, "config.yaml"), custom=True)
|
|
|
|
|
|
def test_json(home: str, dotfiles: Dotfiles, run_dotbot: Callable[..., None]) -> None:
|
|
"""Verify JSON configs work."""
|
|
|
|
document = json.dumps([{"create": ["~/d"]}])
|
|
dotfiles.write("config.json", document)
|
|
run_dotbot("-c", os.path.join(dotfiles.directory, "config.json"), custom=True)
|
|
|
|
assert os.path.isdir(os.path.join(home, "d"))
|
|
|
|
|
|
def test_json_tabs(home: str, dotfiles: Dotfiles, run_dotbot: Callable[..., None]) -> None:
|
|
"""Verify JSON configs with tabs work."""
|
|
|
|
document = """[\n\t{\n\t\t"create": ["~/d"]\n\t}\n]"""
|
|
dotfiles.write("config.json", document)
|
|
run_dotbot("-c", os.path.join(dotfiles.directory, "config.json"), custom=True)
|
|
|
|
assert os.path.isdir(os.path.join(home, "d"))
|