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_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)
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))
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)
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))
def test_is_userspace(self): subject = Organization() subject.name = '~username' self.assertIs(True, subject.is_user_space())
def test__str__(self): subject = Organization(name='MyOrganization') self.assertEqual('MyOrganization', str(subject))
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)
def test_not_is_userspace(self): subject = Organization() subject.name = 'Organization' self.assertIs(False, subject.is_user_space())
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))