diff --git a/register.py b/register.py index 51d7c82..8a802be 100644 --- a/register.py +++ b/register.py @@ -9,7 +9,7 @@ __maintainer__ = "Vincent Dumoulin" __email__ = "vincent.dumoulin@umontreal.ca" -import io, os, logging, struct +import copy, io, os, logging, struct from logging.handlers import TimedRotatingFileHandler from pyplanck.item import Item from pyplanck.employee import Employee @@ -181,12 +181,11 @@ def remove(self, token): item = self._find_in_order(token) self._remove_from_order(item) - def get_order_summary(self): + def get_order(self): """ - WRITEME + Returns a copy of the current order """ - return [(item.get_barcode(), item.get_name(), quantity) - for item, quantity in self.order.items()] + return copy.deepcopy(self.order) def clear_order(self): """ @@ -219,7 +218,7 @@ def order_to_string(self): def get_order_total(self): """ - WRITEME + Return the current order's total price """ return sum(item.get_price() * quantity for item, quantity in self.order.items()) diff --git a/tests/test_register.py b/tests/test_register.py index cc11e95..e74c6d1 100644 --- a/tests/test_register.py +++ b/tests/test_register.py @@ -213,8 +213,17 @@ def test_register_remove_custom(): assert register.order == final_order -def test_register_get_order_summary(): - assert False +def test_register_get_order(): + register = Register('tmp/menu.txt', 'tmp/employees.txt', + 'tmp/register_count.bin', 'tmp/') + register.login_employee("admin") + items = [ + Item("Chocolate bar", 1.0, "001", category="Candy", shortcut=None), + Item("gum", 0.47, "custom_gum", category="Custom", shortcut=None) + ] + order = {items[0]: 1, items[1]: 1} + register.order = order + assert register.get_order() == order def test_register_clear_order(): @@ -273,8 +282,26 @@ def test_register_order_to_string(): assert all([line in representation for line in correct_representation]) -def test_register_get_order_total(): - assert False +def test_register_get_order_total_non_empty_order(): + register = Register('tmp/menu.txt', 'tmp/employees.txt', + 'tmp/register_count.bin', 'tmp/') + register.login_employee("admin") + items = [ + Item("Chocolate bar", 1.0, "001", category="Candy", shortcut=None), + Item("gum", 0.47, "custom_gum", category="Custom", shortcut=None) + ] + order = {items[0]: 1, items[1]: 1} + register.order = order + assert register.get_order_total() == 1.47 + + +def test_register_get_order_total_empty_order(): + register = Register('tmp/menu.txt', 'tmp/employees.txt', + 'tmp/register_count.bin', 'tmp/') + register.login_employee("admin") + order = dict() + register.order = order + assert register.get_order_total() == 0.0 def test_register_get_register_count():