Esempio n. 1
0
    def test_mark_as_deleted(self):
        user = UserFactory()
        other_user = UserFactory()
        org = OrganizationFactory(editors=[user])
        discussion_only_user = DiscussionFactory(
            user=user,
            subject=org,
            discussion=[
                MessageDiscussionFactory(posted_by=user),
                MessageDiscussionFactory(posted_by=user)
            ])
        discussion_with_other = DiscussionFactory(
            user=other_user,
            subject=org,
            discussion=[
                MessageDiscussionFactory(posted_by=other_user),
                MessageDiscussionFactory(posted_by=user)
            ])
        user_follow_org = Follow.objects.create(follower=user, following=org)
        user_followed = Follow.objects.create(follower=other_user,
                                              following=user)

        user.mark_as_deleted()

        org.reload()
        assert len(org.members) == 0

        assert Discussion.objects(id=discussion_only_user.id).first() is None
        discussion_with_other.reload()
        assert discussion_with_other.discussion[1].content == 'DELETED'

        assert Follow.objects(id=user_follow_org.id).first() is None
        assert Follow.objects(id=user_followed.id).first() is None

        assert user.slug == 'deleted'
Esempio n. 2
0
 def test_quality_has_treated_discussions(self):
     user = UserFactory()
     visitor = UserFactory()
     dataset = DatasetFactory(description='', owner=user)
     DiscussionFactory(
         subject=dataset,
         user=visitor,
         discussion=[MessageDiscussionFactory(posted_by=user)] +
         MessageDiscussionFactory.build_batch(2, posted_by=visitor))
     self.assertEqual(dataset.quality['discussions'], 1)
     self.assertFalse(dataset.quality['has_untreated_discussions'])
     self.assertEqual(dataset.quality['score'], 2)
 def test_quality_has_untreated_discussions(self):
     user = UserFactory()
     visitor = UserFactory()
     dataset = DatasetFactory(description='', owner=user)
     messages = MessageDiscussionFactory.build_batch(2, posted_by=visitor)
     DiscussionFactory(subject=dataset, user=visitor, discussion=messages)
     assert dataset.quality['discussions'] == 1
     assert dataset.quality['has_untreated_discussions']
     assert dataset.quality['score'] == 0
Esempio n. 4
0
 def test_quality_has_untreated_discussions(self):
     user = UserFactory()
     visitor = UserFactory()
     dataset = DatasetFactory(description='', owner=user)
     messages = MessageDiscussionFactory.build_batch(2, posted_by=visitor)
     DiscussionFactory(subject=dataset, user=visitor, discussion=messages)
     assert dataset.quality['discussions'] == 1
     assert dataset.quality['has_untreated_discussions']
     assert dataset.quality['score'] == 0
Esempio n. 5
0
 def test_quality_all(self):
     user = UserFactory()
     visitor = UserFactory()
     dataset = DatasetFactory(owner=user,
                              frequency='weekly',
                              tags=['foo', 'bar'],
                              description='a' * 42)
     dataset.add_resource(ResourceFactory(format='pdf'))
     DiscussionFactory(
         subject=dataset,
         user=visitor,
         discussion=[MessageDiscussionFactory(posted_by=visitor)])
     self.assertEqual(dataset.quality['score'], 0)
     self.assertEqual(sorted(dataset.quality.keys()), [
         'description_length', 'discussions', 'frequency',
         'has_only_closed_or_no_formats', 'has_resources',
         'has_unavailable_resources', 'has_untreated_discussions', 'score',
         'tags_count', 'update_in'
     ])
Esempio n. 6
0
def generate_fixtures(source):
    '''Build sample fixture data (users, datasets, reuses) from local or remote file.'''
    if source.startswith('http'):
        json_fixtures = requests.get(source).json()
    else:
        with open(source) as f:
            json_fixtures = json.load(f)

    with click.progressbar(json_fixtures) as bar:
        for fixture in bar:
            user = UserFactory()
            if not fixture['organization']:
                dataset = DatasetFactory(**fixture['dataset'], owner=user)
            else:
                org = Organization.objects(
                    id=fixture['organization']['id']).first()
                if not org:
                    org = OrganizationFactory(**fixture['organization'],
                                              members=[Member(user=user)])
                dataset = DatasetFactory(**fixture['dataset'],
                                         organization=org)
            for resource in fixture['resources']:
                res = ResourceFactory(**resource)
                dataset.add_resource(res)
            for reuse in fixture['reuses']:
                ReuseFactory(**reuse, datasets=[dataset], owner=user)
            for community in fixture['community_resources']:
                CommunityResourceFactory(**community,
                                         dataset=dataset,
                                         owner=user)
            for discussion in fixture['discussions']:
                messages = discussion.pop('discussion')
                DiscussionFactory(**discussion,
                                  subject=dataset,
                                  user=user,
                                  discussion=[
                                      MessageDiscussionFactory(**message,
                                                               posted_by=user)
                                      for message in messages
                                  ])