python类reverse()的实例源码

test_views.py 文件源码 项目:socialhome 作者: jaywink 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_webfinger_responds_404_on_unknown_user(self, client):
        response = client.get("{url}?q=foobar%40socialhome.local".format(url=reverse("federate:webfinger")))
        assert response.status_code == 404
views.py 文件源码 项目:mendelmd 作者: raonyguimaraes 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def createconfig(request):
    print('Hello Config')
    query_string = request.META['QUERY_STRING']
    new_query_string = []
    for item in query_string.split('&'):
        if not item.startswith('individuals'):
             new_query_string.append(item)
    query_string = "&".join(new_query_string)
    filterstring = query_string

    if request.method == 'POST':
        form = Filter(request.POST)        
        if form.is_valid():
            #use id for unique names
            filterconfig = FilterConfig.objects.create(user=request.user)
            filterconfig.name = request.POST['name']
            filterconfig.filterstring = form.cleaned_data['filterstring']
            filterconfig.save()
            #return HttpResponseRedirect('/filter_analysis/?%s' % (filterconfig.filterstring))
            return redirect(reverse('filter_analysis')+'?'+filterconfig.filterstring)
    else:
        form = Filter(initial={'filterstring': filterstring})

    return render(request, 'filter_analysis/createfilter.html', {'form': form})
views.py 文件源码 项目:sentry-plugins 作者: getsentry 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def sign_out(request, context):
    tenant = context.tenant
    cfg_url = '%s?signed_request=%s' % (reverse('sentry-hipchat-ac-config'), context.signed_request)

    if 'no' in request.POST:
        return HttpResponseRedirect(cfg_url)
    elif request.method == 'POST':
        if tenant.auth_user:
            tenant.clear()
            notify_tenant_removal(tenant)
        url = "%s?next=%s" % (reverse('sentry-logout'), cfg_url)
        return HttpResponseRedirect(url)

    return render(
        request, 'sentry_hipchat_ac/sign_out.html', {
            'context': context,
            'tenant': tenant,
        }
    )
settings.py 文件源码 项目:taiga-contrib-saml-auth 作者: jgiannuzzi 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def get_saml_settings():
    base_url = '{scheme}://{domain}'.format(
        scheme=settings.SITES['front']['scheme'],
        domain=settings.SITES['front']['domain'],
    )
    debug = settings.DEBUG

    saml_settings = dict(settings.SAML_AUTH)

    saml_settings['strict'] = settings.SAML_AUTH.get('strict', not debug)
    saml_settings['debug'] = settings.SAML_AUTH.get('debug', debug)
    del(saml_settings['mapping'])
    saml_settings['sp'].update({
        'entityId': base_url + reverse('taiga_contrib_saml_auth:metadata'),
        'assertionConsumerService': {
            'url': base_url + reverse('taiga_contrib_saml_auth:login_complete'),
        },
        'singleLogoutService': {
            'url': base_url + reverse('taiga_contrib_saml_auth:logout_complete'),
        },
    })

    return saml_settings
test_plugins.py 文件源码 项目:cmsplugin-form-handler 作者: mkoistinen 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_form_submission(self):
        """
        Test that a (normal, non-Crispy) form submission results in an
        additional Sample instance.
        """
        # First get the number Sample-instances
        current_samples = Sample.objects.count()

        sample_name = self.get_random_string(10)
        sample_msg = self.get_random_string(100)

        action_url = reverse(
            'cmsplugin_form_handler:process_form',
            args=(self.form_plugin.pk, )
        )

        response = self.client.post(action_url, {
            'name': sample_name,
            'message': sample_msg,
            'cmsplugin_form_source_url': '/en/',
        }, follow=True)
        self.assertEqual(response.status_code, 200)
        assert Sample.objects.count() > current_samples
test_plugins.py 文件源码 项目:cmsplugin-form-handler 作者: mkoistinen 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_form_submission(self):
        """
        Test that a Crispy form submission results in an additional
        Sample instance.
        """
        # First get the number Sample-instances
        current_samples = Sample.objects.count()

        sample_name = self.get_random_string(10)
        sample_msg = self.get_random_string(100)

        action_url = reverse(
            'cmsplugin_form_handler:process_form',
            args=(self.crispy_model_form_plugin.pk, )
        )

        response = self.client.post(action_url, {
            'name': sample_name,
            'message': sample_msg,
            'cmsplugin_form_source_url': '/en/',
        }, follow=True)
        self.assertEqual(response.status_code, 200)
        assert Sample.objects.count() > current_samples
test_plugins.py 文件源码 项目:cmsplugin-form-handler 作者: mkoistinen 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_invalid_form_submission(self):
        """
        Test that the desired response occurs when the form is not valid.
        """
        # First get the number Sample-instances
        current_samples = Sample.objects.count()

        sample_name = ''
        sample_msg = self.get_random_string(100)

        action_url = reverse(
            'cmsplugin_form_handler:process_form',
            args=(self.model_form_plugin.pk, )
        )

        response = self.client.post(action_url, {
            'name': sample_name,
            'message': sample_msg,
            'cmsplugin_form_source_url': '/en/',
        }, follow=True)
        self.assertEqual(response.status_code, 200)
        assert Sample.objects.count() == current_samples
test_plugins.py 文件源码 项目:cmsplugin-form-handler 作者: mkoistinen 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def test_invalid_form_submission_no_session(self):
        """
        Test that the desired response occurs when the form is not valid, when
        there is no session.
        """
        # First get the number Sample-instances
        current_samples = Sample.objects.count()

        sample_name = ''
        sample_msg = self.get_random_string(100)

        action_url = reverse(
            'cmsplugin_form_handler:process_form',
            args=(self.model_form_plugin.pk, )
        )

        response = self.client.post(action_url, {
            'name': sample_name,
            'message': sample_msg,
            'cmsplugin_form_source_url': '/en/',
        }, follow=True)
        self.assertEqual(response.status_code, 200)
        # Ensure we didn't add any new samples
        assert Sample.objects.count() == current_samples
test_plugins.py 文件源码 项目:cmsplugin-form-handler 作者: mkoistinen 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_non_existent_plugin_submission(self):
        """
        Test that a submitting a form for a non-existent plugin meets
        defined behavior.
        """
        sample_name = self.get_random_string(10)
        sample_msg = self.get_random_string(100)

        # Get non-existent plugin ID:
        bad_id = CMSPlugin.objects.aggregate(max=Max('id'))['max'] + 1
        assert bad_id

        action_url = reverse(
            'cmsplugin_form_handler:process_form',
            args=(bad_id + 1, )
        )

        with self.assertRaises(ImproperlyConfigured):
            self.client.post(action_url, {
                'name': sample_name,
                'message': sample_msg,
                'cmsplugin_form_source_url': '/en/',
            }, follow=True)
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_sitemap_defaults(self):
        page = Page.objects.create(
            url='/test/',
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d')
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_sitemap_lastmod_per_page(self):
        page = Page.objects.create(
            url='/test/',
            page_processor_config={
                'sitemap': {
                    'lastmod': "2012-12-30",
                }
            }
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': "2012-12-30",
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_sitemap_changefreq_default(self):
        page = Page.objects.create(
            url='/test/',
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d'),
                    'changefreq': "daily"
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_sitemap_changefreq_per_page_with_default(self):
        page = Page.objects.create(
            url='/test/',
            page_processor_config={
                'sitemap': {
                    'changefreq': "monthly",
                }
            }
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d'),
                    'changefreq': "monthly"  # page config has higher priority
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_sitemap_priority_per_page(self):
        page = Page.objects.create(
            url='/test/',
            page_processor_config={
                'sitemap': {
                    'priority': 0.5,
                }
            }
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d'),
                    'priority': "0.5"
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_sitemap_priority_default(self):
        page = Page.objects.create(
            url='/test/',
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d'),
                    'priority': "0.8"
                }
            ]
        )
test_sitemap_view.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def test_sitemap_priority_per_page_with_default(self):
        page = Page.objects.create(
            url='/test/',
            page_processor_config={
                'sitemap': {
                    'priority': 0.5,
                }
            }
        )
        url = reverse('sitemap')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            parse_sitemap(response.content),
            [
                {
                    'loc': 'http://testserver{0}'.format(page.url),
                    'lastmod': page.changed_at.strftime('%Y-%m-%d'),
                    'priority': "0.5",  # page config has higher priority
                }
            ]
        )
powerpages_tags.py 文件源码 项目:django-powerpages 作者: Open-E-WEB 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def current_page_info(context, stylesheet=True, url_namespace=None):
    request = context.get('request')
    try:
        if url_namespace:
            switch_edit_mode_url = reverse(
                '{0}:switch_edit_mode'.format(url_namespace)
            )
        else:
            switch_edit_mode_url = reverse('switch_edit_mode')
    except NoReverseMatch:
        switch_edit_mode_url = reverse('powerpages:switch_edit_mode')
    return {
        'show_info': bool(
            request and request.session.get('WEBSITE_EDIT_MODE')
        ),
        'page': context.get('website_page'),
        'stylesheet': stylesheet,
        'switch_edit_mode_url': switch_edit_mode_url,
    }
test_views.py 文件源码 项目:django-filer-celery 作者: nephila 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_upload_no_permission(self):
        from filer import settings
        settings.FILER_ENABLE_PERMISSIONS = True
        image = self.create_django_image_object()
        self.assertEqual(Image.objects.count(), 0)
        folder = Folder.objects.create(name='foo')
        with self.login_user_context(self.user_normal):
            url = reverse('admin:filer-ajax_upload', kwargs={'folder_id': folder.pk})
            post_data = {
                'Filename': image.name,
                'Filedata': image,
                'jsessionid': self.client.session.session_key
            }
            response = self.client.post(url, post_data)
            self.assertContains(response, 'Permission Denied')
        settings.FILER_ENABLE_PERMISSIONS = False
views.py 文件源码 项目:openbare 作者: openbare 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def get(self, request, *args, **kwargs):
        """Process checkout when view triggered by GET request."""
        logger = logging.getLogger('django')

        try:
            self.item = Lendable(type=self.kwargs.get('item_subtype', None),
                                 user=self.request.user)

            self.item.checkout()
            self.item.save()
        except Exception as e:
            messages.error(request, e)
            logger.exception('%s: %s' % (type(e).__name__, e))
            return redirect(reverse('library:index'))
        else:
            messages.success(
                request,
                "'%s' is checked out to you until %s." %
                (self.item.name,
                 formatting_filters.format_date(self.item.due_on))
            )

        return super(CheckoutView, self).get(request, *args, **kwargs)
tests.py 文件源码 项目:openbare 作者: openbare 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_checkout_exception(self):
        self.c.login(username=self.user.username, password='str0ngpa$$w0rd')

        # Test check out lendable raises exception
        with patch.object(Lendable,
                          'checkout',
                          side_effect=Exception('Checkout Failed!')):
            response = self.c.get(reverse('library:checkout',
                                          args=['lendable']),
                                  follow=True)

        # Confirm error message displayed
        message = list(response.context['messages'])[0].message
        self.assertEqual(message, 'Checkout Failed!')

        # Confirm lendable not created
        self.assertEqual(Lendable.all_types.count(), 0)
tests.py 文件源码 项目:openbare 作者: openbare 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_checkout_group_exception(self):
        mocker = AWSMock()
        self.c.login(username=self.user.username, password='str0ngpa$$w0rd')

        # Test create IAM account group not found exception handled
        with patch('botocore.client.BaseClient._make_api_call',
                   new=mocker.mock_make_api_call):
            with self.settings(AWS_IAM_GROUP='Admins',
                               AWS_ACCOUNT_ID_ALIAS=None):
                response = self.c.get(reverse('library:checkout',
                                              args=['amazondemoaccount']),
                                      follow=True)

        # Confirm error message displayed
        message = list(response.context['messages'])[0].message
        self.assertEqual(message,
                         "An error occurred (Not Found) when calling the "
                         "AddUserToGroup operation: Group Admins not found")

        # Confirm lendable not created
        self.assertEqual(Lendable.all_types.count(), 0)
views.py 文件源码 项目:oscars2016 作者: 0x0ece 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def _make_flow(request, scopes, return_url=None):
    """Creates a Web Server Flow"""
    # Generate a CSRF token to prevent malicious requests.
    csrf_token = hashlib.sha256(os.urandom(1024)).hexdigest()

    request.session[_CSRF_KEY] = csrf_token

    state = json.dumps({
        'csrf_token': csrf_token,
        'return_url': return_url,
    })

    flow = client.OAuth2WebServerFlow(
        client_id=django_util.oauth2_settings.client_id,
        client_secret=django_util.oauth2_settings.client_secret,
        scope=scopes,
        state=state,
        redirect_uri=request.build_absolute_uri(
            urlresolvers.reverse("google_oauth:callback")))

    flow_key = _FLOW_KEY.format(csrf_token)
    request.session[flow_key] = pickle.dumps(flow)
    return flow
views.py 文件源码 项目:webtzite 作者: materialsproject 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def login(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            code = LoginCode.objects.filter(**{
                'user__email': request.POST.get('username')
            })[0]
            code.next = reverse('webtzite_register')
            code.save()
            code.send_login_code(
                secure=request.is_secure(),
                host=request.get_host(),
            )
            return render(request, 'registration/sent_mail.html')

    jpy_user = os.environ.get('JPY_USER')
    if jpy_user:
        from django.contrib.auth import authenticate
        code = authenticate(code=None, username=jpy_user+'@users.noreply.github.com')
        user = authenticate(code=code.code, username=code.user.username)
        auth_login(request, user)
        return redirect(reverse('webtzite_register'))

    return django_login(request, authentication_form=AuthenticationForm)
views.py 文件源码 项目:django-tutorial 作者: fernandojunior 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def vote(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = question.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        # Redisplay the question voting form.
        return render(request, 'polls/detail.html', {
            'question': question,
            'error_message': "You didn't select a choice."
        })
    else:
        # See  Avoiding race conditions using F()
        # https://docs.djangoproject.com/en/1.9/ref/models/expressions/#avoiding-race-conditions-using-f
        selected_choice.votes += 1
        selected_choice.save()
        # Always return an HttpResponseRedirect after successfully dealing
        # with POST data. This prevents data from being posted twice if a
        # user hits the Back button.
        return HttpResponseRedirect(reverse('polls:results', args=(
            question.id,
        )))
test_views.py 文件源码 项目:django-simplestore 作者: martinstastny 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_resolve_cart_for_logged_in_user(self):
        session = self.client.session
        session['user_cart'] = 'testing_session'

        request = self.client.get(reverse('cart:index'))
        request.user = self._create_testing_user()
        request.session = session

        testing_cart = self._create_testing_cart()
        testing_cart.session_key = request.session['user_cart']
        testing_cart.user = request.user
        testing_cart.save()

        cart = get_cart(request)

        self.assertEqual(request.status_code, 200)
        self.assertEqual(cart, testing_cart)
test_views.py 文件源码 项目:django-simplestore 作者: martinstastny 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_updating_cart_item(self):
        session = self.client.session

        cart = self._create_testing_cart()
        cart.session_key = session.session_key
        cart.save()

        cart_item = self._create_testing_cart_item(cart_instance=cart, product_instance=self.test_product)

        response = self.client.post(reverse('cart:update', kwargs={'pk': cart_item.pk}),
            data={'cart_item_quantity': '2'}, follow=True
        )

        messages = [msg for msg in get_messages(response.wsgi_request)]

        updated_quantity = response.context['cart'].items.first().quantity
        cart_item.quantity = updated_quantity
        cart_item.save()

        self.assertEqual(response.status_code, 200)
        self.assertEqual(cart_item.quantity, 2)
        self.assertEqual(cart_item.total_price, Decimal(cart_item.quantity * cart_item.product.price))
        self.assertEqual(messages[0].tags, 'success', 'Message type should return success type')
        self.assertEqual(messages[0].message, 'Product quantity has been updated.')
test_views.py 文件源码 项目:django-simplestore 作者: martinstastny 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def test_adding_item_to_cart_as_logged_user(self):
        session = self.client.session
        session['user_cart'] = 'cart_session'

        test_user = self._create_testing_user()

        response = self.client.post(
            reverse('cart:add', kwargs={'product_id': self.test_product.id}),
            data={'quantity': 3}, follow=True)

        response.session = session
        response.user = test_user

        cart, created = Cart.objects.get_or_create(
            session_key=response.session['user_cart'], user=response.user)
        cart.save()

        self.assertRedirects(response, '/cart/', 302)
        self.assertEqual(response.context['cart'].items.count(), 1)
        self.assertEqual(response.context['cart'].items.first().quantity, 3)
views.py 文件源码 项目:mendelmd 作者: raonyguimaraes 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def post(self, request, *args, **kwargs):
        #get list of diseases
        diseases_ids = request.POST.getlist('diseases')
        diseases = Disease.objects.filter(id__in=diseases_ids)
        #create list of genes
        gene_list = []
        for disease in diseases:
            genes = disease.gene_names.split(',')
            for gene in genes:
                parsed_gene = gene.strip()
                if parsed_gene not in gene_list:
                    gene_list.append(parsed_gene)
        #redirect to filter analysis page
        gene_list_url = '?gene_list=%s' % ("%2C".join(gene_list))
        #return redirect('/filter_analysis/?gene_list=%s' % ("%2C".join(gene_list)))
        # return redirect(reverse('filter_analysis', args=['some_value']))
        return redirect(reverse('filter_analysis')+gene_list_url)
        # return redirect('filter_analysis', gene_list='%s' % ("%2C".join(gene_list)))
views.py 文件源码 项目:mendelmd 作者: raonyguimaraes 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def post(self, request, *args, **kwargs):
        #get list of diseases
        diseases_ids = request.POST.getlist('diseases')
        diseases = Disease.objects.filter(id__in=diseases_ids)
        #create list of genes
        gene_list = []
        for disease in diseases:
            genes = disease.gene_names.split(',')
            for gene in genes:
                gene_list.append(gene.strip())
        #redirect to filter analysis page
        gene_list_url = '?gene_list=%s' % ("%2C".join(gene_list))
        #return redirect('/filter_analysis/?gene_list=%s' % ("%2C".join(gene_list)))
        # return redirect(reverse('filter_analysis', args=['some_value']))
        return redirect(reverse('filter_analysis')+gene_list_url)
        # return redirect('filter_analysis', gene_list='%s' % ("%2C".join(gene_list)))
views.py 文件源码 项目:mendelmd 作者: raonyguimaraes 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def oneclick(request):
    form = FilterAnalysisForm(request.user)
    if request.method == 'GET':
        # print request.META
        query_string = request.META['QUERY_STRING']
        # print(query_string)
        if query_string != '':
            new_query_string = []
            query_string = query_string.split('&')
            for item in query_string:
                if not (item.startswith('csrfmiddlewaretoken') or item.startswith('hash') or item.startswith('wizard')):
                    #get here only the ones need to be cleaned Ex. 1-chr
                    #item = "-".join(item.split('-', 2)[1:])
                    new_query_string.append(item)

            #create new query
            filterstring = "&".join(new_query_string)
            return redirect(reverse('filter_analysis')+'?'+filterstring)

    return render(request, 'filter_analysis/oneclick.html', {'form':form});


问题


面经


文章

微信
公众号

扫码关注公众号