django 测试 - 未创建模型实例

卢克

我在使用 Django 和 DRF 为测试类中的特定模型创建夹具时遇到问题。我正在使用model-mommy,但即使仅为该模型使用 Django ORM 创建单个实例也不起作用:

    from rest_framework.test import APIRequestFactory, APITestCase
    from model_mommy import mommy

    from api.v1 import views
    from company.models.models import CompanyUserProfile, ManagerRelation, DynamicRelation


    User = get_user_model()


    class APIViewsTestCase(APITestCase):

        @classmethod
        def setUpTestData(cls):
            supervisory_id = "1337"
            emp_group_id = "119"
            prd_scope_id = "1334"
            user = mommy.make(User)
            setattr(cls, 'user', user)
            company_user_profile_1 = mommy.make(CompanyUserProfile)
            requestor = mommy.make(
                CompanyUserProfile, is_manager=True,
                supervisory_id=supervisory_id, emp_group_id=emp_group_id,
                prd_scope_id=prd_scope_id, user=user
            )
            cls.user = user
            manager_relation = mommy.make(
                ManagerRelation, manager_id=requestor.id, mgr_type="Direct Mgr", _quantity=5
            )
            dynamic_relations = mommy.make(
                DynamicRelation,target_id=requestor.id, _quantity=5
            )

        def setUp(self) -> None:
            super().setUp()
            self.client.force_authenticate(user=self.user)

        def test_employee_view(self):
            CompanyUserProfile.objects.create(
                guid=uuid.uuid4(),
                csod_user_id='idcbijnccdocwocd', csod_username='djchbdcjnwdskjcn',
                id=3333
            )
            print('cup count:', CompanyUserProfile.objects.count())
            print('user count:', User.objects.count())
            print('m_rels count:', ManagerRelation.objects.count())
            print('d_rels count:', DynamicRelation.objects.count())
            rsp = self.client.get('/api/v1/employees/')
            self.assertEqual(rsp.status_code, HTTPStatus.OK)

但是CompanyUserProfile不会使用mommy.make创建记录CompanyUserProfile.objects.create

-- test run output
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
cup count: 0
user count: 1
m_rels count: 5
d_rels count: 5
Destroying test database for alias 'default'...

CompanyUserProfile继承自AbstractCornerstoneUserProfile(抽象基础模型),这是该模型与其他模型之间的主要区别。

知道什么是造成这种情况的根本原因吗?

卢克

更新:解决- > 100%是我的错,自定义ModelManagerCompanyUserProfile是排除上创建的对象CompanyUserProfile.objects.count()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Django中创建模型实例

Django 测试模型实例设置

Django:使用内置用户模型字段创建模型实例

Django - 创建用户时创建模型实例

Django测试客户端,不创建模型(正在使用--keepdb选项)

创建模型实例时在Django中出现TypeError

Django:在ValidationError上停止创建模型实例

django-filer上传会自动创建模型实例

创建模型实例时,Django会执行某些操作

Django-在创建另一个模型实例时自动创建模型实例

为什么我的Django工厂功能会在本地数据库中创建模型,而不是在测试数据库中创建模型?

Django测试模型属性

Django测试:如何测试实例是否属于模型对象集?

Django model_mommy模型实例未保存在Ajax测试中

在Django中创建模型

Django REST测试-如何指定在setUp函数中创建的模型实例的pk参数

Django测试用例测试模型失败

PyCharm未测试所有Django测试

Django使用表中的'__init__'函数创建模型的新实例,实例数据是错误的?

如何基于另一个模型的实例在Django中创建模型,但已过滤

在Django中创建模型实例时,如何获取模型的长度

如何在由ManyToManyField创建的Django中创建模型的实例对象

使用ImageField的Django测试模型

Django测试不会更新模型

测试Django和模型方法

Django测试未实现对象

Django测试设置未使用

Django:如何根据 json 文件中的数据创建模型的实例?

django - 通过遍历所有字段并分配值来创建模型的实例