import json import os from recipe_graph import insert_sites from sqlalchemy import select import logging import pytest @pytest.fixture def json_data() -> list[dict]: return [{"key": "value"}, {"test": "value1", "test2": "value2"}] @pytest.fixture def json_file(json_data: list[dict]) -> str: f_path = "test.json" with open(f_path, 'w') as f: json.dump(json_data, f) yield f_path if os.path.exists(f_path): os.remove(f_path) def test_load_file(json_file: str, json_data): test_data = insert_sites.load_file(json_file) assert test_data == json_data def test_setup_argparser(): file_name = "test" args = insert_sites.setup_argparser([file_name]) assert len(vars(args)) == 2 assert args.file == file_name assert args.verbose == False args = insert_sites.setup_argparser([file_name, "-v"]) assert args.file == file_name assert args.verbose == True args = insert_sites.setup_argparser([file_name, "--verbose"]) assert args.file == file_name assert args.verbose == True def test_setup_logging(): args = insert_sites.setup_argparser(["test"]) logger = insert_sites.setup_logging(args) assert logger.level == logging.WARNING args = insert_sites.setup_argparser(["test", "-v"]) logger = insert_sites.setup_logging(args) assert logger.level == logging.INFO args = insert_sites.setup_argparser(["test", "--verbose"]) logger = insert_sites.setup_logging(args) assert logger.level == logging.INFO