示例#1
0
def start_timer(request):
    worker = Worker.objects.get(user=request.user)
    try:
        if request.method == 'POST':
            time_entry_data = load_encoded_json(request.body)
            assignment_id = None
            if 'assignment' in time_entry_data:
                assignment_id = time_entry_data['assignment']
            timer = time_tracking.start_timer(worker,
                                              assignment_id=assignment_id)
            serializer = TaskTimerSerializer(timer)
            return serializer.data
    except TaskAssignment.DoesNotExist:
        raise BadRequest('Worker is not assigned to this task id.')
    except TimerError as e:
        raise BadRequest(e)
    except Exception as e:
        logger.exception(e)
        raise e
示例#2
0
def start_timer(request):
    worker = Worker.objects.get(user=request.user)
    try:
        if request.method == 'POST':
            time_entry_data = load_encoded_json(request.body)
            assignment_id = None
            if 'assignment' in time_entry_data:
                assignment_id = time_entry_data['assignment']
            timer = time_tracking.start_timer(worker,
                                              assignment_id=assignment_id)
            serializer = TaskTimerSerializer(timer)
            return serializer.data
    except TaskAssignment.DoesNotExist:
        raise BadRequest('Worker is not assigned to this task id.')
    except TimerError as e:
        raise BadRequest(e)
    except Exception as e:
        logger.exception(e)
        raise e
示例#3
0
 def test_start_timer_worker_not_assigned(self):
     # Find task assignment that worker is not assigned to.
     assignment = (TaskAssignment.objects.exclude(
         worker=self.worker).first())
     with self.assertRaises(TaskAssignment.DoesNotExist):
         start_timer(self.worker, assignment_id=assignment.id)
示例#4
0
 def test_start_timer_with_assignment(self):
     start_timer(self.worker, assignment_id=self.assignment.id)
     timer = self.worker.timer
     self.assertEqual(timer.assignment, self.assignment)
示例#5
0
 def test_start_timer_already_running(self):
     timer = TaskTimer(worker=self.worker, start_time=self.time)
     timer.save()
     with self.assertRaisesRegex(TimerError, 'Timer has already started'):
         start_timer(self.worker)
示例#6
0
 def test_start_timer(self):
     start_timer(self.worker)
     timer = self.worker.timer
     self.assertEqual(timer.start_time, self.time)
 def test_start_timer_worker_not_assigned(self):
     # Find task assignment that worker is not assigned to.
     assignment = (TaskAssignment.objects.exclude(worker=self.worker)
                   .first())
     with self.assertRaises(TaskAssignment.DoesNotExist):
         start_timer(self.worker, assignment_id=assignment.id)
 def test_start_timer_with_assignment(self):
     start_timer(self.worker, assignment_id=self.assignment.id)
     timer = self.worker.timer
     self.assertEqual(timer.assignment, self.assignment)
 def test_start_timer_already_running(self):
     timer = TaskTimer(worker=self.worker,
                       start_time=self.time)
     timer.save()
     with self.assertRaisesRegex(TimerError, 'Timer has already started'):
         start_timer(self.worker)
示例#10
0
 def test_start_timer(self):
     start_timer(self.worker)
     timer = self.worker.timer
     self.assertEqual(timer.start_time, self.time)