gpt4 book ai didi

python - 从网站生成的单元测试 pdf

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:08 26 4
gpt4 key购买 nike

我正在编写一个包,用于生成 pdf 文件,方法是将一些数据发布到网站并从数据中检索生成的 pdf。

我的问题是单元测试。因此,我尝试将已知数据集发布到网站上,检索 pdf 并将其与我知道很好的 ​​pdf 进行比较。这工作正常,但是 pdf 中有一个时间戳,这意味着第二天它就不起作用了。

正如我所见,我有三个选择。

  • 一是去掉 pdf 中的时间戳。从我的谷歌搜索来看,这似乎相当困难。它可能类似于 pdf 到图像的转换,然后清空时间戳。然后与引用文件进行比较。

  • 选项二是创建一个模拟网站,然后我可以用它来生成模拟 pdf。不过,这个选项对我来说似乎有点奇怪 - 因为我不会测试与网站的实际连接,如果我破坏了连接中的某些内容,我就不会捕获该错误。

  • 第三个是检查我是否检索了一些看似 pdf 的数据,然后完成它。这样,如果网站更改了生成的 pdf 中的逗号,我也可以避开。

所以,我想我的问题有两个。 1:pdf 到图像到消隐方法有多困难,2:从单元测试的角度来看,制作一个模拟网站或只是测试我是否获得一些类似 pdf 的数据是否是更好的方法。

最佳答案

  • 选项 4:找出时间戳在 pdf 中的位置,并比较前后的字节

例如,如果时间戳位于偏移量 11 且长度为两个字节:

with open('reference.pdf') as rf:
reference_data = rf.read()
with open('pdf_from_website.pdf') as wf:
website_data = wf.read()
self.assertEqual(reference_data[:11], website_data[:11])
self.assertEqual(reference_data[13:], website_data[13:])

我不熟悉 pdf 文件的内部结构,因此这可能不起作用。不过,您可以使用 diff 来查看差异所在并尝试。

对于你的第二个问题:最好能够测试返回的pdf是否有效并且具有应有的内容。

关于python - 从网站生成的单元测试 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com