def create_activity(activity: dict, app_state) -> Activity: try: if not "type" in activity: raise ValueError("activity missing required 'type' key") activity_type = activity["type"].lower() if not "title" in activity: activity["title"] = activity_type logging.info("Creating new '{}' activity with title '{}'".format( activity_type, activity["title"])) if activity_type.lower() == "audio": return PlaylistStreamState(app_state, activity) elif activity_type.lower() == "introduction": return IntroductionState(app_state, activity) elif activity_type.lower() == "speakingclock": return SpeakingClockState(app_state, activity) elif activity_type.lower() == "facts": return FactsState(app_state, activity) elif activity_type.lower() == "__end_state": return EndState(app_state, activity) else: raise ValueError( "invalid activity type '{}' specified".format(activity_type)) except ValueError as err: logging.error(err)
def test_play(self): config = Configuration() p = Personality(config) state = SpeakingClockState(config, p) state.on_enter(); time.sleep(12) state.on_exit();
def test_midnight_3(self): config = Configuration() p = Personality(config) state = SpeakingClockState(config, p) when = datetime.datetime.today() state.tell(when.replace(hour=0,minute=54))
def test_midday_2(self): config = Configuration() p = Personality(config) state = SpeakingClockState(config, p) when = datetime.datetime.today() state.tell(when.replace(day=3,hour=12,minute=13))
def test_evening(self): config = Configuration() p = Personality(config) state = SpeakingClockState(config, p) when = datetime.datetime.today() state.tell(when.replace(hour=19,minute=23))