1
0
Files
PPTX/openspec/changes/archive/2026-03-02-add-comprehensive-tests/specs/pptx-validation/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.4 KiB

ADDED Requirements

Requirement: PPTX 文件验证工具

系统 SHALL 提供 PPTX 文件验证工具类,支持文件级别、幻灯片级别、元素级别的验证。

Scenario: 文件级别验证

  • WHEN 验证生成的 PPTX 文件
  • THEN 文件存在且大小大于 0
  • AND 文件可以被 python-pptx 打开

Scenario: 幻灯片数量验证

  • WHEN 验证 PPTX 文件
  • THEN 幻灯片数量与预期一致

Scenario: 幻灯片尺寸验证

  • WHEN 验证 16:9 PPTX 文件
  • THEN 幻灯片宽度为 10 英寸,高度为 5.625 英寸
  • AND 验证 4:3 PPTX 文件时,高度为 7.5 英寸

Scenario: 文本元素验证

  • WHEN 验证包含文本的幻灯片
  • THEN 找到文本框元素
  • AND 文本内容与预期一致
  • AND 字体大小、颜色、对齐方式正确
  • AND 位置在合理范围内(允许 0.1 英寸误差)

Scenario: 图片元素验证

  • WHEN 验证包含图片的幻灯片
  • THEN 找到图片元素
  • AND 图片尺寸和位置与预期一致
  • AND 位置在合理范围内

Scenario: 形状元素验证

  • WHEN 验证包含形状的幻灯片
  • THEN 找到形状元素
  • AND 形状类型正确
  • AND 填充颜色和边框样式正确
  • AND 位置在合理范围内

Scenario: 表格元素验证

  • WHEN 验证包含表格的幻灯片
  • THEN 找到表格元素
  • AND 行列数与预期一致
  • AND 单元格内容与预期一致
  • AND 表头样式正确应用

Scenario: 背景验证

  • WHEN 验证包含背景色的幻灯片
  • THEN 幻灯片背景颜色与预期一致

Scenario: 元素数量验证

  • WHEN 验证幻灯片
  • THEN 元素数量与预期一致
  • AND 元素类型分布正确

Scenario: 位置范围验证

  • WHEN 验证元素位置
  • THEN 元素位置在幻灯片范围内
  • AND 允许 0.1 英寸的容忍误差

Requirement: 验证辅助函数

系统 SHALL 提供验证辅助函数,简化测试代码。

Scenario: 颜色值比较

  • WHEN 比较 PPTX 颜色与预期颜色
  • THEN 验证辅助函数正确比较 RGB 值
  • AND 考虑颜色转换误差

Scenario: 位置比较

  • WHEN 比较元素位置与预期位置
  • THEN 验证辅助函数考虑容忍度

Scenario: 批量验证

  • WHEN 一次验证多个属性
  • THEN 验证辅助函数返回所有验证结果
  • AND 包含详细的失败信息