def work_data_to_work_object(work_data): result = [] for w in work_data: work = fields_to_work_object(w) work.start_date = dovetail.util.condition_date(w['start_date']) work.end_date = dovetail.util.condition_date(w['end_date']) assignee = Person(w['person_id']) assignee.name = w['assignee_name'] assignee.picture = w['assignee_picture'] # TODO: The controller should do this assignee.detail_url = '/people/%d' % w['person_id'] work.assignee = assignee result.append(work) return result
def test_parse_workline(self): # Mock out person lookup people_db.select_person_by_name = MagicMock(return_value=Person(21)) connection = None workline = '[1, "Borvo Borvison", "0.20 d", "Make title longer", [], "?"]' work_data = parse_workline(connection, workline) fields = work_data['fields'] self.assertEqual(work_data['id'], 1) self.assertEqual(fields['assignee_id'], 21) self.assertEqual(fields['effort_left_d'], 0.2) self.assertEqual(fields['title'], 'Make title longer') self.assertEqual(fields['prereqs'], '[]') self.assertEqual(fields['key_date'], None)
def fields_to_person_object(fields): result = Person(fields['id']) for f in fields.keys(): if f == 'name': result.name = fields[f] elif f == 'title': result.title = fields[f] elif f == 'team': result.team = fields[f] elif f == 'picture': result.picture = fields[f] return result