""" Practice Projects: Fantasy Game Inventory Page 127 """ import sys tests = [ {"rope": 1, "torch": 6, "gold coin": 42, "dagger": 1, "arrow": 12}, {"rope": 1, "torch": 6, "gold coin": "a", "dagger": 1, "arrow": 12}, None, ] def displayInventory(inventory): msg = "Inventory:\n" total = 0 if not isinstance(inventory, dict): return False, "Invalid inventory type" for item, amount in inventory.items(): msg += f"{amount} {item}\n" if not isinstance(amount, int): return False, f"Invalid amount for '{item}'" total += amount return True, f"{msg}Total number of items: {total}" valid = True for inventory in tests: print(f"Testing inventory '{inventory}': ") valid, msg = displayInventory(inventory) print(msg) if not valid: sys.exit(1)