def test_get_menu_item_as_dict(menu): item = MenuItem.objects.create(name="Name", menu=menu, url="http://url.com") result = get_menu_item_as_dict(item) assert result == { "name": "Name", "url": "http://url.com", "translations": {} }
def test_get_menu_item_as_dict_with_translations(menu, collection): item = MenuItem.objects.create(name="Name", menu=menu, collection=collection) MenuItemTranslation.objects.create( menu_item=item, name="Polish Name", language_code="pl" ) result = get_menu_item_as_dict(item) assert result == { "name": "Name", "url": collection.get_absolute_url(), "translations": {"pl": {"name": "Polish Name"}}, }
def test_get_menu_as_json(menu): top_item = MenuItem.objects.create( menu=menu, name="top item", url="http://topitem.pl" ) child_item = MenuItem.objects.create( menu=menu, parent=top_item, name="child item", url="http://childitem.pl" ) grand_child_item = MenuItem.objects.create( menu=menu, parent=child_item, name="grand child item", url="http://grandchilditem.pl", ) top_item_data = get_menu_item_as_dict(top_item) child_item_data = get_menu_item_as_dict(child_item) grand_child_data = get_menu_item_as_dict(grand_child_item) child_item_data["child_items"] = [grand_child_data] top_item_data["child_items"] = [child_item_data] proper_data = [top_item_data] assert proper_data == get_menu_as_json(menu)
def test_get_menu_item_as_dict_empty_url(): item = MenuItem(name="Name") result = get_menu_item_as_dict(item) assert result == {"name": "Name", "url": "", "translations": {}}
def menu_item_to_json(menu_item): """Transforms a menu item to a JSON representation as used in the storefront.""" item_json = get_menu_item_as_dict(menu_item) item_json["child_items"] = [] return item_json