class ProductFactory(factories.ModelFactory): # Factory data for Product model. name = factories.Sequence(lambda n: 'Product name %03d' % n) price = factories.FuzzyFloat(1, 1000.0) quantity = factories.FuzzyInteger(50, 100) sold_quantity = factories.FuzzyInteger(10, 100) category = factories.SubFactory(CategoryFactory) gender = factories.SubFactory(GenderFactory) base_colour = factories.SubFactory(BaseColourFactory) season = factories.SubFactory(SeasonFactory) usage = factories.SubFactory(UsageFactory) is_published = factories.FuzzyChoice([True, False]) class Meta: model = Product django_get_or_create = ( 'name', 'price', 'quantity', 'sold_quantity', 'category', 'gender', 'base_colour', 'season', 'usage', 'is_published', )
class CouponFactory(factories.ModelFactory): # Factory data for Coupon model. reward = factories.SubFactory(RewardFactory) kind = factories.FuzzyChoice(CouponKindsEnum.values()) amount = factories.FuzzyInteger(10, 100) target_amount = factories.FuzzyInteger(300, 500) is_minimum_purchase = factories.FuzzyChoice([True, False]) class Meta: model = Coupon django_get_or_create = ( 'reward', 'kind', 'amount', 'target_amount', 'is_minimum_purchase', )
def test_get_list_orders_of_current_user_ok(self): order_objs = [ OrderFactory( user=self.authenticated_user, status=factories.FuzzyChoice( OrderStatusesEnum.values()).fuzz(), ) for _ in range(30) ] resp = self.get_json() self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual(len(order_objs), resp.data['count'])
class RewardFactory(factories.ModelFactory): # Factory data for Reward model. membership = factories.SubFactory(MembershipFactory) is_active = factories.FuzzyChoice([True, False]) class Meta: model = Reward django_get_or_create = ( 'membership', 'is_active', )
class EmailFactory(factories.ModelFactory): # Factory data for Membership model. email = factories.Faker('email') is_verified = factories.FuzzyChoice([True, False]) class Meta: model = Email django_get_or_create = ( 'email', 'is_verified', )
class OrderFactory(factories.ModelFactory): # Factory data for Order model. user = factories.SubFactory(UserFactory) status = factories.FuzzyChoice(OrderStatusesEnum.values()) total_amount = factories.FuzzyInteger(1000, 2000) class Meta: model = Order django_get_or_create = ( 'user', 'status', 'total_amount', )
def level(self): # Init membership level Command.handle(None) levels = MembershipLevel.objects.all() return factories.FuzzyChoice(levels).fuzz()