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
|
||||
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 (
|
||||
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
|
||||
|
||||
|
||||
class TestItemReview(unittest.TestCase):
|
||||
class TestItemReview(FrappeTestCase):
|
||||
def setUp(self):
|
||||
item = make_item("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
|
||||
|
||||
def tearDown(self):
|
||||
frappe.get_cached_doc("Website Item", {"item_code": "Test Mobile Phone"}).delete()
|
||||
setup_e_commerce_settings({"enable_reviews": 0})
|
||||
frappe.db.rollback()
|
||||
|
||||
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)"
|
||||
@@ -44,7 +44,7 @@ class TestItemReview(unittest.TestCase):
|
||||
|
||||
# post review on "Test Mobile Phone"
|
||||
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})
|
||||
except Exception:
|
||||
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)
|
||||
|
||||
self.assertEqual(len(review_data.reviews), 1)
|
||||
self.assertEqual(review_data.average_rating, 3)
|
||||
self.assertEqual(review_data.reviews_per_rating[2], 100)
|
||||
self.assertEqual(review_data.average_rating, 1)
|
||||
|
||||
# tear down
|
||||
frappe.set_user("Administrator")
|
||||
|
||||
@@ -24,10 +24,11 @@ WEBITEM_PRICE_TESTS = (
|
||||
"test_website_item_price_for_guest_user",
|
||||
)
|
||||
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
class TestWebsiteItem(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
||||
class TestWebsiteItem(FrappeTestCase):
|
||||
def setUp(self):
|
||||
setup_e_commerce_settings(
|
||||
{
|
||||
"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:
|
||||
make_item(
|
||||
"Test Web Item",
|
||||
@@ -75,6 +71,9 @@ class TestWebsiteItem(unittest.TestCase):
|
||||
customer="_Test Customer",
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
frappe.db.rollback()
|
||||
|
||||
def test_index_creation(self):
|
||||
"Check if index is getting created in db."
|
||||
from erpnext.e_commerce.doctype.website_item.website_item import on_doctype_update
|
||||
|
||||
Reference in New Issue
Block a user