2017-03-01 56 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