fix: flaky ecommerce test case (#40534)
* refactor(test): make use of fixtures * refactor(test): rating are now restricted with [0..1] * refactor(test): remove superfluous setup override
This commit is contained in:
@@ -5,6 +5,7 @@ import unittest
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.core.doctype.user_permission.test_user_permission import create_user
|
from frappe.core.doctype.user_permission.test_user_permission import create_user
|
||||||
|
from frappe.tests.utils import FrappeTestCase
|
||||||
|
|
||||||
from erpnext.e_commerce.doctype.e_commerce_settings.test_e_commerce_settings import (
|
from erpnext.e_commerce.doctype.e_commerce_settings.test_e_commerce_settings import (
|
||||||
setup_e_commerce_settings,
|
setup_e_commerce_settings,
|
||||||
@@ -19,7 +20,7 @@ from erpnext.e_commerce.shopping_cart.cart import get_party
|
|||||||
from erpnext.stock.doctype.item.test_item import make_item
|
from erpnext.stock.doctype.item.test_item import make_item
|
||||||
|
|
||||||
|
|
||||||
class TestItemReview(unittest.TestCase):
|
class TestItemReview(FrappeTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
item = make_item("Test Mobile Phone")
|
item = make_item("Test Mobile Phone")
|
||||||
if not frappe.db.exists("Website Item", {"item_code": "Test Mobile Phone"}):
|
if not frappe.db.exists("Website Item", {"item_code": "Test Mobile Phone"}):
|
||||||
@@ -29,8 +30,7 @@ class TestItemReview(unittest.TestCase):
|
|||||||
frappe.local.shopping_cart_settings = None
|
frappe.local.shopping_cart_settings = None
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
frappe.get_cached_doc("Website Item", {"item_code": "Test Mobile Phone"}).delete()
|
frappe.db.rollback()
|
||||||
setup_e_commerce_settings({"enable_reviews": 0})
|
|
||||||
|
|
||||||
def test_add_and_get_item_reviews_from_customer(self):
|
def test_add_and_get_item_reviews_from_customer(self):
|
||||||
"Add / Get Reviews from a User that is a valid customer (has added to cart or purchased in the past)"
|
"Add / Get Reviews from a User that is a valid customer (has added to cart or purchased in the past)"
|
||||||
@@ -44,7 +44,7 @@ class TestItemReview(unittest.TestCase):
|
|||||||
|
|
||||||
# post review on "Test Mobile Phone"
|
# post review on "Test Mobile Phone"
|
||||||
try:
|
try:
|
||||||
add_item_review(web_item, "Great Product", 3, "Would recommend this product")
|
add_item_review(web_item, "Great Product", 1, "Would recommend this product")
|
||||||
review_name = frappe.db.get_value("Item Review", {"website_item": web_item})
|
review_name = frappe.db.get_value("Item Review", {"website_item": web_item})
|
||||||
except Exception:
|
except Exception:
|
||||||
self.fail(f"Error while publishing review for {web_item}")
|
self.fail(f"Error while publishing review for {web_item}")
|
||||||
@@ -52,8 +52,7 @@ class TestItemReview(unittest.TestCase):
|
|||||||
review_data = get_item_reviews(web_item, 0, 10)
|
review_data = get_item_reviews(web_item, 0, 10)
|
||||||
|
|
||||||
self.assertEqual(len(review_data.reviews), 1)
|
self.assertEqual(len(review_data.reviews), 1)
|
||||||
self.assertEqual(review_data.average_rating, 3)
|
self.assertEqual(review_data.average_rating, 1)
|
||||||
self.assertEqual(review_data.reviews_per_rating[2], 100)
|
|
||||||
|
|
||||||
# tear down
|
# tear down
|
||||||
frappe.set_user("Administrator")
|
frappe.set_user("Administrator")
|
||||||
|
|||||||
@@ -24,10 +24,11 @@ WEBITEM_PRICE_TESTS = (
|
|||||||
"test_website_item_price_for_guest_user",
|
"test_website_item_price_for_guest_user",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from frappe.tests.utils import FrappeTestCase
|
||||||
|
|
||||||
class TestWebsiteItem(unittest.TestCase):
|
|
||||||
@classmethod
|
class TestWebsiteItem(FrappeTestCase):
|
||||||
def setUpClass(cls):
|
def setUp(self):
|
||||||
setup_e_commerce_settings(
|
setup_e_commerce_settings(
|
||||||
{
|
{
|
||||||
"company": "_Test Company",
|
"company": "_Test Company",
|
||||||
@@ -37,11 +38,6 @@ class TestWebsiteItem(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def tearDownClass(cls):
|
|
||||||
frappe.db.rollback()
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
if self._testMethodName in WEBITEM_DESK_TESTS:
|
if self._testMethodName in WEBITEM_DESK_TESTS:
|
||||||
make_item(
|
make_item(
|
||||||
"Test Web Item",
|
"Test Web Item",
|
||||||
@@ -75,6 +71,9 @@ class TestWebsiteItem(unittest.TestCase):
|
|||||||
customer="_Test Customer",
|
customer="_Test Customer",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
frappe.db.rollback()
|
||||||
|
|
||||||
def test_index_creation(self):
|
def test_index_creation(self):
|
||||||
"Check if index is getting created in db."
|
"Check if index is getting created in db."
|
||||||
from erpnext.e_commerce.doctype.website_item.website_item import on_doctype_update
|
from erpnext.e_commerce.doctype.website_item.website_item import on_doctype_update
|
||||||
|
|||||||
Reference in New Issue
Block a user