Ejemplo n.º 1
0
    def setUp(self):
        self.user = User()
        self.user.save()

        self.org = Organization(name='MyOrganization')
        self.org.save()

        self.subject = Project(name='MyProject', organization=self.org)
        self.subject.save()
Ejemplo n.º 2
0
    def test_get_or_create_existing(self):
        user = User(username='******')
        user.save()

        org = Organization(name='MyOrganization')
        org.save()

        subject = Organization.get_or_create_by_name('MyOrganization', user)
        self.assertIsInstance(subject, Organization)
        self.assertIsNotNone(subject.id)
Ejemplo n.º 3
0
    def test_get_or_create_by_name_non_existing_user(self):
        user = User(username='******')
        user.save()

        subject = Organization.get_or_create_by_name('~' + user.username, user)
        self.assertIsInstance(subject, Organization)
        self.assertIsNotNone(subject.id)
        self.assertIs(True, subject.is_admin(user))
Ejemplo n.º 4
0
def projects(request, organization, **kwargs):
    organization = Organization.get_or_create_by_name(name=organization,
                                                      user=request.user)

    context = dict(organization=organization,
                   projects=Project.objects.filter(organization=organization,
                                                   admins__in=[request.user]),
                   random_project_name=Project.random_name(),
                   **kwargs)
    return render(request, 'tracker/projects.html', context)
Ejemplo n.º 5
0
    def test_is_admin(self):
        subject = Organization()
        subject.save()

        user = User()
        user.save()
        self.assertIs(False, subject.is_admin(user))
        self.assertIs(False, subject.is_member(user))

        subject.admins.add(user)
        self.assertIs(True, subject.is_admin(user))
        self.assertIs(True, subject.is_member(user))
Ejemplo n.º 6
0
    def test_is_userspace(self):
        subject = Organization()
        subject.name = '~username'

        self.assertIs(True, subject.is_user_space())
Ejemplo n.º 7
0
 def test__str__(self):
     subject = Organization(name='MyOrganization')
     self.assertEqual('MyOrganization', str(subject))
Ejemplo n.º 8
0
    def test_get_or_create_by_name_non_existing_non_user(self):
        user = User(username='******')
        user.save()

        with self.assertRaises(Http404):
            Organization.get_or_create_by_name('MyOrganization', user)
Ejemplo n.º 9
0
    def test_not_is_userspace(self):
        subject = Organization()
        subject.name = 'Organization'

        self.assertIs(False, subject.is_user_space())
Ejemplo n.º 10
0
class ProjectModelTests(TestCase):
    def setUp(self):
        self.user = User()
        self.user.save()

        self.org = Organization(name='MyOrganization')
        self.org.save()

        self.subject = Project(name='MyProject', organization=self.org)
        self.subject.save()

    def test_format_timespan(self):
        self.assertEqual('a moment', format_timespan(timedelta(seconds=1)))
        self.assertEqual('a minute', format_timespan(timedelta(minutes=1)))
        self.assertEqual('59 minutes', format_timespan(timedelta(minutes=59)))
        self.assertEqual('one hour', format_timespan(timedelta(hours=1)))
        self.assertEqual('23 hours', format_timespan(timedelta(hours=23)))
        self.assertEqual('one day', format_timespan(timedelta(days=1)))
        self.assertEqual('29 days', format_timespan(timedelta(days=29)))
        self.assertEqual('one month', format_timespan(timedelta(days=30)))
        self.assertEqual('11 months', format_timespan(timedelta(days=30*11)))
        self.assertEqual('one year', format_timespan(timedelta(days=365)))
        self.assertEqual('2 years', format_timespan(timedelta(days=365*2)))
        self.assertEqual('25 years', format_timespan(timedelta(days=365*25)))

    def test_last_updated(self):
        record = TimeRecord(project=self.subject, user=self.user)
        record.start_time = datetime.now(tz=timezone.utc) - timedelta(hours=1)
        record.end_time = datetime.now(tz=timezone.utc)
        record.save()

        self.subject.timerecord_set.add(record)
        self.subject.save()

        self.assertEqual('Last updated a moment ago', self.subject.last_updated())

    def test_last_updated_no_updates(self):
        self.assertEqual('Never updated', self.subject.last_updated())

    def test_last_updated_only_start(self):
        record = TimeRecord(project=self.subject, user=self.user)
        record.start_time = datetime.now(tz=timezone.utc) - timedelta(hours=1)
        record.save()

        self.subject.timerecord_set.add(record)
        self.subject.save()

        self.assertEqual('Never updated', self.subject.last_updated())

    def test_is_tracking_active_record(self):
        record = TimeRecord(project=self.subject, user=self.user)
        record.start_time = datetime.now(tz=timezone.utc) - timedelta(hours=1)
        record.save()

        self.subject.timerecord_set.add(record)
        self.subject.save()

        self.assertIs(True, self.subject.is_tracking(self.user))

    def test_is_tracking_no_entry(self):
        self.assertIs(False, self.subject.is_tracking(self.user))

    def test_is_tracking_no_active_record(self):
        record = TimeRecord(project=self.subject, user=self.user)
        record.start_time = datetime.now(tz=timezone.utc) - timedelta(hours=1)
        record.end_time = datetime.now(tz=timezone.utc)
        record.save()

        self.subject.timerecord_set.add(record)
        self.subject.save()

        self.assertIs(False, self.subject.is_tracking(self.user))

    def test_is_member_none(self):
        self.assertIs(False, self.subject.is_member(self.user))

    def test_is_member_admin(self):
        self.subject.admins.add(self.user)
        self.subject.save()

        self.assertIs(True, self.subject.is_member(self.user))

    def test_is_member_editor(self):
        self.subject.editors.add(self.user)
        self.subject.save()

        self.assertIs(True, self.subject.is_member(self.user))