# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   框架
# FileName:      read_ini.py
# Author:       xxxxxxx
# Datetime:     2023/11/4 9:56
# Description:
# 命名规范：文件名全小写+下划线，类名大驼峰，方法和变量小写+下划线连接，
# 常量大写，变量和常量用名词，方法用动词
# ---------------------------------------------------------------------------
import configparser
import os

from InterfaceAutoTest_2.common import log


class ReadIni:
    def __init__(self):
        """读取ini文件"""
        self.data_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
        ini_path = os.path.join(self.data_config_path, "config.ini")

        self.conf = configparser.ConfigParser()
        self.conf.read(ini_path, encoding="utf_8")

    def get_file_path(self, key):
        """根据key，获取file节点下文件的路径"""
        try:
            file_name = self.conf.get("file", key)
        except:
            log.error("输入file节点下的key值错误，请查看配置文件")
            raise KeyError("输入file节点下的key值错误，请查看配置文件")

        file_path = os.path.join(self.data_config_path, file_name)

        if os.path.isfile(file_path):
            return file_path
        else:
            log.error("获取file节点下的文件的路径错误，查看配置文件")
            raise FileNotFoundError("获取file节点下的文件的路径错误，查看配置文件")

    def get_host(self, key):
        """根据key，获取域名"""
        try:
            return self.conf.get("host", key)
        except:
            log.error("输入host节点下的key值错误，请查看配置文件")
            raise KeyError("输入host节点下的key值错误，请查看配置文件")

    def get_table_name(self, key):
        """根据key，获取工作表名"""
        try:
            return self.conf.get("table", key)
        except:
            log.error("输入table节点下的key值错误，请查看配置文件")
            raise KeyError("输入table节点下的key值错误，请查看配置文件")

    def get_sql_message(self, key):
        """根据key，获取数据库的连接信息"""
        try:
            return self.conf.get("sql", key)
        except:
            log.error("输入sql节点下的key值错误，请查看配置文件")
            raise KeyError("输入sql节点下的key值错误，请查看配置文件")


if __name__ == '__main__':
    ini = ReadIni()
    print(ini.get_table_name("table_name"))


