Exemple #1
0
    def test_is_company_user(self):
        # Current user is a CompanyUser
        params = {'email': self.user.email}
        url = build_url(reverse('is_company_user'), params)
        response = self.client.post(url)
        self.assertEqual(response.content, 'true')

        # Non-existant user is not a CompanyUser
        params = {'email': '*****@*****.**'}
        url = build_url(reverse('is_company_user'), params)
        response = self.client.post(url)
        self.assertEqual(response.content, 'false')

        # Generic User is not a CompanyUser.
        user = UserFactory(email='*****@*****.**')
        params = {'email': user.email}
        url = build_url(reverse('is_company_user'), params)
        response = self.client.post(url)
        self.assertEqual(response.content, 'false')

        # Is inaccessable to non-CompanyUsers.
        self.company_user.delete()
        params = {'email': self.user.email}
        url = build_url(reverse('is_company_user'), params)
        response = self.client.post(url)
        self.assertEqual(response.status_code, 404)
Exemple #2
0
        def wrap(request, *args, **kwargs):
            # this decorator factory only works if called with enabled=True or
            # settings.DEBUG is False
            if not enabled and settings.DEBUG:
                return view_func(request, *args, **kwargs)

            if request.user.is_anonymous() and redirect:
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('login'), params)
                return HttpResponseRedirect(next_url)

            ctx = {'feature': feature,
                   'message': message,
                   'link': link,
                   'link_text': link_text}

            if condition(request):
                if exception:
                    raise exception('{0}: {1}'.format(feature, message))

                return render_to_response('warning_page.html',
                                          ctx,
                                          RequestContext(request))

            return view_func(request, *args, **kwargs)
Exemple #3
0
 def test_feed_with_path_and_querystring(self):
     for feed_type in self.feed_types:
         kwargs = {'feed_type': feed_type, 'filter_path': self.path}
         path = reverse('feed', kwargs=kwargs)
         self.client.get(build_url(path, {'q': self.q}))
         self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
         settings.SOLR_QUERY_COUNTER = 0
 def test_feed_with_querystring(self):
     for feed_type in self.feed_types:
         kwargs = {
             'feed_type': feed_type,
             'filter_path': reverse('all_jobs')
         }
         path = reverse('feed', kwargs=kwargs)
         self.client.get(build_url(path, {'location': self.location}))
         self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
         settings.SOLR_QUERY_COUNTER = 0
Exemple #5
0
 def test_login_with_next(self):
     password = '******'
     user = UserFactory(password=password)
     block = LoginBlock.objects.get()
     data = {
         'username': user.email,
         'password': password,
         block.submit_btn_name(): ''
     }
     next_url = {'next': '/test/'}
     response = self.client.post(build_url(reverse('login'), next_url),
                                 data=data,
                                 follow=True)
     self.assertTrue(response.context['request'].user.is_authenticated())
     last_redirect = response.redirect_chain[-1][0]
     self.assertTrue(last_redirect.endswith(next_url['next']))
Exemple #6
0
 def test_register_with_next(self):
     email = '*****@*****.**'
     block = RegistrationBlock.objects.get()
     data = {
         'email': email,
         'password1': 'Secret555!',
         'password2': 'Secret555!',
         block.submit_btn_name(): '',
     }
     next_url = {'next': '/test/'}
     response = self.client.post(build_url(reverse('login'), next_url),
                                 data=data,
                                 follow=True)
     User.objects.get(email=email)
     self.assertTrue(response.context['request'].user.is_authenticated())
     last_redirect = response.redirect_chain[-1][0]
     self.assertTrue(last_redirect.endswith(next_url['next']))
Exemple #7
0
 def test_login_with_next(self):
     password = '******'
     user = UserFactory(password=password)
     block = LoginBlock.objects.get()
     data = {
         'username': user.email,
         'password': password,
         block.submit_btn_name(): ''
     }
     next_url = {
         'next': '/test/'
     }
     response = self.client.post(build_url(reverse('login'), next_url),
                                 data=data, follow=True)
     self.assertTrue(response.context['request'].user.is_authenticated())
     last_redirect = response.redirect_chain[-1][0]
     self.assertTrue(last_redirect.endswith(next_url['next']))
Exemple #8
0
 def test_register_with_next(self):
     email = '*****@*****.**'
     block = RegistrationBlock.objects.get()
     data = {
         'email': email,
         'password1': 'Secret555!',
         'password2': 'Secret555!',
         block.submit_btn_name(): '',
     }
     next_url = {
         'next': '/test/'
     }
     response = self.client.post(build_url(reverse('login'), next_url),
                                 data=data, follow=True)
     User.objects.get(email=email)
     self.assertTrue(response.context['request'].user.is_authenticated())
     last_redirect = response.redirect_chain[-1][0]
     self.assertTrue(last_redirect.endswith(next_url['next']))
Exemple #9
0
        def wrap(request, *args, **kwargs):

            # If the user is not logged in, redirect them to the login page
            # with this url as the next url.
            if request.user.is_anonymous():
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('login'), params)
                return HttpResponseRedirect(next_url)

            # If the user is logged in, but they aren't a CompanyUser or they
            # are a CompanyUser, but their current Company doesn't have
            # perm_field access, return a 404.
            company = get_company(request)

            if not company or (perm_field and not getattr(company, perm_field,
                                                          False)):
                raise Http404

            return view_func(request, *args, **kwargs)
Exemple #10
0
        def wrap(request, *args, **kwargs):
            if request.user.is_anonymous() and redirect:
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('home'), params)
                return HttpResponseRedirect(next_url)

            ctx = {'feature': feature,
                   'message': message,
                   'link': link,
                   'link_text': link_text}

            if condition(request):
                if exception:
                    raise exception('{0}: {1}'.format(feature, message))

                return render_to_response('warning_page.html',
                                          ctx,
                                          RequestContext(request))

            return view_func(request, *args, **kwargs)
Exemple #11
0
        def wrap(request, *args, **kwargs):

            # If the user is not logged in, redirect them to the login page
            # with this url as the next url.
            if request.user.is_anonymous():
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('login'), params)
                return HttpResponseRedirect(next_url)

            # If the user is logged in, but they aren't an admin or they
            # are an admin , but their current Company doesn't have
            # perm_field access, return a 404.
            company = get_company(request)

            if not company or (perm_field and not getattr(company, perm_field,
                                                          False)):
                raise Http404("universal.decorators.company_has_access: "
                              "company doesn't exist or doesn't have "
                              "{perm} permissions".format(perm=perm_field))

            return view_func(request, *args, **kwargs)
Exemple #12
0
        def wrap(request, *args, **kwargs):

            # If the user is not logged in, redirect them to the login page
            # with this url as the next url.
            if request.user.is_anonymous():
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('login'), params)
                return HttpResponseRedirect(next_url)

            # If the user is logged in, but they aren't an admin or they
            # are an admin , but their current Company doesn't have
            # perm_field access, return a 404.
            company = get_company(request)

            if not company or (perm_field
                               and not getattr(company, perm_field, False)):
                raise Http404("universal.decorators.company_has_access: "
                              "company doesn't exist or doesn't have "
                              "{perm} permissions".format(perm=perm_field))

            return view_func(request, *args, **kwargs)
Exemple #13
0
        def wrap(request, *args, **kwargs):
            if not enabled:
                return view_func(request, *args, **kwargs)

            if request.user.is_anonymous() and redirect:
                params = {'next': request.get_full_path()}
                next_url = build_url(reverse('login'), params)
                return HttpResponseRedirect(next_url)

            ctx = {
                'feature': feature,
                'message': message,
                'link': link,
                'link_text': link_text
            }

            if condition(request):
                if exception:
                    raise exception('{0}: {1}'.format(feature, message))

                return render_to_response('warning_page.html', ctx,
                                          RequestContext(request))

            return view_func(request, *args, **kwargs)
Exemple #14
0
 def test_num_queries_search_results_with_path_and_querystring(self):
     self.client.get(build_url(self.path, {'q': self.q}))
     self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
Exemple #15
0
    def setUp(self):
        super(BlocksTestBase, self).setUp()
        self.site = SeoSite.objects.get()
        self.config = Configuration.objects.get(status=2)
        self.config.browse_facet_show = True
        self.config.save()

        # Can't do a get_or_create here because we don't
        # care about the date_crawled/date_updated fields,
        # but if the BusinessUnit doesn't exist they will need
        # to be supplied.
        try:
            self.buid = BusinessUnit.objects.get(pk=0)
        except BusinessUnit.DoesNotExist:
            self.buid = BusinessUnitFactory(id=0)
        self.site.business_units.add(0)

        self.commitment = SpecialCommitmentFactory()
        self.site.special_commitments.add(self.commitment)
        self.site.save()

        self.tag = SiteTag.objects.create(site_tag='Test tag')
        self.site.site_tags.add(self.tag)
        self.site.save()

        self.job = SOLR_FIXTURE[1]
        self.conn.add([self.job])

        self.user = UserFactory()

        url = reverse('all_jobs')
        self.search_results_request = RequestFactory().get(url)
        self.search_results_request.user = self.user

        self.q_kwargs = {'q': self.job['title']}
        url = build_url(reverse('all_jobs'), self.q_kwargs)
        self.search_results_with_q_request = RequestFactory().get(url)
        self.search_results_with_q_request.user = self.user

        self.facet = CustomFacetFactory(show_production=True,
                                        name='%s' % self.job['title'],
                                        name_slug='%s' %
                                        self.job['title_slug'],
                                        querystring='*',
                                        blurb='Test')
        self.bad_facet = CustomFacetFactory(show_production=True,
                                            name='Bad Facet',
                                            name_slug='bad-facet',
                                            querystring='asfljasdlfjsadfsdf',
                                            blurb='Test',
                                            always_show=True)
        SeoSiteFacetFactory(customfacet=self.facet, seosite=self.site)
        SeoSiteFacetFactory(customfacet=self.bad_facet, seosite=self.site)

        url = '%s/new-jobs/' % self.job['title_slug']
        self.search_results_with_custom_facet = RequestFactory().get(url)
        self.search_results_with_custom_facet.user = self.user

        self.job_detail_kwargs = {
            'job_id': self.job['guid'],
            'title_slug': self.job['title_slug'],
            'location_slug': slugify(self.job['location']),
        }
        url = reverse('job_detail_by_location_slug_title_slug_job_id',
                      kwargs=self.job_detail_kwargs)
        self.job_detail_request = RequestFactory().get(url)
        self.job_detail_request.user = self.user

        kwargs = {'job_id': self.job['guid']}
        url = reverse('job_detail_by_job_id', kwargs=kwargs)
        self.job_detail_redirect_request = RequestFactory().get(url)
        self.job_detail_redirect_request.user = self.user

        # Send a request through middleware so all the required
        # settings (from MultiHostMiddleware) actually get set.
        self.client.get('/')
 def test_num_queries_search_results_with_path_and_querystring(self):
     self.client.get(build_url(self.path, {'q': self.q}))
     self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
 def test_num_queries_search_results_with_querystring(self):
     path = reverse('all_jobs')
     self.client.get(build_url(path, {'location': self.location}))
     self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
Exemple #18
0
 def test_num_queries_search_results_with_querystring(self):
     path = reverse('all_jobs')
     self.client.get(build_url(path, {'location': self.location}))
     self.assertIn(settings.SOLR_QUERY_COUNTER, self.query_range)
Exemple #19
0
    def setUp(self):
        super(BlocksTestBase, self).setUp()
        self.site = SeoSite.objects.get()
        self.config = Configuration.objects.get(status=2)
        self.config.browse_facet_show = True
        self.config.save()

        # Can't do a get_or_create here because we don't
        # care about the date_crawled/date_updated fields,
        # but if the BusinessUnit doesn't exist they will need
        # to be supplied.
        try:
            self.buid = BusinessUnit.objects.get(pk=0)
        except BusinessUnit.DoesNotExist:
            self.buid = BusinessUnitFactory(id=0)
        self.site.business_units.add(0)

        self.commitment = SpecialCommitmentFactory()
        self.site.special_commitments.add(self.commitment)
        self.site.save()

        self.tag = SiteTag.objects.create(site_tag='Test tag')
        self.site.site_tags.add(self.tag)
        self.site.save()

        self.job = SOLR_FIXTURE[1]
        self.conn.add([self.job])

        self.user = UserFactory()

        url = reverse('all_jobs')
        self.search_results_request = RequestFactory().get(url)
        self.search_results_request.user = self.user

        self.q_kwargs = {'q': self.job['title']}
        url = build_url(reverse('all_jobs'), self.q_kwargs)
        self.search_results_with_q_request = RequestFactory().get(url)
        self.search_results_with_q_request.user = self.user

        self.facet = CustomFacetFactory(show_production=True,
                                        name='%s' % self.job['title'],
                                        name_slug='%s' % self.job['title_slug'],
                                        querystring='*',
                                        blurb='Test')
        self.bad_facet = CustomFacetFactory(show_production=True,
                                            name='Bad Facet',
                                            name_slug='bad-facet',
                                            querystring='asfljasdlfjsadfsdf',
                                            blurb='Test',
                                            always_show=True)
        SeoSiteFacetFactory(customfacet=self.facet, seosite=self.site)
        SeoSiteFacetFactory(customfacet=self.bad_facet, seosite=self.site)

        url = '%s/new-jobs/' % self.job['title_slug']
        self.search_results_with_custom_facet = RequestFactory().get(url)
        self.search_results_with_custom_facet.user = self.user

        self.job_detail_kwargs = {
            'job_id': self.job['guid'],
            'title_slug': self.job['title_slug'],
            'location_slug': slugify(self.job['location']),
        }
        url = reverse('job_detail_by_location_slug_title_slug_job_id',
                      kwargs=self.job_detail_kwargs)
        self.job_detail_request = RequestFactory().get(url)
        self.job_detail_request.user = self.user

        kwargs = {'job_id': self.job['guid']}
        url = reverse('job_detail_by_job_id', kwargs=kwargs)
        self.job_detail_redirect_request = RequestFactory().get(url)
        self.job_detail_redirect_request.user = self.user

        # Send a request through middleware so all the required
        # settings (from MultiHostMiddleware) actually get set.
        self.client.get('/')