class ProjectJoinViewTestCase(TestCase): def setUp(self): self.project = ProjectFactory() self.user = PersonaFactory() self.user.set_password('password') self.user.save() def test_anonymous_cannnot_join_project(self): ''' Tests anonymous users attempt to access to ProjectJoinViewTestCase with GET method, redirects to Login page. ''' r = self.client.get('/projects/1/join/') self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, '/projects/1/join/')) def test_get_method_is_not_allowed(self): ''' Tests authorized attempt to access to ProjectJoinViewTestCase with GET method, it returns 405 ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/projects/1/join/') self.assertEqual(r.status_code, 405) def test_user_can_join_project_via_project_join_view(self): ''' Tests user can join to project via ProjectJoinView then redirects to project permalinks ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.post('/projects/1/join/') self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(self.project.members.count(), 2) self.assertTrue(self.user in self.project.members.all())
def setUp(self): persona_factory = lambda x: PersonaFactory(username=x, role=x) article_factory = lambda **kwargs: ArticleFactory( author=self.users['article_author'], **kwargs) star_factory = lambda **kwargs: StarFactory( author=self.users['star_author'], **kwargs) self.users = dict( adam=persona_factory('adam'), seele=persona_factory('seele'), nerv=persona_factory('nerv'), children=persona_factory('children'), wille=persona_factory('wille'), anonymous=AnonymousUser(), article_author=PersonaFactory(username='******', role='children'), star_author=PersonaFactory(username='******', role='children'), ) self.article = article_factory() self.protected_article = article_factory(pub_state='protected') self.star0 = star_factory(content_object=self.article) self.star1 = star_factory(content_object=self.article) self.star2 = star_factory(content_object=self.protected_article) self.star3 = star_factory(content_object=self.protected_article)
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): super().setUp() self.platform = PlatformFactory() self.category = CategoryFactory() self.administrators = ( PersonaFactory(), PersonaFactory(), PersonaFactory(), ) self.product = ProductFactory( title="かわずたんのゲームだよ☆", administrators=tuple(map(lambda x: x.pk, self.administrators)), ) self.product_kwargs = { 'title': 'クラッカーだよ!!!', 'published_at': datetime.date.today(), 'platforms': (self.platform.pk, ), 'categories': (self.category.pk, ), 'administrators': tuple(map(lambda x: x.pk, self.administrators)), 'description': '剣と魔法の物語です', 'screenshots-TOTAL_FORMS': 0, # No screenshots 'screenshots-INITIAL_FORMS': 1, 'screenshots-MAX_NUM_FORMS': 1000, 'url_releases-TOTAL_FORMS': 0, # No URL release 'url_releases-INITIAL_FORMS': 1, 'url_releases-MAX_NUM_FORMS': 1000, 'package_releases-TOTAL_FORMS': 0, # No package release 'package_releases-INITIAL_FORMS': 1, 'package_releases-MAX_NUM_FORMS': 1000, } self.image_file = TEST_FILENAME
def setUp(self): arguments_list = ( (-3, -2, { 'pub_state': 'public' }), # 2000/9/1 ~ 2000/9/2 (1, 2, { 'pub_state': 'public' }), # 2000/9/5 ~ 2000/9/6 (365, 366, { 'pub_state': 'public' }), # 2001/9/5 ~ 2001/9/6 (-2, -1, { 'pub_state': 'protected' }), # 2000/9/2 ~ 2000/9/3 (0, 3, { 'pub_state': 'protected' }), # 2000/9/4 ~ 2000/9/5 (367, 368, { 'pub_state': 'protected' }), # 2001/9/7 ~ 2001/9/8 (-3, -2, { 'pub_state': 'draft' }), # 2000/9/2 ~ 2000/9/3 (1, 2, { 'pub_state': 'draft' }), # 2000/9/5 ~ 2000/9/6 ) self.events = [ event_factory_with_relative(*args) for args in arguments_list ] self.user = PersonaFactory() self.user.set_password('password') self.user.save()
def setUp(self): self.user = PersonaFactory(username='******') self.user.set_password('password') self.other = PersonaFactory(username='******') self.user.save() self.other.save() self.entry = EntryFactory(title='かわずたんだよ☆', author=self.user)
class AnnouncementAddPermissionTestCase(TestCase): def setUp(self): self.nerv = PersonaFactory(role='nerv') self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() def test_staffs_have_add_announcement_perm(self): """ スタッフはお知らせを作成する権限を持つ """ self.assertTrue(self.nerv.has_perm( 'announcements.add_announcement')) def test_users_dont_have_add_announcement_perm(self): """ ログインユーザーはお知らせを作成する権限を持たない """ self.assertFalse(self.user.has_perm( 'announcements.add_announcement')) def test_wille_dont_have_add_announcement_perm(self): """ Willeユーザーはお知らせを作成する権限を持たない """ self.assertFalse(self.wille.has_perm( 'announcements.add_announcement')) def test_anonymous_dont_have_add_announcement_perm(self): """ 非ログインユーザーはお知らせを作成する権限を持たない """ self.assertFalse(self.anonymous.has_perm( 'announcements.add_announcement'))
def test_category_list(self): """ カテゴリ一に属してる記事一覧が見れる """ user0 = PersonaFactory() user1 = PersonaFactory() category0 = CategoryFactory(author=user0, label="ゲームレビュー") category1 = CategoryFactory(author=user1, label="ゲームレビュー") entry0 = EntryFactory(category=category0, author=user0) entry1 = EntryFactory(category=category0, author=user0) entry2 = EntryFactory(category=category1, author=user1) entry3 = EntryFactory(category=category1, pub_state='draft', author=user1) url = '/blogs/{}/category/{}/'.format(user0.username, category0.pk) r = self.client.get(url) self.assertEqual(len(r.context['object_list']), 2) self.assertTrue(entry0 in r.context['object_list']) self.assertTrue(entry1 in r.context['object_list']) url = '/blogs/{}/category/{}/'.format(user1.username, category1.pk) r = self.client.get(url) self.assertTrue(len(r.context['object_list']), 1) self.assertTrue(entry2 in r.context['object_list']) self.assertTrue('author' in r.context)
class AnnouncementAddPermissionTestCase(TestCase): def setUp(self): self.nerv = PersonaFactory(role='nerv') self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() def test_staffs_have_add_announcement_perm(self): """ スタッフはお知らせを作成する権限を持つ """ self.assertTrue(self.nerv.has_perm('announcements.add_announcement')) def test_users_dont_have_add_announcement_perm(self): """ ログインユーザーはお知らせを作成する権限を持たない """ self.assertFalse(self.user.has_perm('announcements.add_announcement')) def test_wille_dont_have_add_announcement_perm(self): """ Willeユーザーはお知らせを作成する権限を持たない """ self.assertFalse(self.wille.has_perm('announcements.add_announcement')) def test_anonymous_dont_have_add_announcement_perm(self): """ 非ログインユーザーはお知らせを作成する権限を持たない """ self.assertFalse( self.anonymous.has_perm('announcements.add_announcement'))
class AccountEditPermissionTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.anonymous = AnonymousUser() self.account = AccountFactory() def test_owner_cannot_change_account(self): '''Tests owners don't have change permission of Account''' self.assertFalse(self.account.user.has_perm('profiles.change_account', obj=self.account)) def test_others_cannot_change_account(self): '''Tests others don't have change permission of Account''' self.assertFalse(self.user.has_perm('profiles.change_account', obj=self.account)) def test_anonymous_cannot_change_account(self): '''Tests anonymous don't have change permission of Account''' self.assertFalse(self.anonymous.has_perm('profiles.change_account', obj=self.account)) def test_owner_can_delete_account(self): '''Tests owners have delete permission of Account''' self.assertTrue(self.account.user.has_perm('profiles.delete_account', obj=self.account)) def test_others_cannot_delete_account(self): '''Tests others don't have delete permission of Account''' self.assertFalse(self.user.has_perm('profiles.delete_account', obj=self.account)) def test_anonymous_cannot_delete_account(self): '''Tests anonymous don't have delete permission of Account''' self.assertFalse(self.anonymous.has_perm('profiles.delete_account', obj=self.account))
class ProfileEditPermissionTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.anonymous = AnonymousUser() self.profile = ProfileFactory() def test_owner_can_change_profile(self): '''Tests owner has change permission of Profile''' self.assertTrue(self.profile.user.has_perm('profiles.change_profile', obj=self.profile)) def test_others_cannot_change_profile(self): '''Tests others don't have change permission of Profile''' self.assertFalse(self.user.has_perm('profiles.change_profile', obj=self.profile)) def test_anonymous_cannot_change_profile(self): '''Tests anonymous don't have change permission of Profile''' self.assertFalse(self.anonymous.has_perm('profiles.change_profile', obj=self.profile)) def test_owner_cannot_delete_profile(self): '''Tests owner don't have delete permission of Profile''' self.assertFalse(self.profile.user.has_perm('profiles.delete_profile', obj=self.profile)) def test_others_cannot_delete_profile(self): '''Tests others don't have delete permission of Profile''' self.assertFalse(self.user.has_perm('profiles.delete_profile', obj=self.profile)) def test_anonymous_cannot_delete_profile(self): '''Tests anonymous don't have delete permission of Profile''' self.assertFalse(self.anonymous.has_perm('profiles.delete_profile', obj=self.profile))
def setUp(self): super().setUp() self.platform = PlatformFactory() self.category = CategoryFactory() self.administrators = ( PersonaFactory(), PersonaFactory(), PersonaFactory(), ) self.product_kwargs = { 'title': 'かわずたんファンタジー', 'slug': 'kawaztan-fantasy', 'thumbnail': 'thumbnail.png', 'published_at': datetime.date.today(), 'platforms': (self.platform.pk, ), 'categories': (self.category.pk, ), 'administrators': tuple(map(lambda x: x.pk, self.administrators)), 'description': '剣と魔法の物語です', 'screenshots-TOTAL_FORMS': 0, # No screenshots 'screenshots-INITIAL_FORMS': 0, 'screenshots-MAX_NUM_FORMS': 1000, 'url_releases-TOTAL_FORMS': 0, # No URL release 'url_releases-INITIAL_FORMS': 0, 'url_releases-MAX_NUM_FORMS': 1000, 'package_releases-TOTAL_FORMS': 0, # No package release 'package_releases-INITIAL_FORMS': 0, 'package_releases-MAX_NUM_FORMS': 1000, } self.image_file = TEST_FILENAME
class AnnouncementAddPermissionTestCase(TestCase): def setUp(self): self.nerv = PersonaFactory(role='nerv') self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() def test_staffs_have_add_announcement_permission(self): ''' Tests staffs have permission to add announcements ''' self.assertTrue(self.nerv.has_perm('announcements.add_announcement')) def test_users_dont_have_add_announcement_permission(self): ''' Tests users do not have permission to add announcements ''' self.assertFalse(self.user.has_perm('announcements.add_announcement')) def test_wille_dont_have_add_announcement_permission(self): ''' Tests wille users do not have permission to add announcements ''' self.assertFalse(self.wille.has_perm('announcements.add_announcement')) def test_anonymous_dont_have_add_announcement_permission(self): ''' Tests anonymous users do not have permission to add announcements ''' self.assertFalse(self.anonymous.has_perm('announcements.add_announcement'))
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.other = PersonaFactory() self.other.set_password('password') self.user.save() self.other.save() self.event = EventFactory(title='変更前のイベントです', organizer=self.user)
class EntryDetailViewTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() def test_anonymous_user_can_view_public_entry(self): '''Tests anonymous user can view public entry''' entry = EntryFactory() r = self.client.get(entry.get_absolute_url()) self.assertTemplateUsed(r, 'blogs/entry_detail.html') self.assertEqual(r.context_data['object'], entry) def test_authorized_user_can_view_public_entry(self): '''Tests authorized user can view public entry''' entry = EntryFactory() self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get(entry.get_absolute_url()) self.assertTemplateUsed(r, 'blogs/entry_detail.html') self.assertEqual(r.context_data['object'], entry) def test_anonymous_user_can_not_view_protected_entry(self): '''Tests anonymous user can not view protected entry''' entry = EntryFactory(pub_state='protected') r = self.client.get(entry.get_absolute_url()) self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, entry.get_absolute_url())) def test_authorized_user_can_view_protected_entry(self): '''Tests authorized user can view public entry''' entry = EntryFactory(pub_state='protected') self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get(entry.get_absolute_url()) self.assertTemplateUsed(r, 'blogs/entry_detail.html') self.assertEqual(r.context_data['object'], entry) def test_anonymous_user_can_not_view_draft_entry(self): '''Tests anonymous user can not view draft entry''' entry = EntryFactory(pub_state='draft') r = self.client.get(entry.get_absolute_url()) self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, entry.get_absolute_url())) def test_others_can_not_view_draft_entry(self): ''' Tests others can not view draft entry User will redirect to '/entries/1/update/' ''' entry = EntryFactory(pub_state='draft') self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get(entry.get_absolute_url()) self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/{}/1/update/'.format(entry.author.username)) def test_organizer_can_view_draft_entry(self): '''Tests organizer can view draft entry on update view''' entry = EntryFactory(pub_state='draft', author=self.user) self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get(entry.get_absolute_url()) self.assertTemplateUsed(r, 'blogs/entry_form.html') self.assertEqual(r.context_data['object'], entry)
def test_member_cannot_join_project(self): '''Tests already member user cannot join to projects''' user = PersonaFactory() self.project.join(user) # django-permissionのキャッシュ対応 user = Persona.objects.get(pk=user.pk) self.assertFalse(user.has_perm('projects.join_project', self.project))
def setUp(self): self.users = (PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), PersonaFactory(role='wille'), AnonymousUser()) self.profiles = (RegistrationProfileFactory(_status='untreated'), RegistrationProfileFactory(_status='accepted'), RegistrationProfileFactory(_status='rejected'))
def test_is_member(self): '''Tests is_member returns correct value''' user = PersonaFactory() user2 = PersonaFactory() project = ProjectFactory(administrator=user) self.assertEqual(project.members.count(), 1) self.assertEqual(project.members.all()[0], user) self.assertTrue(project.is_member(user)) self.assertFalse(project.is_member(user2))
class EventListViewTestCase(TestCase): def setUp(self): arguments_list = ( (-3, -2, {'pub_state':'public'}), # 2000/9/1 ~ 2000/9/2 (1, 2, {'pub_state':'public'}), # 2000/9/5 ~ 2000/9/6 (-2, -1, {'pub_state':'protected'}), # 2000/9/3 ~ 2000/9/4 (0, 1, {'pub_state':'protected'}), # 2000/9/4 ~ 2000/9/5 (-3, -2, {'pub_state':'draft'}), # 2000/9/2 ~ 2000/9/3 (1, 2, {'pub_state':'draft'}), # 2000/9/5 ~ 2000/9/6 ) self.events = [event_factory_with_relative(*args) for args in arguments_list] self.user = PersonaFactory() self.user.set_password('password') self.user.save() def test_anonymous_can_view_only_public_events(self): ''' Tests anonymous user can view public Events only. The protected events are not displayed. ''' user = AnonymousUser() r = self.client.get('/events/') self.assertTemplateUsed('events/event_list.html') self.assertTrue('object_list', r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one event') self.assertEqual(list[0], self.events[1], '2000/9/5 ~ 6 public') def test_authenticated_can_view_all_publish_events(self): ''' Tests authenticated user can view all published events. ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/events/') self.assertTemplateUsed('events/event_list.html') self.assertTrue('object_list', r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two events') self.assertEqual(list[0], self.events[3], '2000/9/5 ~ 6 protected') self.assertEqual(list[1], self.events[1], '2000/9/5 ~ 6 public') def test_list_with_categories(self): """ イベントリストでCategoryのfilterが有効になっている """ category = CategoryFactory() event1 = EventFactory(category=category) event2 = EventFactory() self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/events/?category={}'.format(category.pk)) self.assertTemplateUsed(r, 'events/event_list.html') self.assertEqual(r.context['filter'].qs.count(), 1) self.assertTrue(event1 in r.context['filter'].qs)
def setUp(self): self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.entries = ( EntryFactory(), EntryFactory(author=self.user), EntryFactory(pub_state='protected'), EntryFactory(pub_state='protected', author=self.user), EntryFactory(pub_state='draft'), )
def test_organizer_attend_event_automatically(self): """ Event organizer attend the event automatically """ user1 = PersonaFactory() user2 = PersonaFactory() event = EventFactory(organizer=user1) self.assertEqual(event.organizer, user1) self.assertTrue(event.is_attendee(user1)) self.assertFalse(event.is_attendee(user2))
def setUp(self): self.members = ( PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), ) self.non_members = ( PersonaFactory(role='wille'), AnonymousUser(), )
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.other = PersonaFactory() self.other.set_password('password') self.other.save() self.project = ProjectFactory(administrator=self.user)
def test_is_attendee(self): """ is_attendee(user) method should return True if the specified user is in attendee """ user1 = PersonaFactory() user2 = PersonaFactory() event = EventFactory() event.attend(user1) self.assertTrue(event.is_attendee(user1)) self.assertFalse(event.is_attendee(user2))
def setUp(self): self.projects = ( ProjectFactory(), ProjectFactory(pub_state='protected'), ProjectFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): self.user = PersonaFactory(username='******') self.user.set_password('password') self.other = PersonaFactory(username='******') self.other.set_password('password') self.user.save() self.other.save() self.project = ProjectFactory(title='かわずたんのゲームだよ☆', administrator=self.user) self.category = CategoryFactory() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): self.announcements = ( AnnouncementFactory(), AnnouncementFactory(pub_state='protected'), AnnouncementFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): self.entries = ( EntryFactory(), EntryFactory(pub_state='protected'), EntryFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def test_administrators_can_quit(self): """ 管理者として参加しているメンバーは退会可 """ user1 = PersonaFactory() user2 = PersonaFactory() product = ProductFactory(administrators=(user1, user2)) self.assertEqual(product.administrators.count(), 2) product.quit(user1) self.assertEqual(product.administrators.count(), 1) self.assertFalse(user1 in product.administrators.all()) self.assertTrue(user2 in product.administrators.all())
def setUp(self): self.members = ( PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), ) self.non_members = ( PersonaFactory(role='wille'), AnonymousUser(), ) self.platform = PlatformFactory() self.category = CategoryFactory()
def setUp(self): super().setUp() self.article_author = PersonaFactory(username='******', role='children') self.comment_author = PersonaFactory(username='******', role='children') self.users['article_author'] = self.article_author self.users['comment_author'] = self.comment_author self.article = CommentTestArticle(author=self.article_author) self.article.save() self.comment = CommentFactory(content_object=self.article, user=self.comment_author)
def test_active_members_contains_active_user_only(self): '''event.active_attendeesはアクティブユーザーのみを含む''' event = EventFactory() user0 = PersonaFactory(is_active=True) user1 = PersonaFactory(is_active=False) event.attend(user0) event.attend(user1) # 管理者含め3人 self.assertEqual(len(event.active_attendees), 2) self.assertIn(event.organizer, event.active_attendees) self.assertIn(user0, event.active_attendees) self.assertNotIn(user1, event.active_attendees)
def test_active_members_contains_active_user_only(self): '''project.active_membersはアクティブユーザーのみを含む''' project = ProjectFactory() user0 = PersonaFactory(is_active=True) user1 = PersonaFactory(is_active=False) project.join(user0) project.join(user1) # 管理者含め3人 self.assertEqual(len(project.active_members), 2) self.assertIn(project.administrator, project.active_members) self.assertIn(user0, project.active_members) self.assertNotIn(user1, project.active_members)
class AnnouncementListViewTestCase(TestCase): def setUp(self): self.announcements = ( AnnouncementFactory(), AnnouncementFactory(pub_state='protected'), AnnouncementFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() def test_anonymous_can_view_only_public_announcements(self): ''' Tests anonymous user can view public Announcement only. The protected announcements are not displayed. ''' user = AnonymousUser() r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one announcement') self.assertEqual(list[0], self.announcements[0]) def test_wille_can_view_only_public_announcements(self): ''' Tests wille user can view public Announcement only. The protected announcements are not displayed. ''' self.assertTrue( self.client.login(username=self.wille, password='******')) r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one announcement') self.assertEqual(list[0], self.announcements[0]) def test_authenticated_can_view_all_publish_announcements(self): ''' Tests authenticated user can view all published announcements. ''' self.assertTrue( self.client.login(username=self.user, password='******')) r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two announcements') self.assertTrue(self.announcements[1] in list) self.assertTrue(self.announcements[0] in list) def test_paginate_by(self): """ paginator_byが5件にセットされている """ self.assertEqual(AnnouncementListView.paginate_by, 5)
def setUp(self): self.user = PersonaFactory(role='nerv') self.user.set_password('password') self.user.save() self.nerv = PersonaFactory(role='nerv') self.nerv.set_password('password') self.nerv.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.other = PersonaFactory() self.other.set_password('password') self.other.save() self.announcement = AnnouncementFactory(author=self.user)
def setUp(self): self.user = PersonaFactory(username='******', role='nerv') self.user.set_password('password') self.other = PersonaFactory(username='******') self.other.set_password('password') self.user.save() self.other.save() self.nerv = PersonaFactory(role='nerv', username='******') self.nerv.set_password('password') self.nerv.save() self.announcement = AnnouncementFactory(title='かわずたんのお知らせだよ☆', author=self.user) self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): super().setUp() self.users['administrator'] = PersonaFactory(username='******', role='children') self.users['project_member'] = PersonaFactory( username='******', role='children') self.project = ProjectFactory() self.project.join(self.users['project_member']) self.product = ProductFactory(project=self.project) # Note: # self.product.join で加えても良いが、内部で user.has_perm を呼ぶ # ので django-permission により結果がキャッシュされ、今後のテスト # 結果に影響するため、直接 administrators.add を呼び出している self.product.administrators.add(self.users['administrator'])
class EntryAuthorMonthArchiveViewTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.entries = ( EntryFactory(), EntryFactory(author=self.user), EntryFactory(pub_state='protected'), EntryFactory(pub_state='protected', author=self.user), EntryFactory(pub_state='draft'), ) def test_anonymous_can_view_only_public_entries_of_the_author(self): ''' Tests anonymous user can view public Entry written by specific author in the month only. The protected entries are not displayed. ''' user = AnonymousUser() entry = self.entries[0] lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[1]) def test_wille_can_view_only_public_entries_of_the_author(self): ''' Tests wille user can view public Entry written by specific author in the month only. The protected entries are not displayed. ''' self.assertTrue(self.client.login(username=self.wille, password='******')) entry = self.entries[0] lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[1]) def test_authenticated_can_view_all_publish_entries_of_the_author(self): ''' Tests authenticated user can view all published entries written by specific author in the month. ''' entry = self.entries[0] self.assertTrue(self.client.login(username=self.user, password='******')) lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') self.assertEqual(list[0], self.entries[3], 'protected') self.assertEqual(list[1], self.entries[1], 'public')
class EntryMonthArchiveViewTestCase(TestCase): def setUp(self): self.entries = ( EntryFactory(), EntryFactory(pub_state='protected'), EntryFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() def test_anonymous_can_view_only_public_entries(self): ''' Tests anonymous user can view public Entry written in the month only. The protected entries are not displayed. ''' user = AnonymousUser() entry = self.entries[0] lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[0]) def test_wille_can_view_only_public_entries(self): ''' Tests wille user can view public Entry written in the month only. The protected entries are not displayed. ''' self.assertTrue( self.client.login(username=self.wille, password='******')) entry = self.entries[0] lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[0]) def test_authenticated_can_view_all_publish_entries(self): ''' Tests authenticated user can view all published entries written in the month. ''' entry = self.entries[0] self.assertTrue( self.client.login(username=self.user, password='******')) lt = get_local_time(entry.published_at) r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month)) self.assertTemplateUsed('blogs/entry_archive_month.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') self.assertEqual(list[0], self.entries[1], 'protected') self.assertEqual(list[1], self.entries[0], 'public')
class ProductDeletePermissionTestCase(TestCase): def setUp(self): self.product = ProductFactory() self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() def test_anonymous_dont_have_delete_permission(self): ''' Test anonymous users do not have delete product permission ''' self.assertFalse(self.anonymous.has_perm('products.delete_product')) def test_wille_dont_have_delete_permission(self): ''' Test wille users do not have delete product permission ''' self.assertFalse(self.wille.has_perm('products.delete_product')) def test_general_user_have_delete_permission(self): ''' Test general user have delete product permission ''' self.assertTrue(self.user.has_perm('products.delete_product')) def test_anonymous_dont_have_delete_permission_with_object(self): ''' Test anonymous users do not have delete product permission ''' self.assertFalse(self.anonymous.has_perm('products.delete_product', self.product)) def test_wille_dont_have_delete_permission_with_object(self): ''' Test wille users do not have delete product permission ''' self.assertFalse(self.wille.has_perm('products.delete_product', self.product)) def test_other_user_dont_have_delete_permission_with_object(self): ''' Test other user don't have delete product permission ''' self.assertFalse(self.user.has_perm('products.delete_product', self.product)) def test_administrators_have_delete_permission_with_object(self): ''' Test administrators have delete product permission ''' self.product.administrators.add(self.user) self.assertTrue(self.user.has_perm('products.delete_product', self.product))
class AnnouncementListViewTestCase(TestCase): def setUp(self): self.announcements = ( AnnouncementFactory(), AnnouncementFactory(pub_state='protected'), AnnouncementFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() def test_anonymous_can_view_only_public_announcements(self): ''' Tests anonymous user can view public Announcement only. The protected announcements are not displayed. ''' user = AnonymousUser() r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one announcement') self.assertEqual(list[0], self.announcements[0]) def test_wille_can_view_only_public_announcements(self): ''' Tests wille user can view public Announcement only. The protected announcements are not displayed. ''' self.assertTrue(self.client.login(username=self.wille, password='******')) r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one announcement') self.assertEqual(list[0], self.announcements[0]) def test_authenticated_can_view_all_publish_announcements(self): ''' Tests authenticated user can view all published announcements. ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/announcements/') self.assertTemplateUsed('announcements/announcement_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two announcements') self.assertTrue(self.announcements[1] in list) self.assertTrue(self.announcements[0] in list) def test_paginate_by(self): """ paginator_byが5件にセットされている """ self.assertEqual(AnnouncementListView.paginate_by, 5)
def test_anonymous_dont_have_delete_announcement_permission_with_object(self): ''' Tests anonymous users do not have permission to delete specific announcement ''' self.assertFalse(self.anonymous.has_perm('announcements.delete_announcement', obj=self.announcement)) self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() self.announcement = AnnouncementFactory()
class EntryTodayArchiveViewTestCase(TestCase): def setUp(self): self.entries = ( EntryFactory(), EntryFactory(pub_state='protected'), EntryFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() def test_anonymous_can_view_only_public_entries(self): ''' Tests anonymous user can view public Entry written on today only. The protected entries are not displayed. ''' entry = self.entries[0] user = AnonymousUser() r = self.client.get('/blogs/today/') self.assertTemplateUsed('blogs/entry_archive_day.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[0]) def test_wille_can_view_only_public_entries(self): ''' Tests wille user can view public Entry written on today only. The protected entries are not displayed. ''' self.assertTrue(self.client.login(username=self.wille, password='******')) entry = self.entries[0] r = self.client.get('/blogs/today/') self.assertTemplateUsed('blogs/entry_archive_day.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one entry') self.assertEqual(list[0], self.entries[0]) def test_authenticated_can_view_all_publish_entries(self): ''' Tests authenticated user can view all published entries written on today. ''' entry = self.entries[0] self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/blogs/today/') self.assertTemplateUsed('blogs/entry_archive_day.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') self.assertEqual(list[0], self.entries[1], 'protected') self.assertEqual(list[1], self.entries[0], 'public')
class ProjectListViewTestCase(TestCase): def setUp(self): self.projects = ( ProjectFactory(), ProjectFactory(pub_state='protected'), ProjectFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() def test_anonymous_can_view_only_public_projects(self): ''' Tests anonymous user can view public Project only. The protected projects are not displayed. ''' user = AnonymousUser() r = self.client.get('/projects/') self.assertTemplateUsed('projects/project_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one project') self.assertEqual(list[0], self.projects[0]) def test_wille_can_view_only_public_projects(self): ''' Tests wille user can view public Project only. The protected projects are not displayed. ''' self.assertTrue(self.client.login(username=self.wille, password='******')) r = self.client.get('/projects/') self.assertTemplateUsed('projects/project_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 1, 'object_list has one project') self.assertEqual(list[0], self.projects[0]) def test_authenticated_can_view_all_publish_projects(self): ''' Tests authenticated user can view all published projects. ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/projects/') self.assertTemplateUsed('projects/project_list.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two projects') self.assertEqual(list[0], self.projects[1], 'protected') self.assertEqual(list[1], self.projects[0], 'public')
class EntryAuthorYearArchiveViewTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.entries = ( EntryFactory(), EntryFactory(author=self.user), EntryFactory(pub_state='protected'), EntryFactory(pub_state='protected', author=self.user), EntryFactory(pub_state='draft'), ) def test_anonymous_can_view_only_public_entries_of_the_author(self): ''' Tests anonymous user can view public Entry written by specific author in the year only. The protected entries are not displayed. ''' user = AnonymousUser() r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year)) self.assertTemplateUsed('blogs/entry_archive_year.html') self.assertTrue('date_list' in r.context_data) list = r.context_data['date_list'] self.assertEqual(list.count(), 1, 'date_list has one month') def test_wille_can_view_only_public_entries_of_the_author(self): ''' Tests wille user can view public Entry written by specific author in the year only. The protected entries are not displayed. ''' self.assertTrue(self.client.login(username=self.wille, password='******')) r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year)) self.assertTemplateUsed('blogs/entry_archive_year.html') self.assertTrue('date_list' in r.context_data) list = r.context_data['date_list'] self.assertEqual(list.count(), 1, 'date_list has one month') def test_authenticated_can_view_all_publish_entries_of_the_author(self): ''' Tests authenticated user can view all published entries written by specific author in the year. ''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year)) self.assertTemplateUsed('blogs/entry_archive_year.html') self.assertTrue('date_list' in r.context_data) list = r.context_data['date_list'] self.assertEqual(list.count(), 1, 'date_list has one month')
class EntryDeleteViewTestCase(TestCase): def setUp(self): self.user = PersonaFactory(username='******') self.user.set_password('password') self.other = PersonaFactory(username='******') self.user.save() self.other.save() self.entry = EntryFactory(title='かわずたんだよ☆', author=self.user) def test_anonymous_user_can_not_delete_via_delete_view(self): '''非ログインユーザーは記事の削除ができない''' r = self.client.post('/blogs/author_kawaztan/1/delete/') self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/delete/') self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_other_user_cannot_delete_via_delete_view(self): '''作者以外のユーザーは記事の削除ができない''' self.assertTrue(self.client.login(username=self.other, password='******')) r = self.client.post('/blogs/author_kawaztan/1/delete/') self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/delete/') self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_author_can_delete_via_delete_view(self): '''作者は記事を削除できる''' self.assertTrue(self.client.login(username=self.user, password='******')) r = self.client.post('/blogs/author_kawaztan/1/delete/') self.assertRedirects(r, '/blogs/') self.assertEqual(Entry.objects.count(), 0)
def test_anybody_have_view_perm(self): """お知らせを見るモデル権限は全員が持つ""" user = PersonaFactory(role='nerv') self.assertTrue(user.has_perm('announcements.view_announcement')) user = PersonaFactory() self.assertTrue(user.has_perm('announcements.view_announcement')) user = AnonymousUser() self.assertTrue(user.has_perm('announcements.view_announcement'))
def setUp(self): arguments_list = ( (-3, -2, {'pub_state':'public'}), # 2000/9/1 ~ 2000/9/2 (1, 2, {'pub_state':'public'}), # 2000/9/5 ~ 2000/9/6 (-2, -1, {'pub_state':'protected'}), # 2000/9/3 ~ 2000/9/4 (0, 1, {'pub_state':'protected'}), # 2000/9/4 ~ 2000/9/5 (-3, -2, {'pub_state':'draft'}), # 2000/9/2 ~ 2000/9/3 (1, 2, {'pub_state':'draft'}), # 2000/9/5 ~ 2000/9/6 ) self.events = [event_factory_with_relative(*args) for args in arguments_list] self.user = PersonaFactory() self.user.set_password('password') self.user.save()
class ProductCreatePermissionTestCase(TestCase): def setUp(self): self.product = ProductFactory() self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() def test_anonymous_dont_have_add_permission(self): ''' Test anonymous users do not have add product permission ''' self.assertFalse(self.anonymous.has_perm('products.add_product')) def test_wille_dont_have_add_permission(self): ''' Test wille users do not have add product permission ''' self.assertFalse(self.wille.has_perm('products.add_product')) def test_general_user_have_add_permission(self): ''' Test general user have add product permission ''' self.assertTrue(self.user.has_perm('products.add_product'))
def setUp(self): self.user = PersonaFactory() self.anonymous = AnonymousUser() self.profile = ProfileFactory()