Django测试客户端可以用于生产中的API调用吗?

时间:2011-01-01 23:26:58

标签: python django api django-testing

我正在构建一个基于Piston构建的API的Django应用程序。为了尽可能保持DRY和API完整,我希望我的内部应用程序可以调用API而不是模型(代理视图控制器类型为https://github.com/raganwald/homoiconic/blob/master/2010/10/vc_without_m.md但是所有在一个django现在安装)。所以基本设置是:

Model -> API -> Application -> User Client

我可以重载一些核心Piston类来为应用程序创建一个内部客户端接口,但我想知道我是否可以使用Django Test Client来完成同样的事情。因此,要创建一篇文章,而不是调用我将运行的模型:

from django.test.client import Client
c = Client()
article = c.post('/api/articles', {
  'title' : 'My Title',
  'content' : 'My Content'
})

我不应该使用测试客户端来执行此操作吗? (例如,性能)是否有更好的工具更适合这一特定目的?

1 个答案:

答案 0 :(得分:7)

在查看TestClient的代码之后,它似乎没有任何与测试相关的额外开销。相反,它只是作为内部请求的基本客户端。我将使用测试客户端作为内部客户端,并使用Piston的DjangoEmitter从API中获取模型对象。

只有测试才能判断内部请求机制是否过多地影响性能。