Exemplo n.º 1
0
def run_filter_above_test():
    expenses = []
    services = Services(expenses)

    try:
        services.filter_above([""])
        assert False
    except:
        assert True

    try:
        services.filter_above(["abc"])
        assert False
    except:
        assert True

    services.filter_above(["0"])

    services.add(["8", "4", "transport"])
    assert len(expenses) == 1

    services.add(["7", "2", "transport"])
    assert len(expenses) == 2

    services.add(["6", "1", "transport"])
    assert len(expenses) == 3

    services.add(["5", "2", "cloathing"])
    assert len(expenses) == 4

    services.filter_above(["1"])
    assert len(expenses) == 3
Exemplo n.º 2
0
def run_undo_test():
    expenses = []
    services = Services(expenses)

    services.add(["4", "4", "food"])
    assert len(expenses) == 1

    services.add(["4", "8", "housekeeping"])
    assert len(expenses) == 2

    services.add(["3", "16", "housekeeping"])
    assert len(expenses) == 3

    services.add(["2", "32", "internet"])
    assert len(expenses) == 4

    services.filter_above(["10"])
    assert len(expenses) == 2

    services.undo_last_action()
    assert len(expenses) == 4

    services.undo_last_action()
    assert len(expenses) == 3

    services.undo_last_action()
    assert len(expenses) == 2

    services.undo_last_action()
    assert len(expenses) == 1

    services.undo_last_action()
    assert len(expenses) == 0

    try:
        services.undo_last_action()
        assert False
    except:
        assert True
Exemplo n.º 3
0
class Program:
    def __init__(self):
        self.__ui_manager = MenuUI()
        self.__DEBUGGING_MODE = True
        self.__services = Services()

    def start(self):
        if self.__DEBUGGING_MODE:
            run_tests()

        self.__services.preload_list()
        self.__ui_manager.show_help()

        while True:
            action = self.__ui_manager.get_action()

            try:
                if action.type == constants.ACTION_ADD:
                    result = self.__services.add(action.params)
                    self.__ui_manager.print_result(result)

                elif action.type == constants.ACTION_ERROR:
                    self.__ui_manager.on_invalid_command()

                elif action.type == constants.ACTION_EXIT:
                    return

                elif action.type == constants.ACTION_FILTER_ABOVE:
                    result = self.__services.filter_above(action.params)
                    self.__ui_manager.print_result(result)

                elif action.type == constants.ACTION_HELP:
                    self.__ui_manager.show_help()

                elif action.type == constants.ACTION_LIST_ALL:
                    result = self.__services.list_all()
                    self.__ui_manager.print_result(result)

                elif action.type == constants.ACTION_UNDO:
                    result = self.__services.undo_last_action()
                    self.__ui_manager.print_result(result)
            except ValidationError as error:
                self.__ui_manager.handle_error(error)