def setUp(self): self.contributor = UserF.create() self.admin = UserF.create() self.non_member = UserF.create() self.view_member = UserF.create() self.commentor = UserF.create() self.project = ProjectF( add_admins=[self.admin], add_contributors=[self.contributor] ) category = CategoryFactory(**{'project': self.project}) self.view = GroupingFactory(**{'project': self.project}) group = UserGroupF.create( add_users=[self.view_member, self.commentor], **{'project': self.view.project} ) GroupingUserGroupFactory.create( **{'grouping': self.view, 'usergroup': group} ) RuleFactory( **{'grouping': self.view, 'category': category} ) self.observation = ObservationFactory.create(**{ 'project': self.project, 'category': category }) self.comment = CommentFactory.create(**{ 'commentto': self.observation }) self.comment_to_remove = CommentFactory.create(**{ 'commentto': self.observation, 'creator': self.commentor })
def test_add_comment_to_observation_with_view_member(self): view_member = UserF.create() group = UserGroupF.create( add_users=[view_member], **{'project': self.view.project} ) GroupingUserGroupFactory.create( **{'grouping': self.view, 'usergroup': group} ) response = self.get_response(view_member) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def add_contributors(self, create, extracted, **kwargs): from users.tests.model_factories import UserGroupF if not create: return if extracted: UserGroupF(add_users=extracted, **{ 'project': self, 'can_contribute': True })
def test_update_description_with_view_member(self): view_member = UserF.create() group = UserGroupF.create(add_users=[view_member], **{'project': self.view.project}) GroupingUserGroupFactory.create(**{ 'grouping': self.view, 'usergroup': group }) response = self._put({'description': 'bockwurst'}, view_member) self.assertEqual(response.status_code, 403) self.assertEqual( Grouping.objects.get(pk=self.view.id).description, 'description')
def add_viewers(self, create, extracted, **kwargs): if not create: return if extracted: from users.tests.model_factories import (UserGroupF, GroupingUserGroupFactory) group = UserGroupF(add_users=extracted, **{ 'project': self.project, 'can_contribute': False }) GroupingUserGroupFactory(**{'grouping': self, 'usergroup': group})
def test_get_object_with_creator_is_viewmember(self): group = UserGroupF.create( add_users=[self.creator], **{'project': self.view.project} ) GroupingUserGroupFactory.create( **{'grouping': self.view, 'usergroup': group} ) view = GroupingContributionsSingleCommentAPIView() observation = view.get_object( self.creator, self.observation.project.id, self.view.id, self.observation.id ) self.assertEqual(observation, self.observation)
def test_get_object_with_view_member_not_creator(self): view_member = UserF.create() group = UserGroupF.create( add_users=[view_member], **{'project': self.view.project} ) GroupingUserGroupFactory.create( **{'grouping': self.view, 'usergroup': group} ) view = GroupingContributionsSingleCommentAPIView() view.get_object( view_member, self.observation.project.id, self.view.id, self.observation.id )
def test_update_description_with_view_member(self): view_member = UserF.create() group = UserGroupF.create( add_users=[view_member], **{'project': self.view.project} ) GroupingUserGroupFactory.create( **{'grouping': self.view, 'usergroup': group} ) response = self._put({'description': 'bockwurst'}, view_member) self.assertEqual(response.status_code, 403) self.assertEqual( Grouping.objects.get(pk=self.view.id).description, 'description' )
def test_moderator(self): user = UserF.create() view = GroupingFactory.create() group = UserGroupF.create( add_users=[user], **{'project': view.project, 'can_moderate': True} ) GroupingUserGroupFactory.create( **{'grouping': view, 'usergroup': group, 'can_view': True, 'can_read': True} ) self.assertTrue(view.can_view(user)) self.assertTrue(view.can_read(user)) self.assertTrue(view.can_moderate(user))
def test_moderator(self): user = UserF.create() view = GroupingFactory.create() group = UserGroupF.create(add_users=[user], **{ 'project': view.project, 'can_moderate': True }) GroupingUserGroupFactory.create( **{ 'grouping': view, 'usergroup': group, 'can_view': True, 'can_read': True }) self.assertTrue(view.can_view(user)) self.assertTrue(view.can_read(user)) self.assertTrue(view.can_moderate(user))
def setUp(self): self.moderator_view = UserF.create() self.moderator = UserF.create() self.contributor_view = UserF.create() self.contributor = UserF.create() self.viewer_view = UserF.create() self.viewer = UserF.create() self.some_dude = UserF.create() self.project = ProjectF.create(**{ 'isprivate': False, 'everyone_contributes': False }) self.view = GroupingFactory(**{ 'project': self.project, 'isprivate': False }) self.moderators_view = UserGroupF(add_users=[self.moderator_view], **{ 'project': self.project, 'can_moderate': True }) self.contributors_view = UserGroupF(add_users=[self.contributor_view], **{ 'project': self.project, 'can_contribute': True }) self.viewers_view = UserGroupF(add_users=[self.viewer_view], **{ 'project': self.project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create(**{ 'grouping': self.view, 'usergroup': self.moderators_view }) GroupingUserGroupFactory.create(**{ 'grouping': self.view, 'usergroup': self.contributors_view }) GroupingUserGroupFactory.create(**{ 'grouping': self.view, 'usergroup': self.viewers_view }) self.moderators = UserGroupF(add_users=[self.moderator], **{ 'project': self.project, 'can_moderate': True }) self.contributors = UserGroupF(add_users=[self.contributor], **{ 'project': self.project, 'can_contribute': True }) self.viewers = UserGroupF(add_users=[self.viewer], **{ 'project': self.project, 'can_contribute': False, 'can_moderate': False })
def setUp(self): self.admin = UserF.create() self.moderator_view = UserF.create() self.moderator = UserF.create() self.contributor_view = UserF.create() self.contributor = UserF.create() self.viewer_view = UserF.create() self.viewer = UserF.create() self.some_dude = UserF.create() self.private_project = ProjectF.create(add_admins=[self.admin], **{ 'name': 'Private', 'isprivate': True, 'everyone_contributes': False }) self.private_view = GroupingFactory(**{ 'project': self.private_project, 'isprivate': True }) self.private_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.private_project, 'can_moderate': True }) self.private_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.private_project, 'can_contribute': True }) self.private_viewers_view = UserGroupF(add_users=[self.viewer_view], **{ 'project': self.private_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_view, 'usergroup': self.private_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_view, 'usergroup': self.private_contributors_view }) GroupingUserGroupFactory.create(**{ 'grouping': self.private_view, 'usergroup': self.private_viewers_view }) self.private_moderators = UserGroupF(add_users=[self.moderator], **{ 'project': self.private_project, 'can_moderate': True }) self.private_contributors = UserGroupF(add_users=[self.contributor], **{ 'project': self.private_project, 'can_contribute': True }) self.private_viewers = UserGroupF(add_users=[self.viewer], **{ 'project': self.private_project, 'can_contribute': False, 'can_moderate': False }) self.private_publicview_project = ProjectF.create( add_admins=[self.admin], **{ 'name': 'Private with public view', 'isprivate': True, 'everyone_contributes': False }) self.private_publicview_view = GroupingFactory(**{ 'project': self.private_publicview_project, 'isprivate': False }) self.private_publicview_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.private_publicview_project, 'can_moderate': True }) self.private_publicview_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.private_publicview_project, 'can_contribute': True }) self.private_publicview_viewers_view = UserGroupF( add_users=[self.viewer_view], **{ 'project': self.private_publicview_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicview_view, 'usergroup': self.private_publicview_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicview_view, 'usergroup': self.private_publicview_contributors_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicview_view, 'usergroup': self.private_publicview_viewers_view }) self.private_publicview_moderators = UserGroupF( add_users=[self.moderator], **{ 'project': self.private_publicview_project, 'can_moderate': True }) self.private_publicview_contributors = UserGroupF( add_users=[self.contributor], **{ 'project': self.private_publicview_project, 'can_contribute': True }) self.private_publicview_viewers = UserGroupF( add_users=[self.viewer], **{ 'project': self.private_publicview_project, 'can_contribute': False, 'can_moderate': False }) self.private_publicviews_project = ProjectF.create( add_admins=[self.admin], **{ 'name': 'Private with public views', 'isprivate': True, 'everyone_contributes': False }) self.private_publicviews_view = GroupingFactory(**{ 'project': self.private_publicviews_project, 'isprivate': False }) self.private_publicviews_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.private_publicviews_project, 'can_moderate': True }) self.private_publicviews_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.private_publicviews_project, 'can_contribute': True }) self.private_publicviews_viewers_view = UserGroupF( add_users=[self.viewer_view], **{ 'project': self.private_publicviews_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicviews_view, 'usergroup': self.private_publicviews_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicviews_view, 'usergroup': self.private_publicviews_contributors_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.private_publicviews_view, 'usergroup': self.private_publicviews_viewers_view }) self.private_publicviews_moderators = UserGroupF( add_users=[self.moderator], **{ 'project': self.private_publicviews_project, 'can_moderate': True }) self.private_publicviews_contributors = UserGroupF( add_users=[self.contributor], **{ 'project': self.private_publicviews_project, 'can_contribute': True }) self.private_publicviews_viewers = UserGroupF( add_users=[self.viewer], **{ 'project': self.private_publicviews_project, 'can_contribute': False, 'can_moderate': False }) self.public_project = ProjectF.create(add_admins=[self.admin], **{ 'name': 'Public', 'isprivate': False, 'everyone_contributes': False }) self.public_view = GroupingFactory(**{ 'project': self.public_project, 'isprivate': True }) self.public_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.public_project, 'can_moderate': True }) self.public_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.public_project, 'can_contribute': True }) self.public_viewers_view = UserGroupF(add_users=[self.viewer_view], **{ 'project': self.public_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_view, 'usergroup': self.public_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_view, 'usergroup': self.public_contributors_view }) GroupingUserGroupFactory.create(**{ 'grouping': self.public_view, 'usergroup': self.public_viewers_view }) self.public_moderators = UserGroupF(add_users=[self.moderator], **{ 'project': self.public_project, 'can_moderate': True }) self.public_contributors = UserGroupF(add_users=[self.contributor], **{ 'project': self.public_project, 'can_contribute': True }) self.public_viewers = UserGroupF(add_users=[self.viewer], **{ 'project': self.public_project, 'can_contribute': False, 'can_moderate': False }) self.public_publicview_project = ProjectF.create( add_admins=[self.admin], **{ 'name': 'Public with public view', 'isprivate': False, 'everyone_contributes': False }) self.public_publicview_view = GroupingFactory(**{ 'project': self.public_publicview_project, 'isprivate': False }) self.public_publicview_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.public_publicview_project, 'can_moderate': True }) self.public_publicview_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.public_publicview_project, 'can_contribute': True }) self.public_publicview_viewers_view = UserGroupF( add_users=[self.viewer_view], **{ 'project': self.public_publicview_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicview_view, 'usergroup': self.public_publicview_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicview_view, 'usergroup': self.public_publicview_contributors_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicview_view, 'usergroup': self.public_publicview_viewers_view }) self.public_publicview_moderators = UserGroupF( add_users=[self.moderator], **{ 'project': self.public_publicview_project, 'can_moderate': True }) self.public_publicview_contributors = UserGroupF( add_users=[self.contributor], **{ 'project': self.public_publicview_project, 'can_contribute': True }) self.public_publicview_viewers = UserGroupF( add_users=[self.viewer], **{ 'project': self.public_publicview_project, 'can_contribute': False, 'can_moderate': False }) self.public_publicviews_project = ProjectF.create( add_admins=[self.admin], **{ 'name': 'public with all public views', 'isprivate': False, 'everyone_contributes': False }) self.public_publicviews_view = GroupingFactory(**{ 'project': self.public_publicviews_project, 'isprivate': False }) self.public_publicviews_moderators_view = UserGroupF( add_users=[self.moderator_view], **{ 'project': self.public_publicviews_project, 'can_moderate': True }) self.public_publicviews_contributors_view = UserGroupF( add_users=[self.contributor_view], **{ 'project': self.public_publicviews_project, 'can_contribute': True }) self.public_publicviews_viewers_view = UserGroupF( add_users=[self.viewer_view], **{ 'project': self.public_publicviews_project, 'can_contribute': False, 'can_moderate': False }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicviews_view, 'usergroup': self.public_publicviews_moderators_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicviews_view, 'usergroup': self.public_publicviews_contributors_view }) GroupingUserGroupFactory.create( **{ 'grouping': self.public_publicviews_view, 'usergroup': self.public_publicviews_viewers_view }) self.public_publicviews_moderators = UserGroupF( add_users=[self.moderator], **{ 'project': self.public_publicviews_project, 'can_moderate': True }) self.public_publicviews_contributors = UserGroupF( add_users=[self.contributor], **{ 'project': self.public_publicviews_project, 'can_contribute': True }) self.public_publicviews_viewers = UserGroupF( add_users=[self.viewer], **{ 'project': self.public_publicviews_project, 'can_contribute': False, 'can_moderate': False })