def test_mean_group_by_weekday_seconds(self): """ Testing groups presence entries by weekday with seconds """ import_data = utils.get_data() # user_10 user_10 = utils.mean_group_by_weekday_seconds(import_data[10]) self.assertEqual(user_10.keys(), range(7)) self.assertDictEqual(user_10, { 0: {'end': [], 'start': []}, 1: {'end': [64792], 'start': [34745]}, 2: {'end': [58057], 'start': [33592]}, 3: {'end': [62631], 'start': [38926]}, 4: {'end': [], 'start': []}, 5: {'end': [], 'start': []}, 6: {'end': [], 'start': []} }) # user_11 user_11 = utils.mean_group_by_weekday_seconds(import_data[11]) self.assertEqual(user_11.keys(), range(7)) self.assertDictEqual(user_11, { 0: {'end': [57257], 'start': [33134]}, 1: {'end': [50154], 'start': [33590]}, 2: {'end': [58527], 'start': [33206]}, 3: {'end': [60085, 57087], 'start': [37116, 34088]}, 4: {'end': [54242], 'start': [47816]}, 5: {'end': [], 'start': []}, 6: {'end': [], 'start': []} })
def presence_start_end_view(user_id): """ Returns average time for start and end work """ data = get_data() if user_id not in data: log.debug('User %s not found!', user_id) return [] weekdays = mean_group_by_weekday_seconds(data[user_id]) result = [( calendar.day_abbr[weekday], mean(average['start']), mean(average['end'])) for weekday, average in weekdays.items() ] return result