Django管理测试客户端文章中的M2m关系对象

时间:2018-11-02 19:00:05

标签: python django unit-testing many-to-many

我正在对具有 type results struct { target string output []string } ch := make(chan results, 10) 的模型进行django管理页面的单元测试。我的模型中有一个自定义的m2m-relations函数,因此我需要在管理页面上使用一些测试用例。

问题是我不知道如何使用clean为测试客户帖子创建有效内容字典。

models.py:

ManyToManyField

tests.py:

class Statistics(models.Model):
short_name = models.CharField(default=u"", max_length=200)
full_name = models.CharField(default=u"", max_length=200)
id = models.AutoField(primary_key=True)

class Query(models.Model):
url = models.CharField(default=u"", max_length=200)
query = models.TextField(default=u"")
id = models.AutoField(primary_key=True)
title_fi = models.CharField(default=u"", max_length=500)
statistics = models.ManyToManyField(Statistics, related_name='queries')

def clean(self):
    print("Query clean: ",self.__dict__)
    try:
        json_query = json.loads(self.query.replace("\'", "\""))
    except Exception:
        raise ValidationError(u'Väärin muodostettu query')

    if not get_data(self.url, json_query):
        raise ValidationError(u'Väärin muodostettu query tai query ei palauttanut lukua')

这不会通过,因为无法定义统计字段。 (如果我将response = self.client.post('/admin/key_values/query/add/', {'url': url, 'query': str(query),'title_fi':'fi'}, follow=True) 放在此处,则上述测试将通过,但这是我不想做的事情!)。 如何在测试用例中包含至少一个统计对象?

0 个答案:

没有答案