Ejemplo n.º 1
0
    def test_work_this_week(self):
        """
        Work This Week table should contain hours worked on projects this week,
        including from active entries.
        """
        projects = []
        projects.append(self.create_project(billable=True))
        projects.append(self.create_project(billable=False))
        past = []
        past.append(self.create_entry({  # 15 minutes
            'start_time': self.now + datetime.timedelta(minutes=5),
            'end_time': self.now + datetime.timedelta(minutes=20),
            'project': projects[0],
            'activity': self.create_activity(data={'billable': True}),
        }))
        past.append(self.create_entry({  # 15 minutes
            'start_time': self.now + datetime.timedelta(minutes=25),
            'end_time': self.now + datetime.timedelta(minutes=40),
            'project': projects[0],
            'activity': self.create_activity(data={'billable': True}),
        }))
        past.append(self.create_entry({  # 60 minutes
            'start_time': self.now + datetime.timedelta(minutes=45),
            'end_time': self.now + datetime.timedelta(minutes=105),
            'project': projects[1],
            'activity': self.create_activity(data={'billable': False}),
        }))
        current = self.create_entry({  # 30 minutes
            'start_time': self.now - datetime.timedelta(minutes=30),
            'project': projects[0],
            'activity': self.create_activity(data={'billable': True}),
        })
        current_hours = get_active_hours(current)
        total_hours = sum([p.hours for p in past]) + current_hours

        self.client.login(username='******', password='******')
        response = self.client.get(self.url)
        context = response.context
        self.assertEquals(len(context['my_active_entries']), 1)
        self.assertEquals(get_active_hours(context['my_active_entries'][0]),
                current_hours)
        self.assertEquals(len(context['project_entries']), 2)
        for entry in context['project_entries']:
            if entry['project__pk'] == projects[0].pk:
                self.assertEquals(entry['sum'], Decimal('0.50'))
            else:
                self.assertEquals(entry['sum'], Decimal('1.00'))
        self.assertEquals(len(context['activity_entries']), 2)
        for entry in context['activity_entries']:
            self.assertEquals(entry['sum'], Decimal('1.00'))
        self.assertEquals(context['current_total'], total_hours)
Ejemplo n.º 2
0
    def test_work_this_week(self):
        """
        Entries, including the active one, should show up
        in the Work This Week table.
        """
        self.create_entry({
            'start_time': self.now,
            'end_time': self.now + datetime.timedelta(hours=1),
        })
        entry = self.create_entry({
            'start_time': self.now + datetime.timedelta(hours=2),
            'project': self.create_project(billable=True)
        })
        hours = get_active_hours(entry)
        total_hours = Decimal('%.2f' % 1.0) + hours

        self.client.login(username='******', password='******')

        response = self.client.get(self.url)
        context = response.context
        self.assertEquals(context['current_total'], total_hours)