循环不会迭代工厂男孩 class
the loop does not iterate on factory boy class
我正在使用 factory boy 来测试我的用户(客户)。我为我的客户用户创建了 class UserFactoryCustomer。
# factories.py
class UserFactoryCustomer(factory.django.DjangoModelFactory):
class Meta:
model = User
django_get_or_create = ('first_name', 'last_name', 'username', 'email', 'user_type', 'balance')
first_name = 'Ahmed'
last_name = 'Asadov'
username = factory.LazyAttribute(lambda o: slugify(o.first_name + '.' + o.last_name))
email = factory.LazyAttribute(lambda a: '{0}.{1}@example.com'.format(a.first_name, a.last_name).lower())
user_type = 1
balance = 10000.00
# test_serializers.py
class ApiSerilizerTestCase(TestCase):
def test_get_status_code_200(self):
customers = factories.UserFactoryExecutor.objects.all()
for customer in customers:
self.assertEqual(customer.get('username').status_code, 200)
我弄错了
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..E
======================================================================
ERROR: test_get_status_code_200 (tests.test_serializers.ApiSerilizerTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/heartprogrammer/Desktop/freelance-with-api/freelance/tests/test_serializers.py", line 20, in test_get_status_code_200
customers = factories.UserFactoryExecutor.objects.all()
AttributeError: type object 'UserFactoryExecutor' has no attribute 'objects'
----------------------------------------------------------------------
Ran 3 tests in 0.246s
FAILED (errors=1)
我想带我所有在 class 和 UserFactoryCustomer 中的客户来测试他们
当运行django中的TestCase时,使用的数据库是一个临时数据库,与生产中使用的数据库不同。
这意味着您无法查询数据库中的所有用户实例。
UserFactoryCustomer 没有 objects
属性,因为它不是 django 模型 class。相反,您可以使用它在测试数据库中创建用户模型的实例,并使用 User.objects.all()
获取它们
要创建此类实例,请参阅 documentation
我正在使用 factory boy 来测试我的用户(客户)。我为我的客户用户创建了 class UserFactoryCustomer。
# factories.py
class UserFactoryCustomer(factory.django.DjangoModelFactory):
class Meta:
model = User
django_get_or_create = ('first_name', 'last_name', 'username', 'email', 'user_type', 'balance')
first_name = 'Ahmed'
last_name = 'Asadov'
username = factory.LazyAttribute(lambda o: slugify(o.first_name + '.' + o.last_name))
email = factory.LazyAttribute(lambda a: '{0}.{1}@example.com'.format(a.first_name, a.last_name).lower())
user_type = 1
balance = 10000.00
# test_serializers.py
class ApiSerilizerTestCase(TestCase):
def test_get_status_code_200(self):
customers = factories.UserFactoryExecutor.objects.all()
for customer in customers:
self.assertEqual(customer.get('username').status_code, 200)
我弄错了
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..E
======================================================================
ERROR: test_get_status_code_200 (tests.test_serializers.ApiSerilizerTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/heartprogrammer/Desktop/freelance-with-api/freelance/tests/test_serializers.py", line 20, in test_get_status_code_200
customers = factories.UserFactoryExecutor.objects.all()
AttributeError: type object 'UserFactoryExecutor' has no attribute 'objects'
----------------------------------------------------------------------
Ran 3 tests in 0.246s
FAILED (errors=1)
我想带我所有在 class 和 UserFactoryCustomer 中的客户来测试他们
当运行django中的TestCase时,使用的数据库是一个临时数据库,与生产中使用的数据库不同。 这意味着您无法查询数据库中的所有用户实例。
UserFactoryCustomer 没有 objects
属性,因为它不是 django 模型 class。相反,您可以使用它在测试数据库中创建用户模型的实例,并使用 User.objects.all()
要创建此类实例,请参阅 documentation