Example #1
0
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',
        )
Example #2
0
    def generate_product_data(cls):
        data = {
            "name": factories.FuzzyText('name').fuzz(),
            "description": factories.FuzzyText('description').fuzz(),
            "price": factories.FuzzyFloat(100, 200).fuzz(),
            "quantity": factories.FuzzyInteger(100, 200).fuzz(),
            "sold_quantity": factories.FuzzyInteger(100, 200).fuzz(),
            "category": CategoryFactory().id,
            "gender": GenderFactory().id,
            "base_colour": BaseColourFactory().id,
            "season": SeasonFactory().id,
            "usage": UsageFactory().id,
            "article_type": ArticleTypeFactory().id
        }

        return data
Example #3
0
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',
        )
Example #4
0
    def test_post_add_to_cart_attribute_error_bad_request(self):
        product_obj = ProductFactory()
        data = {
            'wrong_product': product_obj.id,
            'quantity': factories.FuzzyInteger(1, 10).fuzz()
        }

        response = self.post_json(data=data)
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.has_attribute_errors(response)
Example #5
0
    def _test_add_product_to_cart(self) -> None:
        """
        Helper method to test adding product to cart.
        """
        product_obj = ProductFactory()
        data = {
            'product': product_obj.id,
            'quantity': factories.FuzzyInteger(1, 10).fuzz()
        }

        resp = self.post_json(data=data)
        resp_data = resp.data
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertEqual(resp_data['success'], True)
Example #6
0
class OrderItemFactory(factories.ModelFactory):
    # Factory data for OrderItem model.

    order = factories.SubFactory(OrderFactory)
    product = factories.SubFactory(ProductFactory)
    quantity = factories.FuzzyInteger(10, 50)

    class Meta:
        model = OrderItem
        django_get_or_create = (
            'order',
            'product',
            'quantity',
        )
Example #7
0
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',
        )