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))
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'))
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 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_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'))
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))
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))
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 test_others_can_view_public(self): '''Tests others can view public accounts''' user = PersonaFactory() account = AccountFactory(pub_state='public') self.assertTrue(user.has_perm('profiles.view_account', account))
def test_wille_cannot_join_project(self): '''Tests wille user cannot join to projects''' user = PersonaFactory(role='wille') self.assertFalse(user.has_perm('projects.join_project', self.project))
def test_others_can_not_view_draft(self): '''Tests others can not view draft''' user = PersonaFactory() project = ProjectFactory(pub_state='draft') self.assertFalse(user.has_perm('projects.view_project', project))
def test_staff_has_change_perm(self): '''Tests staff can change announcement''' user = PersonaFactory(role='nerv') self.assertTrue(user.has_perm('announcements.change_announcement'))
def test_authorized_has_not_view_perm_of_draft(self): """ログインユーザ-は下書きお知らせを見ることができない""" obj = AnnouncementFactory(pub_state='draft') user = PersonaFactory() self.assertFalse(user.has_perm('announcements.view_announcement', obj))
def test_anyone_cannot_join_draft_project(self): '''Any user can not join to draft projects''' project = ProjectFactory(pub_state='draft') user = PersonaFactory() self.assertFalse(user.has_perm('projects.join_project', project)) self.assertFalse(project.administrator.has_perm('projects.join_project', project))
def test_members_can_not_delete(self): '''Tests members can not delete a project''' project = ProjectFactory() user = PersonaFactory() project.join(user) self.assertFalse(user.has_perm('projects.delete_project', project))
def test_authorized_has_view_perm_of_protected(self): """ログインユーザーは公開お知らせを見ることができる""" obj = AnnouncementFactory(pub_state='protected') user = PersonaFactory() self.assertTrue(user.has_perm('announcements.view_announcement', obj))
def test_not_member_cannot_quit_project(self): '''Tests not member user cannot quit from projects''' user = PersonaFactory() self.assertFalse(user.has_perm('projects.quit_project', self.project))
def test_others_can_not_edit(self): '''Tests others can no edit a project''' user = PersonaFactory() project = ProjectFactory() self.assertFalse(user.has_perm('projects.change_project', project))
def test_member_can_quit_project(self): '''Tests member can quit from projects''' user = PersonaFactory() self.project.join(user) self.assertTrue(user.has_perm('projects.quit_project', self.project))
def test_wille_cannot_view_protected(self): '''Tests wille can not view protected''' user = PersonaFactory(role='wille') project = ProjectFactory(pub_state='protected') self.assertFalse(user.has_perm('projects.view_project', project))
def test_others_can_view_protected(self): '''Tests others can view protected''' user = PersonaFactory() project = ProjectFactory(pub_state='protected') self.assertTrue(user.has_perm('projects.view_project', project))
class AnnouncementDeletePermissionTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.nerv = PersonaFactory(role='nerv') self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() self.announcement = AnnouncementFactory() def test_staffs_have_delete_announcement_perm(self): """ スタッフはお知らせ削除権限を持つ """ self.assertTrue(self.nerv.has_perm( 'announcements.delete_announcement')) def test_users_do_not_have_delete_announcement_perm(self): """ ログインユーザーはお知らせ削除権限を持たない """ self.assertFalse(self.user.has_perm( 'announcements.delete_announcement')) def test_wille_dont_have_delete_announcement_perm(self): """ Willeユーザーはお知らせ削除権限を持たない """ self.assertFalse(self.wille.has_perm( 'announcements.delete_announcement')) def test_anonymous_dont_have_delete_announcement_perm(self): """ 非ログインユーザーはお知らせ削除権限を持たない """ self.assertFalse(self.anonymous.has_perm( 'announcements.delete_announcement')) def test_staffs_have_delete_announcement_perm_with_obj(self): """ スタッフはお知らせ削除権限を持つ(オブジェクト) """ self.assertTrue(self.nerv.has_perm( 'announcements.delete_announcement', obj=self.announcement)) def test_users_dont_have_delete_announcement_perm_with_obj(self): """ ログインユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse(self.user.has_perm( 'announcements.delete_announcement', obj=self.announcement)) def test_author_have_delete_perm(self): """ 作成者はお知らせ削除権限を持つ(オブジェクト) """ self.assertTrue(self.announcement.author.has_perm( 'announcements.delete_announcement', obj=self.announcement)) def test_wille_dont_have_delete_announcement_perm_with_obj(self): """ Willeユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse(self.wille.has_perm( 'announcements.delete_announcement', obj=self.announcement)) def test_anonymous_dont_have_delete_announcement_perm_with_obj(self): """ 非ログインユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse(self.anonymous.has_perm( 'announcements.delete_announcement', obj=self.announcement))
def test_staff_has_view_perm_of_draft(self): """スタッフは下書きお知らせを見ることができる""" obj = AnnouncementFactory(pub_state='draft') user = PersonaFactory(role='nerv') self.assertTrue(user.has_perm('announcements.view_announcement', obj))
def test_staff_has_view_perm_of_draft(self): '''Tests staff can view draft announcement''' obj = AnnouncementFactory(pub_state='draft') user = PersonaFactory(role='nerv') self.assertTrue(user.has_perm('announcements.view_announcement', obj))
def test_others_can_not_delete(self): '''Tests others can not delete a project''' user = PersonaFactory() project = ProjectFactory() self.assertFalse(user.has_perm('projects.delete_project', project))
class AnnouncementDeletePermissionTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.nerv = PersonaFactory(role='nerv') self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() self.announcement = AnnouncementFactory() def test_staffs_have_delete_announcement_perm(self): """ スタッフはお知らせ削除権限を持つ """ self.assertTrue( self.nerv.has_perm('announcements.delete_announcement')) def test_users_do_not_have_delete_announcement_perm(self): """ ログインユーザーはお知らせ削除権限を持たない """ self.assertFalse( self.user.has_perm('announcements.delete_announcement')) def test_wille_dont_have_delete_announcement_perm(self): """ Willeユーザーはお知らせ削除権限を持たない """ self.assertFalse( self.wille.has_perm('announcements.delete_announcement')) def test_anonymous_dont_have_delete_announcement_perm(self): """ 非ログインユーザーはお知らせ削除権限を持たない """ self.assertFalse( self.anonymous.has_perm('announcements.delete_announcement')) def test_staffs_have_delete_announcement_perm_with_obj(self): """ スタッフはお知らせ削除権限を持つ(オブジェクト) """ self.assertTrue( self.nerv.has_perm('announcements.delete_announcement', obj=self.announcement)) def test_users_dont_have_delete_announcement_perm_with_obj(self): """ ログインユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse( self.user.has_perm('announcements.delete_announcement', obj=self.announcement)) def test_author_have_delete_perm(self): """ 作成者はお知らせ削除権限を持つ(オブジェクト) """ self.assertTrue( self.announcement.author.has_perm( 'announcements.delete_announcement', obj=self.announcement)) def test_wille_dont_have_delete_announcement_perm_with_obj(self): """ Willeユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse( self.wille.has_perm('announcements.delete_announcement', obj=self.announcement)) def test_anonymous_dont_have_delete_announcement_perm_with_obj(self): """ 非ログインユーザーはお知らせ削除権限を持たない(オブジェクト) """ self.assertFalse( self.anonymous.has_perm('announcements.delete_announcement', obj=self.announcement))
def test_authorized_has_view_perm_of_protected(self): '''Tests authorized can view protected announcement''' obj = AnnouncementFactory(pub_state='protected') user = PersonaFactory() self.assertTrue(user.has_perm('announcements.view_announcement', obj))
def test_others_can_not_delete(self): '''Tests others can not delete an profile''' user = PersonaFactory() profile = ProfileFactory() self.assertFalse(user.has_perm('profiles.delete_profile', profile))
def test_authorized_has_not_view_perm_of_draft(self): '''Tests authorized can not view draft announcement''' obj = AnnouncementFactory(pub_state='draft') user = PersonaFactory() self.assertFalse(user.has_perm('announcements.view_announcement', obj))
def test_others_can_view_public(self): '''Tests others can view public''' user = PersonaFactory() profile = ProfileFactory(pub_state='public') self.assertTrue(user.has_perm('profiles.view_profile', profile))
def test_authorized_has_not_change_perm(self): '''Tests authorized can not change announcement''' user = PersonaFactory() self.assertFalse(user.has_perm('announcements.change_announcement'))
def test_members_can_edit(self): '''Tests members can edit a project''' project = ProjectFactory() user = PersonaFactory() project.join(user) self.assertTrue(user.has_perm('projects.change_project', project))
def test_others_can_not_edit(self): '''Tests others can no edit an profile''' user = PersonaFactory() profile = ProfileFactory() self.assertFalse(user.has_perm('profiles.change_profile', profile))
def test_authorized_can_join_project(self): '''Tests authorized user can join to projects''' user = PersonaFactory() self.assertTrue(user.has_perm('projects.join_project', self.project))
class AnnouncementChangePermissionTestCase(TestCase): def setUp(self): self.user = PersonaFactory() self.nerv = PersonaFactory(role='nerv') self.wille = PersonaFactory(role='wille') self.anonymous = AnonymousUser() self.announcement = AnnouncementFactory() def test_staffs_have_change_announcement_permission(self): ''' Tests staffs have permission to change announcements ''' self.assertTrue(self.nerv.has_perm('announcements.change_announcement')) def test_users_dont_have_change_announcement_permission(self): ''' Tests users do not have permission to change announcements ''' self.assertFalse(self.user.has_perm('announcements.change_announcement')) def test_wille_dont_have_change_announcement_permission(self): ''' Tests wille users do not have permission to change announcements ''' self.assertFalse(self.wille.has_perm('announcements.change_announcement')) def test_anonymous_dont_have_change_announcement_permission(self): ''' Tests anonymous users do not have permission to change announcements ''' self.assertFalse(self.anonymous.has_perm('announcements.change_announcement')) def test_staffs_have_change_announcement_permission_with_object(self): ''' Tests staffs have permission to change specific announcement ''' self.assertTrue(self.nerv.has_perm('announcements.change_announcement', obj=self.announcement)) def test_users_dont_have_change_announcement_permission_with_object(self): ''' Tests users do not have permission to change specific announcement ''' self.assertFalse(self.user.has_perm('announcements.change_announcement', obj=self.announcement)) def test_author_have_change_permission(self): ''' Tests onwers have permission to change own announcement ''' self.assertTrue(self.announcement.author.has_perm('announcements.change_announcement', obj=self.announcement)) def test_wille_dont_have_change_announcement_permission_with_object(self): ''' Tests wille users do not have permission to change specific announcement ''' self.assertFalse(self.wille.has_perm('announcements.change_announcement', obj=self.announcement)) def test_anonymous_dont_have_change_announcement_permission_with_object(self): ''' Tests anonymous users do not have permission to change specific announcement ''' self.assertFalse(self.anonymous.has_perm('announcements.change_announcement', obj=self.announcement))
def _test_add(self, role, enable): user = PersonaFactory(role=role) if enable: self.assertTrue(user.has_perm('projects.add_project')) else: self.assertFalse(user.has_perm('projects.add_project'))