假设我有一个包含以下内容的模块:
def main():
pass
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
我想为下半部分编写单元测试(我希望实现100%的覆盖率).我发现了runpy内置模块执行导入/ __name__设置机制,但我无法弄清楚如何模拟或以其他方式检查main()函数是否被调用.
这是我到目前为止所尝试的:
import runpy
import mock
@mock.patch('foobar.main')
def test_main(self, main):
runpy.run_module('foobar', run_name='__main__')
main.assert_called_once_with()
Run Code Online (Sandbox Code Playgroud) 我有一个 ReportLab 脚本,可以生成一个大型 PDF 文件(数千页)。这是通过一个简单的 for 循环完成的,该循环为每次迭代创建一个页面。
但是,由于 canvas.save() 会关闭文件以进行进一步编辑,因此我必须等到 for 循环完成才能保存。这意味着随着 PDF 在内存中的增长,我的 Python 进程的内存使用量会膨胀到大约 250MB - 从我的应用程序的角度来看,这似乎是不必要的。
有没有办法在不关闭编辑的情况下保存或刷新 ReportLab 画布?
我们正在构建使用基于位置的定价的服务.用户可以输入地址并查看其区域中的价格,这由各种服务器端算法确定.然后可以根据这些价格订购商品.
我想知道在这种情况下我们是否可以使用客户端地理编码(以避免达到Google Maps API使用限制),例如用户输入他的地址,浏览器使用JS库获取地理编码结果并将其包含在表单提交中.问题是用户可能会篡改表单提交,并可能将订单下达到他的地址,以获取适用于不同坐标集的价格.
我想听听你对如何确保这一点的建议.例如,如果地理编码结果可以某种方式签名以验证它没有被篡改,那将是惊人的吗?
python ×2
geocoding ×1
google-maps ×1
javascript ×1
mocking ×1
pdf ×1
reportlab ×1
security ×1
testing ×1
unit-testing ×1