本文整理汇总了Python中lfs.tests.utils.RequestFactory类的典型用法代码示例。如果您正苦于以下问题:Python RequestFactory类的具体用法?Python RequestFactory怎么用?Python RequestFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RequestFactory类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_add_to_cart_not_in_stock
def test_add_to_cart_not_in_stock(self):
"""Try to add product to the cart which is not in stock.
"""
self.p1.active = True
self.p1.deliverable = True
self.p1.manage_stock_amount = True
self.p1.stock_amount = 0
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 2})
request.session = self.session
request.user = self.user
self.assertRaises(Http404, add_to_cart, request)
# But no message if product is ordered ...
self.p1.order_time = self.dt
self.p1.save()
result = add_to_cart(request)
self.failIf("message" in result.cookies)
# ... or LFS doesn't manage stock amount
self.p1.manage_stock_amount = False
self.p1.order_time = None
self.p1.save()
result = add_to_cart(request)
self.failIf("message" in result.cookies)
示例2: test_amount_4
def test_amount_4(self):
"""Manage stock amount; refresh to 2 but no product is there anymore.
"""
self.p1.manage_stock_amount = True
self.p1.stock_amount = 1
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Add product to cart
result = add_to_cart(request)
cart = lfs.cart.utils.get_cart(request)
self.assertEqual(cart.get_amount_of_items(), 1.0)
self.p1.stock_amount = 0
self.p1.save()
# Try to increase item to two, but there is no product in stock anymore
request = rf.post("/", {"product_id": self.p1.id, "amount-cart-item_%s" % cart.get_items()[0].id: 2})
request.session = self.session
request.user = self.user
# Refresh to amount of two is not possible
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "Sorry, but 'Product 1' is not available anymore.")
self.assertEqual(cart.get_amount_of_items(), 0.0)
示例3: test_amount_1
def test_amount_1(self):
"""Don't manage stock amount.
"""
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Add product to cart
add_to_cart(request)
cart = lfs.cart.utils.get_cart(request)
self.assertEqual(cart.get_amount_of_items(), 1.0)
# prepare shipping/payment methods
from lfs.payment.models import PaymentMethod
from lfs.shipping.models import ShippingMethod
pm = PaymentMethod.objects.create(name='pm')
sm = ShippingMethod.objects.create(name='sm')
# Refresh item amount
request = rf.post("/", {"product_id": self.p1.id, "amount-cart-item_%s" % cart.get_items()[0].id: 2,
"shipping_method": sm.pk, "payment_method": pm.pk})
request.session = self.session
request.user = self.user
refresh_cart(request)
self.assertEqual(cart.get_amount_of_items(), 2.0)
示例4: test_add_to_cart_stock_2
def test_add_to_cart_stock_2(self):
"""Try to add product three times to cart if only two is in stock.
"""
self.p1.active = True
self.p1.deliverable = True
self.p1.manage_stock_amount = True
self.p1.stock_amount = 2
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 3})
request.session = self.session
request.user = self.user
# This need to result in a message to the customer
result = add_to_cart(request)
self.failIf(result.cookies.get("message").__str__().find("Sorry%2C%20but%20%27Product%201%27%20is%20only%202.0%20times%20available.") == -1)
# But no message if product is ordered ...
self.p1.order_time = self.dt
self.p1.save()
result = add_to_cart(request)
self.failIf("message" in result.cookies)
# ... or LFS doesn't manage stock amount
self.p1.manage_stock_amount = False
self.p1.order_time = None
self.p1.save()
result = add_to_cart(request)
self.failIf("message" in result.cookies)
示例5: test_add_to_cart_non_active
def test_add_to_cart_non_active(self):
"""Try to add product to the cart which is not active.
"""
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
self.assertRaises(Http404, add_to_cart, request, self.p1.id)
示例6: test_amount_3
def test_amount_3(self):
"""Manage stock amount; refresh to 3 only 2 products there.
"""
self.p1.manage_stock_amount = True
self.p1.stock_amount = 2
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Add product to cart
result = add_to_cart(request)
cart = lfs.cart.utils.get_cart(request)
self.assertEqual(cart.get_amount_of_items(), 1.0)
# Increase items to two
request = rf.post("/", {"product_id": self.p1.id, "amount-cart-item_%s" % cart.get_items()[0].id: 2})
request.session = self.session
request.user = self.user
# Refresh to amount of two is possible
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "")
self.assertEqual(cart.get_amount_of_items(), 2.0)
# Try to increase item to 3, but there are only 2 in stock
request = rf.post("/", {"product_id": self.p1.id, "amount-cart-item_%s" % cart.get_items()[0].id: 3})
request.session = self.session
request.user = self.user
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "Sorry, but \'Product 1\' is only 2.0 times available.")
# And the amount of the item is still 2.0
self.assertEqual(cart.get_amount_of_items(), 2.0)
# If the product is ordered the customer can add it into cart again
self.p1.order_time = self.dt
self.p1.save()
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "")
self.assertEqual(cart.get_amount_of_items(), 3.0)
# Or if LFS not managing stock amount the product can be added to the cart
self.p1.order_time = None
self.p1.manage_stock_amount = False
self.p1.save()
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "")
self.assertEqual(cart.get_amount_of_items(), 3.0)
示例7: test_standard_product
def test_standard_product(self):
session = SessionStore()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p0.id, "quantity": 1})
request.session = session
request.user = AnonymousUser()
cart = get_cart(request)
self.assertEqual(cart, None)
add_to_cart(request)
cart = get_cart(request)
self.assertEqual(int(cart.get_items()[0].amount), 1)
# 1l login admin
request = rf.get("/")
request.session = session
request.user = self.admin
cart = get_cart(request)
self.assertEqual(cart, None)
update_cart_after_login(request)
cart = get_cart(request)
self.assertEqual(int(cart.get_items()[0].amount), 1)
# logout
session = SessionStore()
request = rf.post("/", {"product_id": self.p0.id, "quantity": 2})
request.session = session
request.user = AnonymousUser()
cart = get_cart(request)
self.assertEqual(cart, None)
add_to_cart(request)
cart = get_cart(request)
self.assertEqual(int(cart.get_items()[0].amount), 2)
# 2. login admin
request = rf.get("/")
request.session = session
request.user = self.admin
cart = get_cart(request)
self.assertEqual(int(cart.get_items()[0].amount), 1)
update_cart_after_login(request)
cart = get_cart(request)
self.assertEqual(int(cart.get_items()[0].amount), 3)
示例8: test_manage_urls_anonymous
def test_manage_urls_anonymous(self):
"""Tests that all manage urls cannot accessed by anonymous user.
"""
rf = RequestFactory()
request = rf.get("/")
request.user = AnonymousUser()
from lfs.manage.urls import urlpatterns
for url in urlpatterns:
result = url.callback(request)
self.failUnless(result["Location"].startswith("/login/?next=/"))
示例9: test_amount_2
def test_amount_2(self):
"""Manage stock amount; refresh to 2 only 1 products there.
"""
self.p1.manage_stock_amount = True
self.p1.stock_amount = 1
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Add product to cart
result = add_to_cart(request)
cart = lfs.cart.utils.get_cart(request)
self.assertEqual(cart.get_amount_of_items(), 1.0)
# prepare shipping/payment methods
from lfs.payment.models import PaymentMethod
from lfs.shipping.models import ShippingMethod
pm = PaymentMethod.objects.create(name='pm')
sm = ShippingMethod.objects.create(name='sm')
# Try to increase item to two, but there is only one in stock
request = rf.post("/", {"product_id": self.p1.id, "amount-cart-item_%s" % cart.get_items()[0].id: 2,
"shipping_method": sm.pk, "payment_method": pm.pk})
request.session = self.session
request.user = self.user
# This results into a message to the customer
result = json.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "Sorry, but \'Product 1\' is only one time available.")
# And the amount of the item is still 1.0
self.assertEqual(cart.get_amount_of_items(), 1.0)
# If the product is ordered the customer can add it into cart again
self.p1.order_time = self.dt
self.p1.save()
result = json.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "")
self.assertEqual(cart.get_amount_of_items(), 2.0)
# Or if LFS not managing stock amount the product can be added to the cart
self.p1.order_time = None
self.p1.manage_stock_amount = False
self.p1.save()
result = json.loads(refresh_cart(request).content)
self.assertEqual(result.get("message"), "")
self.assertEqual(cart.get_amount_of_items(), 2.0)
示例10: test_add_to_cart_not_deliverable
def test_add_to_cart_not_deliverable(self):
"""Try to add product to the cart which is not deliverable.
"""
self.p1.active = True
self.p1.deliverable = False
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Not deliverable
self.assertRaises(Http404, add_to_cart, request, self.p1.id)
示例11: test_amount_4
def test_amount_4(self):
"""Manage stock amount; refresh to 2 but no product is there anymore.
"""
self.p1.manage_stock_amount = True
self.p1.stock_amount = 1
self.p1.save()
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 1})
request.session = self.session
request.user = self.user
# Add product to cart
result = add_to_cart(request)
cart = lfs.cart.utils.get_cart(request)
self.assertEqual(cart.get_amount_of_items(), 1.0)
item_id = cart.get_items()[0].id
self.p1.stock_amount = 0
self.p1.save()
self.assertEqual(0, len(cart.get_items()))
# prepare shipping/payment methods
from lfs.payment.models import PaymentMethod
from lfs.shipping.models import ShippingMethod
pm = PaymentMethod.objects.create(name="pm")
sm = ShippingMethod.objects.create(name="sm")
# Try to increase item to two, but there is no product in stock anymore
request = rf.post(
"/",
{
"product_id": self.p1.id,
"amount-cart-item_%s" % item_id: 2,
"shipping_method": sm.pk,
"payment_method": pm.pk,
},
)
request.session = self.session
request.user = self.user
# Refresh to amount of two is not possible
result = simplejson.loads(refresh_cart(request).content)
self.assertEqual(cart.get_amount_of_items(), 0.0)
self.assertTrue("Your Cart is empty" in result.get("html"))
示例12: test_totals_2
def test_totals_2(self):
"""Add a product with explicit quantity to cart
"""
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 2})
request.session = self.session
request.user = self.user
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
# Added product_1 two times to cart
add_to_cart(request)
response = added_to_cart_items(request)
self.failIf(response.find(u"Total: $20.00") == -1)
# Added product_1 two times to cart again
add_to_cart(request)
response = added_to_cart_items(request)
self.failIf(response.find(u"Total: $40.00") == -1)
示例13: test_ga_ecommerce_tracking
def test_ga_ecommerce_tracking(self):
"""
"""
shop = Shop.objects.get(pk=1)
shop.google_analytics_id = ""
shop.ga_site_tracking = False
shop.ga_ecommerce_tracking = False
shop.save()
session = SessionStore()
rf = RequestFactory()
request = rf.get('/')
request.session = session
template = get_template_from_string(
"""{% load lfs_tags %}{% google_analytics_ecommerce %}""")
content = template.render(Context({"request" : request}))
self.failIf(content.find("pageTracker") != -1)
# Enter a google_analytics_id
shop.google_analytics_id="UA-XXXXXXXXXX"
shop.save()
# But this is not enough
content = template.render(Context({"request" : request}))
self.failIf(content.find("pageTracker") != -1)
# It has to be activated first
shop.ga_ecommerce_tracking = True
shop.save()
# But this is still not enough
content = template.render(Context({"request" : request}))
self.failIf(content.find("pageTracker") != -1)
# There has to be an order within the session
session["order"] = Order()
# Now it works and "pageTracker" is found
content = template.render(Context({"request" : request}))
self.failIf(content.find("pageTracker") == -1)
示例14: test_totals_2
def test_totals_2(self):
"""Add a product with explicit quantity to cart
"""
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id, "quantity": 2})
request.session = self.session
request.user = self.user
# Check we are using german locale
shop = lfs_get_object_or_404(Shop, pk=1)
self.assertEqual(shop.default_locale, 'en_US.UTF-8')
# Added product_1 two times to cart
add_to_cart(request)
response = added_to_cart_items(request)
self.failIf(response.find(u"Total: $20.00") == -1)
# Added product_1 two times to cart again
add_to_cart(request)
response = added_to_cart_items(request)
self.failIf(response.find(u"Total: $40.00") == -1)
示例15: test_totals_1
def test_totals_1(self):
"""Add a product without quantity to cart (implicit 1)
"""
rf = RequestFactory()
request = rf.post("/", {"product_id": self.p1.id})
request.session = self.session
request.user = self.user
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
# Added product_1 to cart
add_to_cart(request)
response = added_to_cart_items(request)
# need to test for two versions of currency output (Mac and Ubuntu differ)
self.failIf(response.find(u"Total: $10.00") == -1)
# Added product_1 to cart again
add_to_cart(request)
response = added_to_cart_items(request)
self.failIf(response.find(u"Total: $20.00") == -1)