Пример #1
0
 def setUp(self):
     super(ReportsTestBase, self).setUp()
     self.user = factories.User()
     self.user2 = factories.User()
     self.superuser = factories.Superuser()
     self.devl_activity = factories.Activity(billable=True)
     self.activity = factories.Activity()
     self.sick = factories.Project()
     self.vacation = factories.Project()
     settings.EMS_PAID_LEAVE_PROJECTS = {
         'sick': self.sick.pk,
         'vacation': self.vacation.pk,
     }
     self.leave = [self.sick.pk, self.vacation.pk]
     self.p1 = factories.BillableProject(name='1')
     self.p2 = factories.NonbillableProject(name='2')
     self.p4 = factories.BillableProject(name='4')
     self.p3 = factories.NonbillableProject(name='1')
     self.p5 = factories.BillableProject(name='3')
     self.default_projects = [self.p1, self.p2, self.p3, self.p4, self.p5]
     self.default_dates = [
         utils.add_timezone(datetime.datetime(2011, 1, 3)),
         utils.add_timezone(datetime.datetime(2011, 1, 4)),
         utils.add_timezone(datetime.datetime(2011, 1, 10)),
         utils.add_timezone(datetime.datetime(2011, 1, 16)),
         utils.add_timezone(datetime.datetime(2011, 1, 17)),
         utils.add_timezone(datetime.datetime(2011, 1, 18)),
     ]
Пример #2
0
 def setUp(self):
     super(PayrollTest, self).setUp()
     self.user = factories.User()
     self.user2 = factories.User()
     self.superuser = factories.Superuser()
     self.devl_activity = factories.Activity(billable=True)
     self.activity = factories.Activity()
     self.sick = factories.Project(name='sick')
     self.vacation = factories.Project(name='vacation')
     settings.EMS_PAID_LEAVE_PROJECTS = {
         'sick': self.sick.pk,
         'vacation': self.vacation.pk
     }
     self.next = utils.add_timezone(datetime.datetime(2011, 6, 1))
     self.overtime_before = utils.add_timezone(
         datetime.datetime(2011, 4, 29))
     self.first = utils.add_timezone(datetime.datetime(2011, 5, 1))
     self.first_week = utils.add_timezone(datetime.datetime(2011, 5, 2))
     self.middle = utils.add_timezone(datetime.datetime(2011, 5, 18))
     self.last_billable = utils.add_timezone(datetime.datetime(2011, 5, 28))
     self.last = utils.add_timezone(datetime.datetime(2011, 5, 31))
     self.dates = [
         self.overtime_before, self.first, self.first_week, self.middle,
         self.last, self.last_billable, self.next
     ]
     self.url = reverse('report_payroll_summary')
     self.args = {
         'year': self.first.year,
         'month': self.first.month,
     }
Пример #3
0
    def setUp(self):
        get_perm = lambda ct, n: Permission.objects.get(
            content_type__app_label=ct, codename=n)
        self.permissions = [get_perm(*perm) for perm in self.perm_names]

        self.user = factories.User()
        self.user.user_permissions.add(*self.permissions)
        self.login_user(self.user)

        self.project1 = factories.Project()
        self.project2 = factories.Project()
        self.projects = [self.project1, self.project2]
Пример #4
0
    def test_get_query(self):
        """
        Tests whether we get the right results with a non-empty query.
        """
        activity1 = factories.Activity(name='foo')
        activity2 = factories.Activity(name='bar')
        activity3 = factories.Activity(name='baz')
        activity4 = factories.Activity(name='qux')

        activity_group = factories.ActivityGroup()
        activity_group.activities.add(activity1)
        activity_group.activities.add(activity2)
        activity_group.activities.add(activity3)
        activity_group.activities.add(activity4)

        project = factories.Project(activity_group=activity_group)

        request = RequestFactory().get('/selectable/entries-activitylookup', {
            'project': project.pk
        })

        data = self.lookup.get_query(request, 'a')

        self.assertNotIn(activity1, data)
        self.assertIn(activity2, data)
        self.assertIn(activity3, data)
        self.assertNotIn(activity4, data)
Пример #5
0
 def test_search_project(self):
     project = factories.Project()
     response = self._post(
         data={
             'quick_search_1': 'project-{0}'.format(project.pk),
         })
     self.assertRedirectsNoFollow(response, project.get_absolute_url())
Пример #6
0
    def test_ordering(self):
        """Progress list should be ordered by project name."""
        projects = [
            factories.Project(name='a'),
            factories.Project(name='b'),
            factories.Project(name='c'),
        ]
        for i in range(3):
            start_time = datetime.datetime(2012, 11, 5 + i, 8, 0)
            end_time = datetime.datetime(2012, 11, 5 + i, 12, 0)
            self._create_entry(start_time, end_time, projects[i])
            self._create_hours(5 + 5 * i, projects[i])

        progress = self._get_progress()
        self.assertEqual(len(progress), 3)
        self.assertEqual(progress[0]['project'], projects[0])
        self.assertEqual(progress[1]['project'], projects[1])
        self.assertEqual(progress[2]['project'], projects[2])
Пример #7
0
    def setUp(self):
        super(RelationshipTestBase, self).setUp()
        self.user = factories.User()
        self.permissions = [Permission.objects.get(codename=n)
                            for n in self.perm_names]
        self.user.user_permissions.add(*self.permissions)
        self.login_user(self.user)

        self.project = factories.Project()
Пример #8
0
    def setUp(self):
        self.today = datetime.date(2012, 11, 7)
        self.this_week = utils.get_week_start(self.today)
        self.next_week = self.this_week + relativedelta(days=7)

        self.user = factories.User()

        self.project = factories.Project()
        self.activity = factories.Activity()
        self.location = factories.Location()
        self.status = Entry.UNVERIFIED
Пример #9
0
 def test_clock_in_form_activity_lookup(self):
     """Create an ActivityGroup that includes the Activity, and associate it with the project.
     Add a second Activity that is not included.  Ensure that the ActivityLookup disallows
     the second Activity. """
     factory = RequestFactory()
     lookup = ActivityLookup()
     factories.Activity()
     activity_group = factories.ActivityGroup()
     activity_group.activities.add(self.activity)
     project2 = factories.Project(activity_group=activity_group)
     factories.ProjectRelationship(project=project2, user=self.user)
     request = factory.get("/entry/clock_in/", {'project': project2.pk})
     response = lookup.results(request)
     data = json.loads(response.content.decode("utf-8"))['data']
     self.assertEqual(1, len(data))
     self.assertEqual(self.activity.pk, data[0]['id'])
Пример #10
0
    def setUp(self):
        self.today = datetime.date(2012, 11, 7)
        self.this_week = utils.get_week_start(self.today)
        self.next_week = self.this_week + relativedelta(days=7)

        get_params = {'week_start': self.this_week.strftime('%Y-%m-%d')}
        self.url = reverse('dashboard') + '?' + urlencode(get_params)

        self.user = factories.User()
        self.permission = Permission.objects.get(codename='can_clock_in')
        self.user.user_permissions.add(self.permission)
        self.login_user(self.user)

        self.project = factories.Project()
        self.activity = factories.Activity()
        self.location = factories.Location()
        self.status = Entry.UNVERIFIED
Пример #11
0
    def setUp(self):
        super(TestProductivityReport, self).setUp()
        self.user = factories.User()
        self.permission = Permission.objects.get(codename='view_entry_summary')
        self.user.user_permissions.add(self.permission)
        self.login_user(self.user)

        self.project = factories.Project()
        self.users = []
        self.users.append(factories.User(first_name='User', last_name='1'))
        self.users.append(factories.User(first_name='User', last_name='2'))
        self.users.append(factories.User(first_name='User', last_name='3'))
        self.weeks = []
        self.weeks.append(datetime.datetime(2012, 9, 24))
        self.weeks.append(datetime.datetime(2012, 10, 1))
        self.weeks.append(datetime.datetime(2012, 10, 8))
        self.weeks.append(datetime.datetime(2012, 10, 15))

        self._create_entries()
        self._create_assignments()
Пример #12
0
    def setUp(self):
        super(ProjectContractEntryTestCase, self).setUp()
        self.user_a = factories.User(username='******')
        self.user_b = factories.User(username='******')
        self.project_a = factories.Project(type__enable_timetracking=True,
                                           status__enable_timetracking=True,
                                           name='Project A')
        self.project_b = factories.Project(type__enable_timetracking=True,
                                           status__enable_timetracking=True,
                                           name='Project B')

        self.contract1 = factories.ProjectContract(
            name='Contract 1',
            projects=[self.project_a, self.project_b],
            status=ProjectContract.STATUS_CURRENT,
            start_date=timezone.now().replace(
                hour=0, minute=0, second=0, microsecond=0) -
            relativedelta(days=16),
            end_date=timezone.now().replace(
                hour=0, minute=0, second=0, microsecond=0) -
            relativedelta(days=12),
        )

        self.contract2 = factories.ProjectContract(
            name='Contract 2',
            projects=[self.project_b],
            status=ProjectContract.STATUS_CURRENT,
            start_date=timezone.now().replace(
                hour=0, minute=0, second=0, microsecond=0) -
            relativedelta(days=8),
            end_date=timezone.now().replace(
                hour=0, minute=0, second=0, microsecond=0) -
            relativedelta(days=4),
        )

        for x in range(20):
            factories.Entry(
                **{
                    'user':
                    self.user_a,
                    'project':
                    self.project_a,
                    'start_time':
                    timezone.now() - relativedelta(days=x),
                    'end_time': (timezone.now() - relativedelta(days=x)) +
                    relativedelta(hours=1),
                    'seconds_paused':
                    0,
                    'status':
                    Entry.UNVERIFIED,
                })

            factories.Entry(
                **{
                    'user':
                    self.user_b,
                    'project':
                    self.project_b,
                    'start_time':
                    timezone.now() - relativedelta(days=x),
                    'end_time': (timezone.now() - relativedelta(days=x)) +
                    relativedelta(hours=1),
                    'seconds_paused':
                    0,
                    'status':
                    Entry.UNVERIFIED,
                })