def test_beer_status_emails(self): # swap out the email sending methods def print_email_to_be_sent(beer, is_for_tomorrow, name): print 'Send email due to ' + name + ' for beer "' + beer.name + ', for tomorrow: ' + str(is_for_tomorrow) emailer.send_fermentation_email = lambda beer, is_for_tomorrow : print_email_to_be_sent(beer, is_for_tomorrow, 'Fermentation') emailer.send_dryhopping_email = lambda beer, is_for_tomorrow : print_email_to_be_sent(beer, is_for_tomorrow, 'Dryhopping') emailer.send_conditioning_email = lambda beer, is_for_tomorrow : print_email_to_be_sent(beer, is_for_tomorrow, 'Conditioning') # create the beer fermenting_from = datetime.datetime(2014,2,6).strftime("%s") fermenting_to = datetime.datetime(2014,2,10).strftime("%s") dryhopping_from = datetime.datetime(2014,2,10).strftime("%s") dryhopping_to = datetime.datetime(2014,2,14).strftime("%s") conditioning_from = datetime.datetime(2014,2,14).strftime("%s") conditioning_to = datetime.datetime(2014,2,22).strftime("%s") beer = Beer('Random Encounter', 'Hefeweizen', fermenting_from, fermenting_to, conditioning_from, conditioning_to, 7, 'Test Beer', 0, dryhopping_from, dryhopping_to); db_adapter.store_beer(beer) print db_adapter.get_beer_by_name('Random Encounter') # so as to not wait brew_logic._get_seconds_in_day = lambda : 1 brew_logic._get_seconds_in_hour = lambda : 1 # we start at the specified date brew_logic._get_current_datetime = lambda : datetime.datetime(2014,01,31); brew_logic.start_beer_monitoring_thread() # nothing should happen, we move the time to one day before the fermenting starts time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,5); time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,6); time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,9); time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,10); time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,14); time.sleep(1) brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,20); brew_logic._get_current_datetime = lambda : datetime.datetime(2014,2,22); # VERIFICATION STILL NEEDS TO OCCUR! I just don't have time for it :p brew_logic.should_threads_run = False # @UndefinedVariable end!
def start_threads(): """ starts a thread that stored the temperature readings every second, and the other 2 temperature controlling threads """ temperature_probes.start_temperature_recording_thread() logic.start_instruction_thread() logic.start_temperature_control_thread() logic.start_beer_monitoring_thread()