# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   test63
# FileName:      read_ini.py
# Author:       lao_zhao
# Datetime:     2024/11/5 14:09
# Description:
#
# ---------------------------------------------------------------------------
import configparser
import os

from APIAutoTest_v3_1 import log


class ReadUserIni:
    def __init__(self, user):
        """读取ini文件, 需要指明读取哪个用户的ini配置文件"""
        # 获取数据配置层的路径
        data_config = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
        # 获取用户存放数据的目录路径
        self.user_data_config = os.path.join(data_config, user)
        # 获取用户的ini文件路径
        ini_path = os.path.join(self.user_data_config, "config.ini")

        self.conf = configparser.ConfigParser()
        res = self.conf.read(ini_path, encoding="utf-8")
        if not res:
            log.error(f"读取ini文件失败,请检查用户名是否传入正确,用户名为:{user}, 对应的ini文件路径为:{ini_path}")
            raise ValueError("用户名错误")

    def get_file_path(self, key):
        """根据key获取file节点下文件的路径"""
        log.info(f"执行get_file_path方法,功能为:根据key获取file节点下文件的路径, 传入的参数为:{key}")
        try:
            file_name = self.conf.get("file", key)
        except Exception as e:
            log.info(f"执行get_file_path方法,功能为:根据key获取file节点下文件的路径, 传入的参数为:{key}"
                     f"发生错误,错误的类型为:{type(e)}, 错误的描述为:{e}")
            raise e
        else:
            return os.path.join(self.user_data_config, file_name)

    def get_table_name(self, key):
        """根据key获取table节点下工作表的名称"""
        log.info(f"执行get_table_name方法,功能为:根据key获取table节点下工作表的名称, 传入的参数为:{key}")
        try:
            return self.conf.get("table", key)
        except Exception as e:
            log.info(f"执行get_table_name方法,功能为:根据key获取table节点下工作表的名称, 传入的参数为:{key}"
                     f"发生错误,错误的类型为:{type(e)}, 错误的描述为:{e}")
            raise e




if __name__ == '__main__':
    ini = ReadUserIni("zs_data")
    # D:\Project\PythonDoc\test63\test63\APIAutoTest_v3_1\data_config\lisi\apiAutoTest.xlsx
    # D:\Project\PythonDoc\test63\test63\APIAutoTest_v3_1\data_config\lisi\apiAutoTest.xlsx
    # print(ini.get_file_path("excel"))