Exemple #1
0
    def test_related_event_remove(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events similar but with different tags
        other = Event.objects.create(
            title='Mozilla Event',
            description='bla bla',
            status=event.STATUS_REMOVED,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=event.privacy,
            placeholder_img=event.placeholder_img,
        )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        other.tags.add(tag1)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug, ))
        response = self.client.get(url)
        ok_('Mozilla Event' not in response.content)

        User.objects.create_user('gloria', '*****@*****.**', 'starlight')
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Mozilla Festival' not in response.content)

        contributor = User.objects.create_user('nigel', '*****@*****.**',
                                               'secret')
        UserProfile.objects.create(user=contributor, contributor=True)
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Mozilla Festival' not in response.content)
Exemple #2
0
    def test_unrelated_privacy_contributor(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events with privacy contributors
        other = Event.objects.create(
            title='Happiness event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=Event.PRIVACY_CONTRIBUTORS,
            placeholder_img=event.placeholder_img,
        )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        other.tags.add(tag1)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug, ))
        response = self.client.get(url)
        ok_('Happiness event' not in response.content)

        User.objects.create_user('gloria', '*****@*****.**', 'starlight')
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Happiness event' in response.content)

        contributor = User.objects.create_user('nigel', '*****@*****.**',
                                               'secret')
        UserProfile.objects.create(user=contributor, contributor=True)
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Happiness event' in response.content)
Exemple #3
0
def related_content(request):
    es = related.get_connection()
    index = related.get_index()

    if request.method == 'POST':
        form = forms.ReindexRelatedContentForm(request.POST)
        if form.is_valid():
            if form.cleaned_data['delete_and_recreate']:
                try:
                    related.delete(es)
                except pyelasticsearch.ElasticHttpNotFoundError:
                    pass
                related.create(es)
                form.cleaned_data['all'] = True

            since = None
            if form.cleaned_data['since']:
                since = datetime.timedelta(
                    minutes=form.cleaned_data['since']
                )
            related.index(
                all=form.cleaned_data['all'],
                since=since
            )
            messages.success(
                request,
                'Re-indexing issued.'
            )
            return redirect('manage:related_content')

    else:
        initial = {
            'since': 30,
        }
        form = forms.ReindexRelatedContentForm(initial=initial)

    query = {
        'query': {
            'match_all': {}
        }
    }
    try:
        count = es.count(query, index=index)['count']
    except pyelasticsearch.ElasticHttpNotFoundError:
        count = 'no'
    context = {
        'form': form,
        'count_indexed': count,
        'count_events': Event.objects.scheduled_or_processing().count(),
        'index_name': index,
    }
    return render(request, 'manage/related_content.html', context)
Exemple #4
0
def related_content(request):
    es = related.get_connection()
    index = related.get_index()

    if request.method == 'POST':
        form = forms.ReindexRelatedContentForm(request.POST)
        if form.is_valid():
            if form.cleaned_data['delete_and_recreate']:
                try:
                    related.delete(es)
                except pyelasticsearch.ElasticHttpNotFoundError:
                    pass
                related.create(es)
                form.cleaned_data['all'] = True

            since = None
            if form.cleaned_data['since']:
                since = datetime.timedelta(
                    minutes=form.cleaned_data['since']
                )
            related.index(
                all=form.cleaned_data['all'],
                since=since
            )
            messages.success(
                request,
                'Re-indexing issued.'
            )
            return redirect('manage:related_content')

    else:
        initial = {
            'since': 30,
        }
        form = forms.ReindexRelatedContentForm(initial=initial)

    query = {
        'query': {
            'match_all': {}
        }
    }
    try:
        count = es.count(query, index=index)['count']
    except pyelasticsearch.ElasticHttpNotFoundError:
        count = 'no'
    context = {
        'form': form,
        'count_indexed': count,
        'count_events': Event.objects.scheduled_or_processing().count(),
        'index_name': index,
    }
    return render(request, 'manage/related_content.html', context)
    def test_related_content_logged_users(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events similar with use logged-in
        other = Event.objects.create(
            title='Event test',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=event.privacy,
            placeholder_img=event.placeholder_img,
            )

        tag1 = Tag.objects.create(name='SomeTag')
        other.tags.add(tag1)
        event.tags.add(tag1)
        related.index(all=True)

        self._login()

        url = reverse('main:related_content', args=(event.slug,))
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)

        User.objects.create_user(
            'helen', '*****@*****.**', 'secret'
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)

        contributor = User.objects.create_user(
            'nigel', '*****@*****.**', 'secret'
        )
        UserProfile.objects.create(
            user=contributor,
            contributor=True
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)
    def test_unrelated_users(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events that are dissimilar in tags and title
        other = Event.objects.create(
            title='Mozilla Festival',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=Event.PRIVACY_PUBLIC,
            placeholder_img=event.placeholder_img,
            )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        tag2 = Tag.objects.create(name='PartyTag')
        other.tags.add(tag2)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug,))
        response = self.client.get(url)
        ok_('Mozilla Festival' not in response.content)

        User.objects.create_user(
            'gloria', '*****@*****.**', 'starlight'
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Mozilla Festival' not in response.content)

        contributor = User.objects.create_user(
            'nigel', '*****@*****.**', 'secret'
        )
        UserProfile.objects.create(
            user=contributor,
            contributor=True
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Mozilla Festival' not in response.content)
    def test_unrelated_privacy_company(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events with privacy company i.e staff
        other = Event.objects.create(
            title='Happiness event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=Event.PRIVACY_COMPANY,
            placeholder_img=event.placeholder_img,
            )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        other.tags.add(tag1)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug,))
        response = self.client.get(url)
        ok_('Happiness event' not in response.content)

        User.objects.create_user(
            'gloria', '*****@*****.**', 'starlight'
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Happiness event' in response.content)

        contributor = User.objects.create_user(
            'nigel', '*****@*****.**', 'secret'
        )
        UserProfile.objects.create(
            user=contributor,
            contributor=True
        )
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Happiness event' not in response.content)
Exemple #8
0
    def test_related_content_logged_users(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events similar with use logged-in
        other = Event.objects.create(
            title='Event test',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=event.privacy,
            placeholder_img=event.placeholder_img,
        )

        tag1 = Tag.objects.create(name='SomeTag')
        other.tags.add(tag1)
        event.tags.add(tag1)
        related.index(all=True)

        self._login()

        url = reverse('main:related_content', args=(event.slug, ))
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)

        User.objects.create_user('helen', '*****@*****.**', 'secret')
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)

        contributor = User.objects.create_user('nigel', '*****@*****.**',
                                               'secret')
        UserProfile.objects.create(user=contributor, contributor=True)
        assert self.client.login(username='******', password='******')
        response = self.client.get(url)
        eq_(response.status_code, 200)
        ok_('Event test' in response.content)
Exemple #9
0
    def test_related_public(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events similar but with different tags
        other = Event.objects.create(
            title='Mozilla Event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=event.privacy,
            placeholder_img=event.placeholder_img,
        )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        tag2 = Tag.objects.create(name='PartyTag')
        other.tags.add(tag2)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug, ))
        response = self.client.get(url)
        ok_('Mozilla Event' in response.content)
    def test_related_public(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events similar but with different tags
        other = Event.objects.create(
            title='Mozilla Event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=event.privacy,
            placeholder_img=event.placeholder_img,
            )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        tag2 = Tag.objects.create(name='PartyTag')
        other.tags.add(tag2)
        related.index(all=True)

        url = reverse('main:related_content', args=(event.slug,))
        response = self.client.get(url)
        ok_('Mozilla Event' in response.content)
Exemple #11
0
    def test_unrelated_privacy(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events with different privacies and logged in
        other = Event.objects.create(
            title='Happiness event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=Event.PRIVACY_COMPANY,
            placeholder_img=event.placeholder_img,
        )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        other.tags.add(tag1)
        related.index(all=True)

        self._login()

        url = reverse('main:related_content', args=(event.slug, ))
        response = self.client.get(url)
        ok_('Hapiness event' not in response.content)
    def test_unrelated_privacy(self):
        event = Event.objects.get(title='Test event')
        self._attach_file(event, self.main_image)
        # events with different privacies and logged in
        other = Event.objects.create(
            title='Happiness event',
            description='bla bla',
            status=event.status,
            start_time=event.start_time,
            archive_time=event.archive_time,
            privacy=Event.PRIVACY_COMPANY,
            placeholder_img=event.placeholder_img,
            )
        tag1 = Tag.objects.create(name='SomeTag')
        event.tags.add(tag1)
        other.tags.add(tag1)
        related.index(all=True)

        self._login()

        url = reverse('main:related_content', args=(event.slug,))
        response = self.client.get(url)
        ok_('Hapiness event' not in response.content)