1
0
Files
PPTX/openspec/changes/archive/2026-03-02-add-comprehensive-tests/specs/integration-tests/spec.md
lanyuanxiaoyao ab2510a400 test: add comprehensive pytest test suite
Add complete test infrastructure for yaml2pptx project with 245+ tests
covering unit, integration, and end-to-end scenarios.

Test structure:
- Unit tests: elements, template system, validators, loaders, utils
- Integration tests: presentation and rendering flows
- E2E tests: CLI commands (convert, check, preview)

Key features:
- PptxFileValidator for Level 2 PPTX validation (file structure,
  element count, content matching, position tolerance)
- Comprehensive fixtures for test data consistency
- Mock-based testing for external dependencies
- Test images generated with PIL/Pillow
- Boundary case coverage for edge scenarios

Dependencies added:
- pytest, pytest-cov, pytest-mock
- pillow (for test image generation)

Documentation updated:
- README.md: test running instructions
- README_DEV.md: test development guide

Co-authored-by: OpenSpec change: add-comprehensive-tests
2026-03-02 23:11:34 +08:00

2.7 KiB

ADDED Requirements

Requirement: Presentation 类集成测试

系统 SHALL 提供 Presentation 类的集成测试,验证模板加载和幻灯片渲染。

Scenario: 幻灯片渲染

  • WHEN 调用 Presentation.render_slide() 并传入幻灯片数据
  • THEN 返回渲染后的元素列表
  • AND 模板变量被正确替换

Scenario: 模板缓存

  • WHEN 多次调用 Presentation.get_template() 并使用相同模板名
  • THEN 返回缓存的 Template 实例

Scenario: 模板变量传递

  • WHEN 幻灯片使用模板并提供 vars
  • THEN 变量被正确传递给模板并渲染

Requirement: 渲染流程集成测试

系统 SHALL 提供完整的 YAML 到 PPTX 渲染流程测试。

Scenario: 完整渲染流程

  • WHEN 从 YAML 文件加载演示文稿并生成 PPTX
  • THEN PPTX 文件成功生成
  • AND 文件包含正确数量的幻灯片
  • AND 每张幻灯片包含正确的元素

Scenario: 文本元素渲染

  • WHEN 渲染包含文本元素的幻灯片
  • THEN 生成的 PPTX 包含文本框
  • AND 文本内容、字体、颜色、对齐方式正确

Scenario: 图片元素渲染

  • WHEN 渲染包含图片元素的幻灯片
  • THEN 生成的 PPTX 包含图片
  • AND 图片位置和尺寸正确

Scenario: 形状元素渲染

  • WHEN 渲染包含形状元素的幻灯片
  • THEN 生成的 PPTX 包含形状
  • AND 形状类型、填充、边框正确

Scenario: 表格元素渲染

  • WHEN 渲染包含表格元素的幻灯片
  • THEN 生成的 PPTX 包含表格
  • AND 表格行列数、内容、样式正确

Scenario: 背景渲染

  • WHEN 渲染包含背景的幻灯片
  • THEN 生成的 PPTX 幻灯片背景正确设置

Scenario: 模板幻灯片渲染

  • WHEN 渲染使用模板的幻灯片
  • THEN 模板被正确加载和渲染
  • AND 模板变量被正确替换

Requirement: 验证流程集成测试

系统 SHALL 提供完整验证流程的集成测试。

Scenario: 完整验证流程

  • WHEN 调用 Validator.validate() 并传入有效 YAML 文件
  • THEN 返回 valid=True 的 ValidationResult
  • AND errors 列表为空

Scenario: 多错误收集

  • WHEN YAML 文件包含多个错误
  • THEN ValidationResult 包含所有发现的错误
  • AND 每个错误包含正确的位置信息

Scenario: 错误和警告分类

  • WHEN YAML 文件包含错误和警告
  • THEN ValidationResult 分别将问题分类到 errors 和 warnings

Scenario: 验证结果格式化

  • WHEN 调用 ValidationResult.format_output()
  • THEN 返回格式化的字符串
  • AND 包含错误、警告、提示的分级显示