def test_new_activity_turns_up_in_search_results(self, test_db, test_activity): assert len(ActivityGateway.activities()) == 1 test_activity.end() ActivityGateway.update_activity_in_db(test_activity) a = ActivityManager.start_new_activity('test2_activity') ActivityGateway.add_new_activity_to_db(a) assert len(ActivityGateway.activities()) == 2
def test_user_has_more_than_one_activity_today_but_only_one_is_what_we_want_and_more_activities_on_other_days( self, test_user_with_multiple_activities_on_multiple_days, test_db, test_activity): test_working_activity = ActivityManager.start_new_activity('working') ActivityGateway.add_new_activity_to_db(test_working_activity) todays_activities = ActivityGateway.activities_today_in_this_category( 'working') assert len(todays_activities) == 1 assert test_working_activity._id == todays_activities[0]._id
def test_user_has_more_than_one_activity_today_and_more_on_other_days( self, test_user_with_multiple_activities_on_multiple_days, test_db, test_activity): test_working_activity = ActivityManager.start_new_activity('working') ActivityGateway.add_new_activity_to_db(test_working_activity) todays_activities = ActivityGateway.activities_today() assert len(todays_activities) == 2 _ids = [a._id for a in todays_activities] assert test_activity._id in _ids assert test_working_activity._id in _ids
def test_activity_was_performed_multiple_times_today_and_all_except_one_already_ended( self, test_db, test_user_with_multiple_activities_of_same_category_done_today, test_activity): unfinished_activity = ActivityManager.start_new_activity( test_activity.category) unfinished_activity.started_at = unfinished_activity.started_at.shift( seconds=-500) ActivityGateway.add_new_activity_to_db(unfinished_activity) report = TimeSpentInCategoryReport.generate_for_this_category_of_activity( test_activity.category, 0) assert report[test_activity.category] == 8500
def test_user_with_multiple_activities_on_multiple_days(test_activity): test_activity.end() ActivityGateway.update_activity_in_db(test_activity) test_sleeping_activity = ActivityManager.start_new_activity('sleeping') test_sleeping_activity.started_at = test_sleeping_activity.started_at.shift( days=-1) test_sleeping_activity.end() ActivityGateway.add_new_activity_to_db(test_sleeping_activity) test_working_activity = ActivityManager.start_new_activity('working') test_working_activity.started_at = test_working_activity.started_at.shift( days=-2) test_working_activity.end() ActivityGateway.add_new_activity_to_db(test_working_activity)
def test_user_with_multiple_activities_of_same_category_done_today( test_activity): test_activity.end() test_activity.ended_at = test_activity.started_at.shift(seconds=2000) ActivityGateway.update_activity_in_db(test_activity) second_activity = ActivityManager.start_new_activity( test_activity.category) second_activity.end() second_activity.ended_at = second_activity.started_at.shift(seconds=3000) ActivityGateway.add_new_activity_to_db(second_activity) third_activity = ActivityManager.start_new_activity(test_activity.category) third_activity.end() third_activity.ended_at = third_activity.started_at.shift(seconds=3000) ActivityGateway.add_new_activity_to_db(third_activity)
def test_activity(): a = ActivityManager.start_new_activity('test_activity') ActivityGateway.add_new_activity_to_db(a) return a
def start_tracking_new_activity(cls, category: str) -> Activity: cls.stop_tracking_last_activity() a = cls.start_new_activity(category) ActivityGateway.add_new_activity_to_db(a) return a
def test_correct_last_activity_returned_based_on_when_activity_was_created( self, test_user_with_multiple_activities_on_multiple_days): latest_activity = ActivityManager.start_new_activity('break') ActivityGateway.add_new_activity_to_db(latest_activity) assert ActivityGateway.fetch_last_activity_started( )._id == latest_activity._id