2017-03-01 51 views
1

执行Django的信号,我创造一些Django的试验和测试的人需要尽快发布数据特定URL作为新的模式被创建或更新,我使用djnago信号,派遣他们在我的models.py文件中。Django的单元测试不是从原来的模式

现在,当我创建新的对象或壳修改现有的对象,我得到这个职位的要求与规定的数据,因此工作完全没问题的目标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添加任何东西测试是为了从测试中发出信号?

任何帮助,将不胜感激。

感谢

回答

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

哪里productobject.save()?我看到你打电话给alertobject.save()

使用productobject.save(),它应该工作的罚款。

+0

没关系,这是一个错字,我们对此深感抱歉,我已经编辑后 – Nik391

+0

现在发生了什么?你的断言相关代码在哪里? – masnun

+0

所以,当我创建的测试模型对象它不是调度出于某种原因的信号,断言代码尚未实现,因为我还没有得到任何POST请求对象之后的目标URL被创建的,只要它可以做发布请求我可以实现一些断言来验证 – Nik391