test: Variant Selector - Fetch next valid Attribute values fetching after selection of one

This commit is contained in:
marination
2022-01-11 20:15:24 +05:30
parent 577de39ca6
commit 746bb6277f

View File

@@ -1,6 +1,7 @@
import frappe
import unittest import unittest
import frappe
from erpnext.controllers.item_variant import create_variant from erpnext.controllers.item_variant import create_variant
from erpnext.e_commerce.doctype.website_item.website_item import make_website_item from erpnext.e_commerce.doctype.website_item.website_item import make_website_item
from erpnext.stock.doctype.item.test_item import make_item from erpnext.stock.doctype.item.test_item import make_item
@@ -71,18 +72,22 @@ class TestVariantSelector(unittest.TestCase):
# Only L and M attribute values must be fetched since S is disabled # Only L and M attribute values must be fetched since S is disabled
self.assertEqual(len(attr_data[0]["values"]), 2) # ['Medium', 'Large'] self.assertEqual(len(attr_data[0]["values"]), 2) # ['Medium', 'Large']
# def test_next_item_variant_values(self): def test_next_item_variant_values(self):
# """ """
# Test if on selecting an attribute value, the next possible values Test if on selecting an attribute value, the next possible values
# are filtered accordingly. are filtered accordingly.
# Values that dont apply should not be fetched. Values that dont apply should not be fetched.
# E.g. E.g.
# There is a ** Small-Red ** Tshirt. No other colour in this size. There is a ** Small-Red ** Tshirt. No other colour in this size.
# On selecting ** Small **, only ** Red ** should be selectable next. On selecting ** Small **, only ** Red ** should be selectable next.
# """ """
# from erpnext.e_commerce.variant_selector.utils import get_next_attribute_and_values from erpnext.e_commerce.variant_selector.utils import get_next_attribute_and_values
# next_values = get_next_attribute_and_values("Test-Tshirt-Temp", selected_attributes={ next_values = get_next_attribute_and_values("Test-Tshirt-Temp", selected_attributes={"Test Size": "Small"})
# "Colour": "Red" next_colours = next_values["valid_options_for_attributes"]["Test Colour"]
# }) filtered_items = next_values["filtered_items"]
# print(next_values)
self.assertEqual(len(next_colours), 1)
self.assertEqual(next_colours.pop(), "Red")
self.assertEqual(len(filtered_items), 1)
self.assertEqual(filtered_items.pop(), "Test-Tshirt-Temp-S-R")