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')
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()
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)
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)
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
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)
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()
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()