예제 #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.TIMEPIECE_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.TIMEPIECE_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):
        self.permissions = [Permission.objects.get(codename='delete_user')]
        self.user = factories.User(permissions=self.permissions)
        self.login_user(self.user)

        self.obj = factories.User()

        self.url_kwargs = {'user_id': self.obj.pk}
예제 #4
0
 def setUp(self):
     super(TestProjectTimesheetView, self).setUp()
     self.user = factories.User()
     self.user2 = factories.User()
     self.superuser = factories.Superuser()
     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.url_args = (self.p1.pk, )
     self.devl_activity = factories.Activity(billable=True)
     self.activity = factories.Activity()
예제 #5
0
 def _create_others_entries(self):
     count = 5
     start_time = datetime.datetime(2012, 11, 6, 12)
     for i in range(count):
         user = factories.User()
         self._create_entry(start_time, user=user)
     return count
예제 #6
0
 def setUp(self):
     super(TestListUsers, self).setUp()
     # This permission is not created by Django by default.
     ct = ContentType.objects.get(model='user')
     p = Permission.objects.create(content_type=ct, codename='view_user')
     self.user = factories.User(permissions=[p])
     self.login_user(self.user)
예제 #7
0
 def setUp(self):
     self.user = factories.User()
     self.login_user(self.user)
     self.post_data = {
         'first_name': 'First',
         'last_name': 'Last',
         'email': '*****@*****.**',
     }
예제 #8
0
 def setUp(self):
     super(TestViewUser, self).setUp()
     ct = ContentType.objects.get(model='user')
     p = Permission.objects.create(content_type=ct, codename='view_user')
     self.user = factories.User(permissions=[p])
     self.login_user(self.user)
     self.obj = self.factory.create()
     self.url_kwargs = {self.pk_url_kwarg: self.obj.pk}
예제 #9
0
    def setUp(self):
        self.permissions = [Permission.objects.get(codename='change_user')]
        self.user = factories.User(permissions=self.permissions)
        self.login_user(self.user)

        self.obj = factories.User()
        self.url_kwargs = {'user_id': self.obj.pk}

        self.post_data = {
            'username': self.obj.username,
            'first_name': self.obj.first_name,
            'last_name': self.obj.last_name,
            'email': self.obj.email,
            'is_active': self.obj.is_active,
            'is_staff': self.obj.is_staff,
            'groups': self.obj.groups.values_list('pk', flat=True),
        }
예제 #10
0
    def test_invoice_confirm_view_user(self):
        """A regular user should not be able to access this page"""
        self.login_user(factories.User())
        to_date = utils.add_timezone(datetime.datetime(2011, 1, 31))
        url = self.get_create_url(project=self.project_billable.pk,
                                  to_date=to_date.strftime(DATE_FORM_FORMAT))

        response = self.client.get(url)
        self.assertEquals(response.status_code, 403)
    def setUp(self):
        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()
예제 #12
0
 def add_user_to_project_when_assigning_hours(self):
     newbie = factories.User()
     self.assertNotIn(newbie, self.tracked_project.users.all())
     self.client.post(self.ajax_url, data={
         'hours': 5,
         'week_start': '2012-07-23',
         'user': newbie.id,
         'project': self.tracked_project.id
     })
     self.assertIn(newbie, self.tracked_project.users.all())
예제 #13
0
    def setUp(self):
        super(TestBillableHours, self).setUp()
        self.from_date = datetime.datetime(2011, 1, 2)
        self.to_date = datetime.datetime(2011, 1, 4)
        self.dates_data = ['12/27/2010', '01/03/2011']

        self.url = reverse('report_billable_hours')
        self.perm = Permission.objects.filter(codename='view_entry_summary')
        self.admin = factories.User()
        self.admin.user_permissions = self.perm
예제 #14
0
 def setUp(self):
     super(TestCreateBusiness, self).setUp()
     self.user = factories.User(permissions=self.permissions)
     self.login_user(self.user)
     self.post_data = {
         'name': 'Business',
         'email': '*****@*****.**',
         'description': 'Described',
         'notes': 'Notes',
     }
    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()
예제 #16
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
예제 #17
0
    def setUp(self):
        self.permissions = [Permission.objects.get(codename='add_business')]
        self.user = factories.User(permissions=self.permissions)
        self.login_user(self.user)

        self.post_data = {
            'name': 'Business',
            'email': '*****@*****.**',
            'description': 'Described',
            'notes': 'Notes',
        }
예제 #18
0
 def setUp(self):
     super(ProjectHoursEditTestCase, self).setUp()
     self.permission = Permission.objects.filter(
         codename='add_projecthours')
     self.manager = factories.User()
     self.manager.user_permissions = self.permission
     self.view_url = reverse('edit_schedule')
     self.ajax_url = reverse('ajax_schedule')
     self.week_start = utils.get_week_start(datetime.date.today())
     self.next_week = self.week_start + relativedelta(days=7)
     self.future = self.week_start + relativedelta(days=14)
예제 #19
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]
예제 #20
0
 def setUp(self):
     super(TestEditBusiness, self).setUp()
     self.user = factories.User(permissions=self.permissions)
     self.login_user(self.user)
     self.obj = self.factory.create()
     self.url_kwargs = {self.pk_url_kwarg: self.obj.pk}
     self.post_data = {
         'name': 'Business',
         'email': '*****@*****.**',
         'description': 'Described',
         'notes': 'Notes',
     }
예제 #21
0
 def setUp(self):
     super(TestCreateProject, self).setUp()
     self.user = factories.User(permissions=self.permissions)
     self.login_user(self.user)
     self.post_data = {
         'name': 'Project',
         'business_1': factories.Business().pk,
         'point_person': factories.Superuser().pk,
         'activity_group': factories.ActivityGroup().pk,
         'type': factories.TypeAttribute().pk,
         'status': factories.StatusAttribute().pk,
         'description': 'a project...',
     }
예제 #22
0
    def setUp(self):
        self.permissions = [Permission.objects.get(codename='add_project')]
        self.user = factories.User(permissions=self.permissions)
        self.login_user(self.user)

        self.post_data = {
            'name': 'Project',
            'business_1': factories.Business().pk,
            'point_person': factories.Superuser().pk,
            'activity_group': factories.ActivityGroup().pk,
            'type': factories.TypeAttribute().pk,
            'status': factories.StatusAttribute().pk,
            'description': 'a project...',
        }
예제 #23
0
    def setUp(self):
        self.user = factories.User()
        permissions = Permission.objects.filter(
            content_type=ContentType.objects.get_for_model(Entry),
            codename__in=('can_clock_in', 'can_clock_out', 'can_pause',
                          'change_entry'))
        self.user.user_permissions = permissions
        self.user.save()
        self.superuser = factories.Superuser()

        self.tracked_status = factories.StatusAttribute(
            label='Current', billable=True, enable_timetracking=True)
        self.untracked_status = factories.StatusAttribute(
            label='Closed', billable=False, enable_timetracking=False)
        self.tracked_type = factories.TypeAttribute(label='Tracked',
                                                    billable=True,
                                                    enable_timetracking=True)
        self.untracked_type = factories.TypeAttribute(
            label='Untracked', billable=False, enable_timetracking=False)

        self.work_activities = factories.ActivityGroup(name='Work')
        self.leave_activities = factories.ActivityGroup(name='Leave')
        self.all_activities = factories.ActivityGroup(name='All')

        self.leave_activity = factories.Activity(code='leave',
                                                 name='Leave',
                                                 billable=False)
        self.leave_activity.activity_group.add(self.leave_activities,
                                               self.all_activities)
        self.work_activity = factories.Activity(code='work',
                                                name='Work',
                                                billable=True)
        self.work_activity.activity_group.add(self.work_activities,
                                              self.all_activities)

        data = {
            'type': self.tracked_type,
            'status': self.tracked_status,
            'activity_group': self.work_activities,
        }
        self.tracked_project = factories.BillableProject(name='Tracked',
                                                         **data)
        data = {
            'type': self.untracked_type,
            'status': self.untracked_status,
            'activity_group': self.all_activities,
        }
        self.untracked_project = factories.BillableProject(name='Untracked',
                                                           **data)
예제 #24
0
 def setUp(self):
     super(TestEditUser, self).setUp()
     self.user = factories.User(permissions=self.permissions)
     self.login_user(self.user)
     self.obj = self.factory.create()
     self.url_kwargs = {self.pk_url_kwarg: self.obj.pk}
     self.post_data = {
         'username': '******',
         'first_name': 'Sam',
         'last_name': 'Blue',
         'email': '*****@*****.**',
         'is_active': False,
         'is_staff': True,
         'groups': [factories.Group().pk,
                    factories.Group().pk],
     }
예제 #25
0
 def setUp(self):
     super(TestCreateUser, self).setUp()
     self.user = factories.User(permissions=self.permissions)
     self.login_user(self.user)
     self.post_data = {
         'username': '******',
         'first_name': 'Sam',
         'last_name': 'Blue',
         'email': '*****@*****.**',
         'is_active': False,
         'is_staff': True,
         'groups': [factories.Group().pk,
                    factories.Group().pk],
         'password1': 'aaa',
         'password2': 'aaa',
     }
예제 #26
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
예제 #27
0
    def test_users(self):
        """Should retrieve all users who can_clock_in."""
        perm = Permission.objects.get(codename='can_clock_in')
        group = factories.Group()
        group.permissions.add(perm)

        group_user = factories.User()
        group_user.groups.add(group)
        perm_user = self.user
        super_user = self.superuser

        self.login_user(self.manager)
        response = self.client.get(self.ajax_url)
        self.assertEquals(response.status_code, 200)
        users = [u['id'] for u in json.loads(response.content)['all_users']]
        self.assertEquals(len(users), 3)
        self.assertTrue(group_user.id in users)
        self.assertTrue(perm_user.id in users)
        self.assertTrue(super_user.id in users)
예제 #28
0
 def test_search_user(self):
     user = factories.User()
     response = self._post(data={
         'quick_search_1': 'user-{0}'.format(user.pk),
     })
     self.assertRedirectsNoFollow(response, user.get_absolute_url())
예제 #29
0
 def setUp(self):
     super(TestQuickSearchView, self).setUp()
     self.user = factories.User()
     self.login_user(self.user)
예제 #30
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,
                })