tests.core package

Submodules

tests.core.test_base_sentence_generator module

测试 BaseSentenceGenerator 基类

class tests.core.test_base_sentence_generator.ConcreteSentenceGenerator(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

用于测试的具体生成器实现

property category: str

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Background': {'format': 'scene {value}', 'translate_types': ['Background', 'Scene']}, 'Music': {'format': 'play music {value}', 'translate_type': 'Music'}, 'Speaker': {'translate_type': 'Speaker'}, 'Volume': {'default': '100', 'format': 'volume {value}'}}
process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_base_sentence_generator.TestBaseSentenceGenerator[源代码]

基类:object

测试 BaseSentenceGenerator 基类

generator(mock_translator, mock_config)[源代码]

创建测试生成器实例

mock_config()[源代码]

创建模拟的引擎配置

mock_translator()[源代码]

创建模拟的翻译器

test_can_process(generator, data, expected)[源代码]

测试 can_process 方法

test_category_property(generator)[源代码]

测试 category 属性

test_do_translate_empty_value(generator, mock_translator)[源代码]

测试翻译空值

test_do_translate_multiple_types(generator, mock_translator)[源代码]

测试翻译多类型参数

test_do_translate_no_config(generator, mock_translator)[源代码]

测试翻译没有配置的参数

test_do_translate_preserves_original(generator)[源代码]

测试翻译不修改原始数据

test_do_translate_single_type(generator, mock_translator)[源代码]

测试翻译单一类型参数

test_exists_param(generator, param_name, data, expected)[源代码]

测试 exists_param 方法

test_get_format_in_config(generator, param_name, expected)[源代码]

测试获取格式字符串

test_get_int(generator, value, expected)[源代码]

测试 get_int 方法

test_get_sentence(generator, param_name, data, use_default, expected)[源代码]

测试 get_sentence 方法

test_get_value(generator, param_name, data, use_default, expected)[源代码]

测试 get_value 方法

test_init(generator, mock_translator, mock_config)[源代码]

测试初始化

test_priority_default(generator)[源代码]

测试默认优先级

test_process_method(generator)[源代码]

测试 process 方法

test_process_with_empty_data(generator)[源代码]

测试 process 方法(空数据)

test_repr(generator)[源代码]

测试字符串表示

class tests.core.test_base_sentence_generator.TestPriorityExtraction[源代码]

基类:object

测试优先级提取功能

mock_config()[源代码]

创建模拟的引擎配置

mock_translator()[源代码]

创建模拟的翻译器

test_priority_with_prefix(mock_translator, mock_config)[源代码]

测试带数字前缀的优先级

test_priority_without_prefix(mock_translator, mock_config)[源代码]

测试不带数字前缀的优先级

class tests.core.test_base_sentence_generator.TestTranslateMultipleTypes[源代码]

基类:object

测试多类型翻译的详细场景

generator_with_multi_types()[源代码]

创建支持多类型翻译的生成器

test_translate_first_match(generator_with_multi_types)[源代码]

测试翻译第一个匹配的类型

test_translate_no_match(generator_with_multi_types)[源代码]

测试没有匹配的类型

test_translate_second_match(generator_with_multi_types)[源代码]

测试翻译第二个匹配的类型

tests.core.test_config_manager module

测试 ConfigManager 模块

class tests.core.test_config_manager.TestAppConfig[源代码]

基类:object

测试 AppConfig 类

test_create_default_invalid_engine()[源代码]

测试创建不支持的引擎配置

test_create_default_naninovel()[源代码]

测试创建默认 Naninovel 配置

test_create_default_renpy()[源代码]

测试创建默认 Ren'Py 配置

test_default_config()[源代码]

测试默认配置

test_from_dict_invalid_engine()[源代码]

测试从字典创建不支持的引擎配置

test_from_dict_minimal()[源代码]

测试从最小字典创建配置

test_from_dict_with_engine_string()[源代码]

测试从字符串引擎类型创建配置

test_from_dict_with_naninovel_engine()[源代码]

测试从字典创建 Naninovel 引擎配置

test_from_dict_with_paths()[源代码]

测试从包含路径的字典创建配置

test_from_dict_with_processing()[源代码]

测试从包含处理配置的字典创建配置

test_from_dict_with_renpy_engine()[源代码]

测试从字典创建 Ren'Py 引擎配置

test_from_file_invalid_format(tmp_path)[源代码]

测试从不支持的文件格式加载配置

test_from_file_json(tmp_path)[源代码]

测试从 JSON 文件加载配置

test_from_file_yaml(tmp_path)[源代码]

测试从 YAML 文件加载配置

test_from_file_yml_extension(tmp_path)[源代码]

测试从 .yml 文件加载配置

test_roundtrip_json(tmp_path)[源代码]

测试 JSON 配置的往返转换

test_roundtrip_yaml(tmp_path)[源代码]

测试 YAML 配置的往返转换

test_to_file_json(tmp_path)[源代码]

测试保存配置到 JSON 文件

test_to_file_yaml(tmp_path)[源代码]

测试保存配置到 YAML 文件

test_to_file_yml_extension(tmp_path)[源代码]

测试保存配置到 .yml 文件

class tests.core.test_config_manager.TestEngineConfig[源代码]

基类:object

测试 EngineConfig 基类

test_get_output_filename()[源代码]

测试生成输出文件名

class tests.core.test_config_manager.TestNaninovelConfig[源代码]

基类:object

测试 NaninovelConfig 类

test_default_config()[源代码]

测试默认配置

test_get_output_filename()[源代码]

测试生成输出文件名

class tests.core.test_config_manager.TestPathConfig[源代码]

基类:object

测试 PathConfig 类

test_custom_paths()[源代码]

测试自定义路径

test_default_paths()[源代码]

测试默认路径

test_ensure_dirs_exist(tmp_path)[源代码]

测试创建目录

test_post_init_converts_to_path()[源代码]

测试 __post_init__ 将字符串转换为 Path 对象

class tests.core.test_config_manager.TestProcessingConfig[源代码]

基类:object

测试 ProcessingConfig 类

test_custom_config()[源代码]

测试自定义配置

test_default_config()[源代码]

测试默认配置

class tests.core.test_config_manager.TestRenpyConfig[源代码]

基类:object

测试 RenpyConfig 类

test_default_config()[源代码]

测试默认配置

test_get_output_filename()[源代码]

测试生成输出文件名

tests.core.test_constants module

测试 constants 模块

class tests.core.test_constants.TestDefaultConstants[源代码]

基类:object

测试默认常量

test_default_constants(constant, expected_value, expected_type)[源代码]

测试默认常量的值和类型

class tests.core.test_constants.TestEnumComparison[源代码]

基类:object

测试枚举比较功能

test_enum_equality(enum1, enum2, should_equal)[源代码]

测试枚举相等性比较

test_enum_string_comparison(enum_member, string_value)[源代码]

测试枚举与字符串比较

class tests.core.test_constants.TestEnumIteration[源代码]

基类:object

测试枚举迭代功能

test_enum_iteration(enum_class, expected_members, expected_count)[源代码]

测试枚举迭代功能

class tests.core.test_constants.TestEnumMembers[源代码]

基类:object

测试枚举成员完整性

test_enum_members(enum_class, expected_values, expected_count)[源代码]

测试枚举包含所有预期成员

class tests.core.test_constants.TestEnumValues[源代码]

基类:object

测试所有枚举的值和类型

test_enum_values_and_types(enum_member, expected_value)[源代码]

测试枚举成员的值和类型

class tests.core.test_constants.TestFileExtensions[源代码]

基类:object

测试文件扩展名常量

test_engine_extensions(extension, expected_value)[源代码]

测试引擎文件扩展名

test_excel_extensions()[源代码]

测试 Excel 文件扩展名

class tests.core.test_constants.TestTempFilePrefix[源代码]

基类:object

测试临时文件前缀

test_temp_file_prefix()[源代码]

测试临时文件前缀

tests.core.test_engine_processor module

测试 engine_processor 模块

class tests.core.test_engine_processor.BrokenGenerator(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

会抛出异常的生成器

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Broken': {'format': '{value}'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_engine_processor.MockDialogueGenerator(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试对话生成器

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Speaker': {'format': '{value}'}, 'Text': {'format': '"{value}"'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_engine_processor.MockMusicGenerator(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试音乐生成器

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Music': {'format': 'play music {value}'}, 'Sound': {'format': 'play sound {value}'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_engine_processor.MockSceneGenerator(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试场景生成器

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Background': {'format': 'scene {value}'}, 'Character': {'format': 'show {value}'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_engine_processor.TestEngineProcessor[源代码]

基类:object

测试 EngineProcessor 类

mock_config()[源代码]

创建模拟配置

mock_generator_manager()[源代码]

创建模拟生成器管理器

mock_translator()[源代码]

创建模拟翻译器

processor(mock_translator, mock_config)[源代码]

创建处理器实例

test_build_generator_param_map(processor, mock_translator, mock_config)[源代码]

测试构建生成器参数映射

test_build_generator_param_map_no_param_config(processor, mock_translator, mock_config)[源代码]

测试构建参数映射(生成器没有 param_config)

test_build_generator_param_map_none_param_config(processor, mock_translator, mock_config)[源代码]

测试构建参数映射(param_config 为 None)

test_init(mock_translator, mock_config)[源代码]

测试初始化

test_setup(processor, mock_translator, mock_config)[源代码]

测试设置处理器

class tests.core.test_engine_processor.TestEngineProcessorIntegration[源代码]

基类:object

集成测试:测试完整的工作流程

mock_config()[源代码]

创建模拟配置

mock_translator()[源代码]

创建模拟翻译器

test_full_workflow(mock_translator, mock_config)[源代码]

测试完整工作流程

test_multiple_rows_processing(mock_translator, mock_config)[源代码]

测试处理多行数据

class tests.core.test_engine_processor.TestPipelineInfo[源代码]

基类:object

测试管道信息相关方法

mock_config()[源代码]

创建模拟配置

mock_translator()[源代码]

创建模拟翻译器

processor_with_generators(mock_translator, mock_config)[源代码]

创建带有生成器的处理器

test_get_generator_manager(processor_with_generators)[源代码]

测试获取生成器管理器

test_get_pipeline_info(processor_with_generators)[源代码]

测试获取管道信息

test_get_pipeline_info_empty(mock_translator, mock_config)[源代码]

测试获取空管道信息

test_get_pipeline_info_with_category(mock_translator, mock_config)[源代码]

测试获取管道信息(验证 category 正确获取)

class tests.core.test_engine_processor.TestProcessRow[源代码]

基类:object

测试 process_row 方法

mock_config()[源代码]

创建模拟配置

mock_translator()[源代码]

创建模拟翻译器

processor_with_generators(mock_translator, mock_config)[源代码]

创建带有生成器的处理器

test_process_row_empty_row(processor_with_generators)[源代码]

测试处理空行

test_process_row_generator_returns_empty(mock_translator, mock_config, return_value, category_name)[源代码]

测试生成器返回 None 或空列表的情况

test_process_row_with_all_params(processor_with_generators)[源代码]

测试处理包含所有参数的行

test_process_row_with_empty_values(processor_with_generators)[源代码]

测试处理包含空值的行

test_process_row_with_generator_error(mock_translator, mock_config)[源代码]

测试生成器抛出异常时的处理

test_process_row_with_nan_values(processor_with_generators)[源代码]

测试处理包含 NaN 值的行

test_process_row_with_no_matching_params(processor_with_generators)[源代码]

测试处理没有匹配参数的行

test_process_row_with_partial_params(processor_with_generators)[源代码]

测试处理部分参数的行

tests.core.test_engine_registry module

测试 engine_registry 模块

class tests.core.test_engine_registry.TestEngineMetadata[源代码]

基类:object

测试 EngineMetadata 类

test_create_metadata()[源代码]

测试创建引擎元数据

test_create_metadata_without_optional_fields()[源代码]

测试创建引擎元数据(不包含可选字段)

class tests.core.test_engine_registry.TestEngineRegistry[源代码]

基类:object

测试 EngineRegistry 类

reset_registry()[源代码]

每个测试前重置注册表

test_get_registered_engine()[源代码]

测试获取已注册引擎

test_get_unregistered_engine()[源代码]

测试获取未注册引擎(应该抛出异常)

test_is_registered_false()[源代码]

测试检查未注册引擎

test_is_registered_true()[源代码]

测试检查已注册引擎

test_list_engines_empty()[源代码]

测试列出引擎(空注册表)

test_list_engines_returns_copy()[源代码]

测试 list_engines 返回副本(不影响原注册表)

test_list_engines_with_multiple_engines()[源代码]

测试列出多个引擎

test_register_duplicate_engine()[源代码]

测试注册重复引擎(应该覆盖)

test_register_engine()[源代码]

测试注册引擎

test_reset_registry()[源代码]

测试重置注册表

test_singleton_pattern()[源代码]

测试单例模式

class tests.core.test_engine_registry.TestEngineRegistryIntegration[源代码]

基类:object

集成测试:测试完整的引擎注册和使用流程

reset_registry()[源代码]

每个测试前重置注册表

test_full_workflow()[源代码]

测试完整工作流程

test_multiple_engines_workflow()[源代码]

测试多引擎工作流程

class tests.core.test_engine_registry.TestRegisterEngineDecorator[源代码]

基类:object

测试 register_engine 装饰器

reset_registry()[源代码]

每个测试前重置注册表

test_register_engine_decorator_basic()[源代码]

测试基础装饰器功能

test_register_engine_decorator_preserves_function()[源代码]

测试装饰器保留原函数功能

test_register_engine_decorator_with_all_params()[源代码]

测试装饰器包含所有参数

test_register_multiple_engines_with_decorator()[源代码]

测试使用装饰器注册多个引擎

tests.core.test_param_translator module

测试 ParamTranslator 类

class tests.core.test_param_translator.TestParamTranslator[源代码]

基类:object

测试 ParamTranslator 类

mock_param_mappings_file(tmp_path)[源代码]

创建模拟的参数映射文件

mock_varient_mappings_file(tmp_path)[源代码]

创建模拟的差分参数映射文件

test_get_available_types(translator)[源代码]

测试获取可用参数类型

test_get_params_for_type(translator, param_type, expected_result)[源代码]

测试获取指定类型的所有原始参数

test_get_translations_for_type(translator, param_type, expected_result)[源代码]

测试获取指定类型的所有翻译后参数

test_has_mapping(translator, param_type, param_value, expected)[源代码]

测试检查映射是否存在

test_init_success(translator)[源代码]

测试成功初始化

test_init_with_missing_files(tmp_path)[源代码]

测试文件不存在时的初始化

test_special_characters_in_param(tmp_path)[源代码]

测试包含特殊字符的参数

test_translate(translator, param_type, param_value, expected)[源代码]

测试参数翻译

test_translate_batch(translator)[源代码]

测试批量翻译

test_translate_batch_with_missing_params(translator)[源代码]

测试批量翻译包含不存在的参数

test_translate_varient(translator, param_value, role, expected)[源代码]

测试差分参数翻译

translator(mock_param_mappings_file, mock_varient_mappings_file)[源代码]

创建 ParamTranslator 实例

tests.core.test_sentence_generator_manager module

测试 sentence_generator_manager 模块

class tests.core.test_sentence_generator_manager.MockGenerator1(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试生成器 1

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Music': {'format': 'play music {value}'}, 'Sound': {'format': 'play sound {value}'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_sentence_generator_manager.MockGenerator2(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试生成器 2

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

param_config: Dict[str, Dict] = {'Background': {'format': 'scene {value}'}, 'Character': {'format': 'show {value}'}}
property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_sentence_generator_manager.MockGenerator3(translator: ParamTranslator, engine_config: EngineConfig)[源代码]

基类:BaseSentenceGenerator

测试生成器 3(没有 param_config)

property category

返回生成器处理的句子类型

返回:

类型名称

返回类型:

str

property priority

生成器执行优先级

返回:

优先级数字,越小越先执行

返回类型:

int

process(data)[源代码]

处理参数并生成命令(管道模式)

参数:

data -- 参数字典

返回:

生成的命令列表,如果无法处理则返回 None

返回类型:

Optional[List[str]]

class tests.core.test_sentence_generator_manager.TestCreateGeneratorInstances[源代码]

基类:object

测试创建生成器实例

manager()[源代码]

创建管理器实例

mock_config()[源代码]

创建模拟配置

mock_translator()[源代码]

创建模拟翻译器

test_create_generator_instances(manager, mock_translator, mock_config)[源代码]

测试创建生成器实例

test_create_generator_instances_calls_load(manager, mock_translator, mock_config)[源代码]

测试 create_generator_instances 会调用 load

test_create_generator_instances_empty(manager, mock_translator, mock_config)[源代码]

测试没有生成器类时

test_create_generator_instances_sorted_by_priority(manager, mock_translator, mock_config)[源代码]

测试生成器按优先级排序

test_create_generator_instances_with_error(manager, mock_translator, mock_config)[源代码]

测试创建实例时出错

class tests.core.test_sentence_generator_manager.TestDiscoverGeneratorClasses[源代码]

基类:object

测试发现生成器类

manager()[源代码]

创建管理器实例

test_discover_generator_classes_import_error(manager)[源代码]

测试导入包失败

test_discover_generator_classes_manual_add(manager)[源代码]

测试手动添加生成器类(模拟发现过程)

test_discover_generator_classes_module_import_error(manager)[源代码]

测试导入模块失败(应该记录错误但继续)

test_discover_generator_classes_skip_non_generator_modules(manager)[源代码]

测试跳过不以 _generator 结尾的模块

test_discover_generator_classes_skip_packages(manager)[源代码]

测试跳过包(只处理模块)

class tests.core.test_sentence_generator_manager.TestSentenceGeneratorManager[源代码]

基类:object

测试 SentenceGeneratorManager 类

manager()[源代码]

创建管理器实例

test_collect_param_configs(manager)[源代码]

测试收集参数配置

test_collect_param_configs_empty(manager)[源代码]

测试收集空配置

test_collect_param_configs_no_param_config(manager)[源代码]

测试生成器没有 param_config 属性

test_get_all_param_names(manager)[源代码]

测试获取所有参数名称

test_get_all_param_names_calls_load(manager)[源代码]

测试 get_all_param_names 会调用 load

test_get_all_param_names_empty(manager)[源代码]

测试获取空参数列表

test_init(manager)[源代码]

测试初始化

test_is_generator_class(manager, obj, expected)[源代码]

测试 _is_generator_class 方法

test_is_generator_class_not_subclass(manager)[源代码]

测试非生成器子类

test_load_only_once(manager)[源代码]

测试 load 方法只执行一次

class tests.core.test_sentence_generator_manager.TestSentenceGeneratorManagerIntegration[源代码]

基类:object

集成测试:测试完整的工作流程

manager()[源代码]

创建管理器实例

mock_config()[源代码]

创建模拟配置

mock_translator()[源代码]

创建模拟翻译器

test_full_workflow(manager, mock_translator, mock_config)[源代码]

测试完整工作流程

test_load_idempotent(manager)[源代码]

测试 load 方法的幂等性

test_param_configs_merge(manager)[源代码]

测试参数配置合并

Module contents

Core 模块测试