예제 #1
0
    def setup(self):
        # Organization 1
        self.organization = factories.Organization()
        dataset = factories.Dataset(owner_org=self.organization['id'])
        issue = issue_factories.Issue(dataset_id=dataset['id'])

        self.comment1 = issue_factories.IssueComment(
            issue_number=issue['number'],
            dataset_id=issue['dataset_id'],
        )
        comment_object = IssueComment.get(self.comment1['id'])
        comment_object.change_visibility(model.Session, u'hidden')

        self.comment2 = issue_factories.IssueComment(  # unreported comment
            issue_number=issue['number'],
            dataset_id=issue['dataset_id'],
        )

        # Organization 2
        self.organization2 = factories.Organization()
        dataset2 = factories.Dataset(owner_org=self.organization2['id'])
        issue2 = issue_factories.Issue(dataset_id=dataset2['id'])

        self.comment3 = issue_factories.IssueComment(
            issue_number=issue2['number'],
            dataset_id=issue2['dataset_id'],
        )
        comment_object = IssueComment.get(self.comment3['id'])
        comment_object.change_visibility(model.Session, u'hidden')

        self.comment4 = issue_factories.IssueComment(  # unreported comment
            issue_number=issue2['number'],
            dataset_id=issue2['dataset_id'],
        )
    def setup(self):
        # Organization 1
        self.organization = factories.Organization()
        self.dataset = factories.Dataset(owner_org=self.organization['id'])
        self.issue = issue_factories.Issue(dataset_id=self.dataset['id'])

        self.comment1 = issue_factories.IssueComment(
            issue_number=self.issue['number'],
            dataset_id=self.issue['dataset_id'],
        )

        self.comment2 = issue_factories.IssueComment(
            issue_number=self.issue['number'],
            dataset_id=self.issue['dataset_id'],
        )

        self.comment3 = issue_factories.IssueComment(
            issue_number=self.issue['number'],
            dataset_id=self.issue['dataset_id'],
        )

        # Organization 2
        self.organization2 = factories.Organization()
        dataset2 = factories.Dataset(owner_org=self.organization2['id'])
        issue2 = issue_factories.Issue(dataset_id=dataset2['id'])

        self.comment4 = issue_factories.IssueComment(
            issue_number=issue2['number'],
            dataset_id=issue2['dataset_id'],
        )

        self.comment5 = issue_factories.IssueComment(  # unreported comment
            issue_number=issue2['number'],
            dataset_id=issue2['dataset_id'],
        )
예제 #3
0
    def test_report_twice(self, owner, org, dataset, issue):
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                              dataset_id=dataset['id'],
                                              issue_number=issue['number'])

        user = factories.User(name='unauthed')
        context = {
           'user': user['name'],
           'model': model,
        }
        helpers.call_action('issue_comment_report',
                           context=context,
                           dataset_id=dataset['id'],
                           issue_number=issue['number'],
                           comment_id=comment['id'])

        pytest.raises(
                    ReportAlreadyExists,
                    helpers.call_action,
                    'issue_comment_report',
                    context=context,
                    dataset_id=dataset['id'],
                    issue_number=issue['number'],
                    comment_id=comment['id'],
        )
예제 #4
0
def comment(issue, user):
    comment = issue_factories.IssueComment(
        user_id=user['id'],
        issue_number=issue['number'],
        dataset_id=issue['dataset_id'],
    )
    return comment
예제 #5
0
 def comment2(self, issue, dataset):
     comment2 = issue_factories.IssueComment(
         dataset_id=dataset['id'],
         issue_number=issue['number'],
         comment='this should not be shown',
     )
     return comment2
예제 #6
0
    def test_publisher_reports_a_comment(self):
        owner = factories.User()
        org = factories.Organization(user=owner)
        dataset = factories.Dataset(owner_org=org['name'])
        issue = issue_factories.Issue(user=owner,
                                      user_id=owner['id'],
                                      dataset_id=dataset['id'])

        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])

        context = {
            'user': owner['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])

        result = helpers.call_action('issue_show',
                                     issue_number=issue['number'],
                                     dataset_id=dataset['id'])
        assert_equals('hidden', result['comments'][0]['visibility'])
예제 #7
0
    def test_filter_most_commented(self):
        user = factories.User()
        dataset = factories.Dataset()

        # issue#1 has 3 comment. #2 has 1 comments, etc
        comment_count = [3, 1, 2, 0]
        issue_ids = []
        for i in comment_count:
            issue = issue_factories.Issue(user_id=user['id'],
                                          dataset_id=dataset['id'],
                                          description=i)
            issue_ids.append(issue['id'])

            for j in range(0, i):
                issue_factories.IssueComment(
                    user_id=user['id'],
                    issue_number=issue['number'],
                    dataset_id=issue['dataset_id'],
                )

        reordered_ids = [
            issue_ids[0], issue_ids[2], issue_ids[1], issue_ids[3]
        ]

        issues_list = helpers.call_action('issue_search',
                                          context={'user': user['name']},
                                          dataset_id=dataset['id'],
                                          sort='most_commented')['results']
        assert_equals(reordered_ids, [i['id'] for i in issues_list])
        assert_equals([3, 2, 1, 0], [i['comment_count'] for i in issues_list])
예제 #8
0
 def comment(self, issue, dataset):
     comment = issue_factories.IssueComment(
         dataset_id=dataset['id'],
         issue_number=issue['number'],
         comment='this is a comment',
     )
     return comment
예제 #9
0
    def test_clear_as_user(self):
        owner = factories.User()
        org = factories.Organization(user=owner)
        dataset = factories.Dataset(owner_org=org['name'])
        issue = issue_factories.Issue(user_id=owner['id'],
                                      dataset_id=dataset['id'])
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])

        user = factories.User()
        model.Session.add(
            IssueComment.Report(user['id'], parent_id=comment['id']))
        model.Session.commit()
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report_clear',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])

        comment_obj = IssueComment.get(comment['id'])
        assert_equals(len(comment_obj.abuse_reports), 0)
        assert_equals('visible', comment_obj.visibility)
예제 #10
0
 def test_clear_as_publisher(self):
     owner = factories.User()
     org = factories.Organization(user=owner)
     dataset = factories.Dataset(owner_org=org['name'])
     issue = issue_factories.Issue(user_id=owner['id'],
                                   dataset_id=dataset['id'])
     comment = issue_factories.IssueComment(user_id=owner['id'],
                                            dataset_id=dataset['id'],
                                            issue_number=issue['number'],
                                            visibility='hidden')
     context = {
         'user': owner['name'],
         'model': model,
     }
     model.Session.add(
         IssueComment.Report(owner['id'], parent_id=comment['id']))
     model.Session.commit()
     helpers.call_action('issue_comment_report_clear',
                         context=context,
                         dataset_id=dataset['id'],
                         issue_number=issue['number'],
                         comment_id=comment['id'])
     result = helpers.call_action('issue_show',
                                  issue_number=issue['number'],
                                  dataset_id=dataset['id'])
     assert_equals('visible', result['comments'][0]['visibility'])
     comment_obj = IssueComment.get(comment['id'])
     model.Session.refresh(comment_obj)
     assert_equals(len(comment_obj.abuse_reports), 0)
예제 #11
0
    def test_max_strikes_hides_comment(self):
        owner = factories.User()
        org = factories.Organization(user=owner)
        dataset = factories.Dataset(owner_org=org['name'])
        issue = issue_factories.Issue(user_id=owner['id'],
                                      dataset_id=dataset['id'])
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])

        user = factories.User(name='unauthed')
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])
        result = helpers.call_action('issue_show',
                                     dataset_id=dataset['id'],
                                     issue_number=issue['number'])
        comment_obj = IssueComment.get(comment['id'])
        assert_equals(len(comment_obj.abuse_reports), 1)
        assert_equals('hidden', result['comments'][0]['visibility'])
예제 #12
0
 def comment3(self, issue):
     comment3 = issue_factories.IssueComment(
         issue_number=issue['number'],
         dataset_id=issue['dataset_id'],
     )
     comment_object = IssueComment.get(comment3['id'])
     comment_object.change_visibility(model.Session, u'hidden')
     return comment3
예제 #13
0
    def setup(self):
        user = factories.User()
        dataset = factories.Dataset()

        issue = issue_factories.Issue(user=user,
                                      user_id=user['id'],
                                      dataset_id=dataset['id'])
        issue_factories.IssueComment(
            user_id=user['id'],
            issue_number=issue['number'],
            dataset_id=issue['dataset_id'],
        )
예제 #14
0
    def setup(self):
        super(TestCommentModeration, self).setup()
        self.user = factories.User()
        self.organization = factories.Organization(user=self.user)

        self.dataset = factories.Dataset(user=self.user,
                                         owner_org=self.organization['name'])

        self.issue = issue_factories.Issue(user=self.user,
                                           user_id=self.user['id'],
                                           dataset_id=self.dataset['id'])

        self.comment = issue_factories.IssueComment(
            dataset_id=self.dataset['id'],
            issue_number=self.issue['number'],
            comment='this is a comment',
        )

        self.comment2 = issue_factories.IssueComment(
            dataset_id=self.dataset['id'],
            issue_number=self.issue['number'],
            comment='this should not be shown',
        )
예제 #15
0
 def setup(self):
     super(TestReportComment, self).setup()
     self.joe_public = factories.User()
     self.owner = factories.User()
     self.org = factories.Organization(user=self.owner)
     self.dataset = factories.Dataset(user=self.owner,
                                      owner_org=self.org['name'])
     self.issue = issue_factories.Issue(user=self.owner,
                                        user_id=self.owner['id'],
                                        dataset_id=self.dataset['id'])
     self.comment = issue_factories.IssueComment(
         user_id=self.owner['id'],
         dataset_id=self.dataset['id'],
         issue_number=self.issue['number'])
     self.app = self._get_test_app()
예제 #16
0
    def test_publisher_reports_a_comment(self, owner, org, dataset, issue):
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])
        context = {
            'user': owner['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report', context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])

        result = helpers.call_action('issue_show',
                                     issue_number=issue['number'],
                                     dataset_id=dataset['id'])
        assert 'hidden' == result['comments'][0]['visibility']
예제 #17
0
    def test_report_comment(self, owner, dataset, issue):
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])
        user = factories.User(name='unauthed')
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])

        comment_obj = IssueComment.get(comment['id'])
        assert len(comment_obj.abuse_reports) == 1
        assert comment_obj.visibility == 'visible'
예제 #18
0
    def test_max_strikes_hides_comment(self, owner, org, dataset, issue):
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])

        user = factories.User(name='unauthed')
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report', context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])
        result = helpers.call_action('issue_show',
                                     dataset_id=dataset['id'],
                                     issue_number=issue['number'])
        comment_obj = IssueComment.get(comment['id'])
        assert len(comment_obj.abuse_reports) == 1
        assert 'hidden' == result['comments'][0]['visibility']
예제 #19
0
    def test_increase_spam(self):
        owner = factories.User()
        org = factories.Organization(user=owner)
        dataset = factories.Dataset(owner_org=org['name'])
        issue = issue_factories.Issue(user_id=owner['id'],
                                      dataset_id=dataset['id'])
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               issue_id=issue['id'])

        user = factories.User(name='unauthed')
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report_spam',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_comment_id=comment['id'])
        result = helpers.call_action('issue_show', id=issue['id'])

        assert_equals(1, result['comments'][0]['spam_count'])
예제 #20
0
 def test_reset_spam_state(self):
     owner = factories.User()
     org = factories.Organization(user=owner)
     dataset = factories.Dataset(owner_org=org['name'])
     issue = issue_factories.Issue(user_id=owner['id'],
                                   dataset_id=dataset['id'])
     comment = issue_factories.IssueComment(user_id=owner['id'],
                                            issue_id=issue['id'],
                                            spam_state='hidden',
                                            spam_count='20')
     context = {
         'user': owner['name'],
         'model': model,
     }
     helpers.call_action('issue_comment_reset_spam_state',
                         context=context,
                         dataset_id=dataset['id'],
                         issue_comment_id=comment['id'])
     result = helpers.call_action('issue_show', id=issue['id'])
     assert_equals(0, result['comments'][0]['spam_count'])
     assert_equals('visible', result['comments'][0]['spam_state'])
예제 #21
0
    def test_clear_as_user(self, owner, org, dataset, issue):
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               dataset_id=dataset['id'],
                                               issue_number=issue['number'])

        user = factories.User()
        model.Session.add(IssueComment.Report(user['id'],
                                              parent_id=comment['id']))
        model.Session.commit()
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report_clear', context=context,
                            dataset_id=dataset['id'],
                            issue_number=issue['number'],
                            comment_id=comment['id'])

        comment_obj = IssueComment.get(comment['id'])
        assert len(comment_obj.abuse_reports) == 0
        assert 'visible' == comment_obj.visibility
예제 #22
0
 def test_clear_as_publisher(self, owner, org, dataset, issue):
     comment = issue_factories.IssueComment(user_id=owner['id'],
                                            dataset_id=dataset['id'],
                                            issue_number=issue['number'],
                                            visibility='hidden')
     context = {
         'user': owner['name'],
         'model': model,
     }
     model.Session.add(IssueComment.Report(owner['id'],
                                           parent_id=comment['id']))
     model.Session.commit()
     helpers.call_action('issue_comment_report_clear', context=context,
                         dataset_id=dataset['id'],
                         issue_number=issue['number'],
                         comment_id=comment['id'])
     result = helpers.call_action('issue_show',
                                  issue_number=issue['number'],
                                  dataset_id=dataset['id'])
     assert 'visible' == result['comments'][0]['visibility']
     comment_obj = IssueComment.get(comment['id'])
     model.Session.refresh(comment_obj)
     assert len(comment_obj.abuse_reports) == 0
예제 #23
0
    def test_filter_least_commented(self, user, dataset):
        # issue#1 has 3 comment. #2 has 1 comments, etc
        comment_count = [3, 1, 2]
        issue_ids = []
        for i in comment_count:
            issue = issue_factories.Issue(user_id=user['id'],
                                          dataset_id=dataset['id'],
                                          description=i)
            issue_ids.append(issue['id'])

            for j in range(0, i):
                issue_factories.IssueComment(
                    user_id=user['id'],
                    issue_number=issue['number'],
                    dataset_id=issue['dataset_id'],
                )
        reordered_ids = [issue_ids[1], issue_ids[2], issue_ids[0]]

        issues_list = helpers.call_action('issue_search',
                                          context={'user': user['name']},
                                          dataset_id=dataset['id'],
                                          sort='least_commented')['results']
        assert reordered_ids == [i['id'] for i in issues_list]
        assert [1, 2, 3] == [i['comment_count'] for i in issues_list]
예제 #24
0
    def test_max_strikes_marks_as_spam(self, mock):
        #mock out the config value of max_strikes
        mock.get.return_value = '0'

        owner = factories.User()
        org = factories.Organization(user=owner)
        dataset = factories.Dataset(owner_org=org['name'])
        issue = issue_factories.Issue(user_id=owner['id'],
                                      dataset_id=dataset['id'])
        comment = issue_factories.IssueComment(user_id=owner['id'],
                                               issue_id=issue['id'])

        user = factories.User(name='unauthed')
        context = {
            'user': user['name'],
            'model': model,
        }
        helpers.call_action('issue_comment_report_spam',
                            context=context,
                            dataset_id=dataset['id'],
                            issue_comment_id=comment['id'])
        result = helpers.call_action('issue_show', id=issue['id'])
        assert_equals(1, result['comments'][0]['spam_count'])
        assert_equals('hidden', result['comments'][0]['spam_state'])
예제 #25
0
def comment3(issue):
    comment3 = issue_factories.IssueComment(
                issue_number=issue['number'],
                dataset_id=issue['dataset_id'],
        )
    return comment3
예제 #26
0
 def comment(self, owner, dataset, issue):
     return issue_factories.IssueComment(
         user_id=owner['id'],
         dataset_id=dataset['id'],
         issue_number=issue['number'])