Django单元测试不执行原始模型

时间:2017-03-01 05:47:57

标签: python django

我正在创建一些django测试,并且只要新模型被创建或更新,我就会将数据发布到某个URL,并且我正在使用djnago信号在models.py文件中调度它们。

现在,当我从shell创建新对象或修改现有对象时,我会使用指定数据获取对目标URL的发布请求,从而完全正常工作。

但是,当我在django测试中编写用于创建或更新模型的语句时,它没有做任何事情,它只是在别名数据库中创建对象,但实际上并没有向目标URL发送任何信号

以下是我的django测试的样子:

class ProductEndpointTests(APITestCase):

    def test_product_create(self):

        productobject = Product.objects.create(title="pr1",
                             description="good deal",
                             price=19.99)
        productobject.save()

Models.py:

class Product(models.Model):
    title = models.CharField(max_length=120)
    description = models.TextField(blank=True, null=True)
    price = models.DecimalField(decimal_places=2, max_digits=20)

def product_post_save(sender, instance, created, *args, **kwargs):
    product = instance
    # Post data to given url

post_save.connect(product_post_save, sender=Product)

我有什么遗漏或者我需要在django测试中添加任何内容以便从测试中发送信号吗?

对此有任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

 productobject = Product.objects.create(title="pr1",
                             description="good deal",
                             price=19.99)
 alertobject.save()

productobject.save()在哪里?我看到你在呼唤alertobject.save()

使用productobject.save(),它应该可以正常工作。