从编写metadata.yaml到测试processor文件成功

  1. 检查模型和客户端( Excel 原型图)字段是否对应

  2. 修改 applications\commands\metadata\cai_liao_ she_bei_metadata.yaml 文件

    wen_jian_db_conf 下的 all 下的 content_field_name 选项,要根据 model 中写的文件路径找到对应的 model,去看用的是哪个文件信息(Info)。
    需要添加exclude_fields_type: add
    其他注意事项:
    在这里插入图片描述

    枚举类要写成下面这种形式:

    ji_hua_qi:
        type: enum
        interm_table_class: JiHuaQiType
    

    有枚举类的话,还要在这个文件中引入枚举类common\metadata\enum_factory.py

  3. 生成metadata输出文件,使用命令 flask create_metadata -i [metadata.yaml文件相对路径]

  4. applications\python_class\cai_liao_yu_she_bei\_init_.pyapplications\python_class\__init__ .py 导入自动生成的 Class

    _init_.py 文件的作用是把相对路径下的所有文件夹全部导入到当前 init 文件中,层层深入,可以达到根目录下的 init 文件中会包含当前目录下所有的信息。

  5. 完成自动生成的 processor 和 test processor 文件

    test_wu_zi_yang_pin_song_shen_biao_processor 文件中的以下两部分内容,要与 applications\config\sheet_processors\cai_liao_yu_she_bei_sheet_processor.yaml 中的 sheet_type 和 applications\config\processors\cai_liao_yu_she_bei_processor.yaml 中的最外层级的 field_name 分别保持一致。

    初次创建的metadata文件要在applications\config\sheet_processor.yamlapplications\config\processor.yaml文件中引入相关的类。
    在这里插入图片描述 在这里插入图片描述

    测试文件中有多对多关系时,要在测试文件进行相关测试:
    在这里插入图片描述
    many_to_many字段的类,要在many_to_class文件中导入该类。
    processer文件中要注意:
    在这里插入图片描述
    多个嵌套表时,processor中要添加入child_fk_name = 'zhao_biao_wen_jian_id',值为关联id

    test_processor中测试文件的 data 部分以及 processor 中的需要写字段的位置,key 值要与 applications\config\processors\zhao_biao_yu_he_yue_processor.yaml中自动生成的字段一致。有时候放在 foot 和 head 中的字段会有接收不到数据的情况,要把它放在 content_data 中。取字段内容的时候,要使用applications\config\processors\zhao_biao_yu_he_yue_processor.yaml中定义的每个字段对应的 key 值。

    日期类不仅要在 processor 中特殊处理,在测试的时候也需要特殊转义:

    assert zhao_biao_cai_gou_ji_hua.ji_hua_shi_jian.strftime('%Y-%m-%d') == '2021-10-11'
    

    枚举类断言要写成下面这种写法:

    assert zhao_biao_cai_gou_ji_hua.ji_hua_qi == JiHuaQiType.nian_du
    

    测试文件中,只需要测试 processor 文件中的这几个地方的字段就好:
    在这里插入图片描述

  6. common\metadata\field_conf_factory.py 文件中,导入 metadata.yaml 文件中使用的类

  7. common\metadata\processor_factory.py 文件中,导入第5步中的 processor 文件

  8. 通过 pytest,使用命令 pytest [要执行的测试文件或测试文件文件夹]

猜你喜欢

转载自blog.csdn.net/weixin_45605541/article/details/131705209