Ejemplo n.º 1
0
    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
        })
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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
                       })
Ejemplo n.º 4
0
    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')
Ejemplo n.º 5
0
    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})
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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
     )
Ejemplo n.º 8
0
    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'
        )
Ejemplo n.º 9
0
    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))
Ejemplo n.º 10
0
    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))
Ejemplo n.º 11
0
    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
                                  })
Ejemplo n.º 12
0
    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
            })