def test_add_newlines(self):
        from utility.utility import add_newlines

        string = 'hello world'
        result = add_newlines(string)
        self.assertEqual(result, '\nhello world\n')

        string = '\nhello world'
        result = add_newlines(string)
        self.assertEqual(result, '\nhello world\n')

        string = 'hello world\n'
        result = add_newlines(string)
        self.assertEqual(result, '\nhello world\n')
Exemple #2
0
def confirm(data_string):
    import re
    from resources.strings import confirm_text
    from utility.utility import add_newlines

    prompt = add_newlines(data_string) + confirm_text
    prompt = add_newlines(prompt)

    user_choice = user_input(prompt)
    while not re.match('^[yn]$', user_choice, flags=re.IGNORECASE):
        print('\nError, please enter Y for yes or N for no')
        user_choice = user_input(prompt)

    return check_confirm(user_choice)
    def input_fuel_economy(self):
        from resources.strings import Shift__fuel_economy__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Shift__fuel_economy__prompt)
        self.fuel_economy = User_Input(prompt).fuel_economy()
 def build_prompt(self):
     from utility.utility import add_newlines
     # initial
     self.prompt = add_newlines(self.text['initial'])
     # card
     card_condition = 0
     if self.tip.card != 0.0:
         card_condition = 1
     self.prompt += f'1. {self.text["card"][card_condition]}\n'
     # cash
     cash_condition = 0
     if self.tip.cash != 0.0:
         cash_condition = 1
     self.prompt += f'2. {self.text["cash"][cash_condition]}\n'
     # card and cash
     self.prompt += f'3. {self.text["both"]}\n'
     # unknown
     unknown_condition = 0
     if self.tip.unknown != 0.0:
         unknown_condition = 1
     self.prompt += f'U. {self.text["unknown"][unknown_condition]}\n'
     # view
     self.prompt += f'V. {self.text["view"]}\n'
     # back
     self.prompt += f'B. {self.text["back"]}\n'
    def input_total_hours(self):
        from resources.strings import Shift__total_hours__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Shift__total_hours__prompt)
        self.total_hours = User_Input(prompt).total_hours()
    def input_average_speed(self):
        from resources.strings import Delivery__average_speed__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Delivery__average_speed__prompt)
        self.average_speed = User_Input(prompt).average_speed()
    def input_distance(self):
        from resources.strings import Order__input_miles_traveled__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Order__input_miles_traveled__prompt)
        self.distance = User_Input(prompt).distance()
    def input_reason(self):
        from resources.strings import Extra_Stop__reason__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Extra_Stop__reason__prompt)
        self.reason = User_Input(prompt).reason()
Exemple #9
0
    def build_prompt(self):
        from objects import Extra_Stop, Order
        from os import path
        from utility.utility import add_newlines

        # initial
        self.prompt = self.display_text['initial'] + '\n'
        # order
        order_index = 0
        if path.exists(Order(self.delivery).file_list()['directory']):
            order_index = 1
        self.prompt += f'O. {self.display_text["order"][order_index]}\n'
        # extra stop
        extra_stop_index = 0
        if path.exists(Extra_Stop(self.delivery).file_list()['directory']):
            extra_stop_index = 1
        self.prompt +=\
            f'E. {self.display_text["extra_stop"][extra_stop_index]}\n'
        # complete
        self.prompt += f'C. {self.display_text["end"]}\n'
        # view
        self.prompt += f'V. {self.display_text["view"]}\n'
        # revise
        self.prompt += f'R. {self.display_text["revise"]}\n'
        # back
        self.prompt += f'B. {self.display_text["back"]}\n'

        self.prompt = add_newlines(self.prompt)
    def input_extra_tips_claimed(self):
        from resources.strings import Shift__extra_tips_claimed__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Shift__extra_tips_claimed__prompt)
        confirm_text = ' extra claimed for taxes'
        self.extra_tips_claimed = User_Input(prompt).money(confirm_text)
    def input_vehicle_compensation(self):
        from resources.strings import Shift__vehicle_compensation__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        prompt = add_newlines(Shift__vehicle_compensation__prompt)
        confirm_text = ' vehicle compensation'
        self.vehicle_compensation = User_Input(prompt).money(confirm_text)
Exemple #12
0
    def user_choice(self):
        from utility.user_input import check_match, user_input
        from utility.utility import add_newlines

        prompt = add_newlines(self.text['prompt'][1])
        self.user_selection = user_input(prompt)
        while not check_match(r'[\d]|^[b]$', self.user_selection)\
                and not self.match_check():
            self.user_selection = user_input(prompt)
 def full(self):
     from utility.utility import add_newlines
     # get main
     main = self.main()
     string = ''
     # order head
     if len(self.delivery.orders) > 0:
         string += '\n\n- Orders -\n'
         # orders        
         for order in self.delivery.orders:
             string += add_newlines(view_order(order))
     # extra stop head
     if len(self.delivery.extra_stops) > 0:
         string += '\n\n- Extra Stops -\n'
         # extra stops
         for extra_stop in self.delivery.extra_stops:
             string += add_newlines(view_extra_stop(extra_stop))
     
     return main + string
    def main(self):
        from utility.utility import add_newlines
        delivery_parts = self.delivery.view()

        # id
        string = f"{delivery_parts['id']}\n"

        # total duration
        if 'total_duration' in delivery_parts.keys():
            string += f"\t{delivery_parts['total_duration']}\n"

        # start time
        if 'start_time' in delivery_parts.keys():
            string += f"\t{delivery_parts['start_time']}\n"

        # end time
        if 'end_time' in delivery_parts.keys():
            string += f"\t{delivery_parts['end_time']}\n"

        # number of orders
        string += f"\t{delivery_parts['order_quantity']}\n"

        # number of extra stops
        if 'extra_stops' in delivery_parts.keys():
            string += f"\t{delivery_parts['extra_stops']}\n"

        # order ids
        if 'order_ids' in delivery_parts.keys():
            string += f"\t{delivery_parts['order_ids']}\n"

        # distance
        if 'distance' in delivery_parts.keys():
            string += f"\t{delivery_parts['distance']}\n"

        # average speed
        if 'average_speed' in delivery_parts.keys():
            string += f"\t{delivery_parts['average_speed']}"

        return add_newlines(string)
Exemple #15
0
 def result(self):
     # orders
     if self.user_selection.lower() == 'o':
         from processes.view import view_order
         # 1 order
         if len(self.delivery.orders) == 1:
             from utility.utility import add_newlines
             print(add_newlines(view_order(self.delivery.orders[0])))
             self.loop_condition = False
         # more then 1 order
         elif len(self.delivery.orders) > 1:
             from processes.select import Select_Order
             select_order = Select_Order(self.delivery)
             order_index = select_order.get_index()
             if isinstance(order_index, int):
                 print(view_order(self.delivery.orders[order_index]))
     # extra stops
     elif self.user_selection.lower() == 'e':
         from processes.view import view_extra_stop
         # 1 extra stop
         if len(self.delivery.extra_stops) == 1:
             # display extra stop to user
             print(view_extra_stop(self.delivery.extra_stops[0]))
             self.loop_condition = False
         # more then 1 extra stop
         elif len(self.delivery.extra_stops) > 1:
             from processes.select import Select_Extra_Stop
             # user select extra stop
             select_extra_stop = Select_Extra_Stop(self.delivery)
             # get index
             extra_stop_index = select_extra_stop.get_index()
             if isinstance(extra_stop_index, int):
                 extra_stop = self.delivery.extra_stops[extra_stop_index]
                 # display extra stop to user
                 print(view_extra_stop(extra_stop))
     # back
     elif self.user_selection.lower() == 'b':
         self.loop_condition = False
Exemple #16
0
    def build_prompt(self):
        from objects import Delivery, Extra_Stop, Split
        from os import path
        from utility.utility import add_newlines

        # initial
        self.prompt = f"\n{self.display_text['initial']}\n"
        # delivery
        delivery_index = 0
        if path.exists(Delivery(self.shift).file_list()['directory']):
            delivery_index = 1
        self.prompt += f'D. {self.display_text["delivery"][delivery_index]}\n'
        # extra stop
        extra_stop_index = 0
        if path.exists(Extra_Stop(self.shift).file_list()['directory']):
            extra_stop_index = 1
        self.prompt +=\
            f'E. {self.display_text["extra_stop"][extra_stop_index]}\n'
        # carry out tip
        self.prompt += f'C. {self.display_text["tip"]}\n'
        # split
        split_index = 0
        if path.exists(Split(self.shift).file_list()['directory']):
            split_index = 1
        self.prompt += f'S. {self.display_text["split"][split_index]}\n'
        # end shift
        end_index = 0
        if path.exists(self.shift.file_list()['end_time']):
            end_index = 1
        self.prompt += f'X. {self.display_text["end"][end_index]}\n'
        # view
        self.prompt += f'V. {self.display_text["view"]}\n'
        # revise
        self.prompt += f'R. {self.display_text["revise"]}\n'
        # quit
        self.prompt += f'Q. {self.display_text["quit"]}\n'

        self.prompt = add_newlines(self.prompt)
Exemple #17
0
    def build_prompt(self):
        from utility.utility import add_newlines

        self.prompt = add_newlines(self.text['initial'])
        self.prompt += '\n'.join([str(id) for id in self.delivery.order_ids])
        self.prompt += add_newlines(self.text['prompt'][0])
    def input_id(self):
        from resources.strings import Order__input_id__prompt
        from utility.user_input import User_Input
        from utility.utility import add_newlines

        self.id = User_Input(add_newlines(Order__input_id__prompt)).id()
Exemple #19
0
    def __init__(self, prompt):
        from utility.utility import add_newlines

        self.prompt = add_newlines(prompt)
 def input_distance(self):
     from utility.user_input import User_Input
     from utility.utility import add_newlines
     # todo: need to write prompt for distance and put it in resoursces file
     prompt = add_newlines('enter miles traveled')
     self.distance = User_Input(prompt).distance()