Skip to content

Commit

Permalink
fix: flaky ecommerce test case (frappe#40534)
Browse files Browse the repository at this point in the history
* refactor(test): make use of fixtures

* refactor(test): rating are now restricted with [0..1]

* refactor(test): remove superfluous setup override
  • Loading branch information
ruthra-kumar committed Mar 19, 2024
1 parent 76f27d9 commit b197c19
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
11 changes: 5 additions & 6 deletions erpnext/e_commerce/doctype/item_review/test_item_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

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,
Expand All @@ -19,7 +20,7 @@
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"}):
Expand All @@ -29,8 +30,7 @@ def setUp(self):
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)"
Expand All @@ -44,16 +44,15 @@ def test_add_and_get_item_reviews_from_customer(self):

# 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}")

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")
Expand Down
15 changes: 7 additions & 8 deletions erpnext/e_commerce/doctype/website_item/test_website_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,11 @@
"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",
Expand All @@ -37,11 +38,6 @@ def setUpClass(cls):
}
)

@classmethod
def tearDownClass(cls):
frappe.db.rollback()

def setUp(self):
if self._testMethodName in WEBITEM_DESK_TESTS:
make_item(
"Test Web Item",
Expand Down Expand Up @@ -75,6 +71,9 @@ def setUp(self):
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
Expand Down

0 comments on commit b197c19

Please sign in to comment.