Example #1
0
def test_urljoin():
    """Tests URL parts are properly joined with a base."""
    base = 'https://www.evernote.com/'
    assert urljoin(base) == base
    assert urljoin(base, '/foo/bar', 'baz/blah') == base + 'foo/bar/baz/blah'
    assert urljoin(base, '/foo/', '/bar/', '/baz/') == base + 'foo/bar/baz/'
    assert urljoin(base, '/foo//', '//bar/') == base + 'foo/bar/'
    assert urljoin(base, '/foo//', '//bar/?q=a') == base + 'foo/bar/?q=a'
    assert urljoin(base, 'foo//', '//bar/?q=a') == base + 'foo/bar/?q=a'
    assert urljoin(base, 'foo//////') == base + 'foo/'
    assert urljoin(base, 'foo', 'bar/baz', 'blah') == base + 'foo/bar/baz/blah'
    assert urljoin(base, 'foo/', 'bar', 'baz/') == base + 'foo/bar/baz/'
    assert urljoin('', '', '/////foo') == '/foo'
Example #2
0
def test_urljoin():
    """Tests URL parts are properly joined with a base."""
    base = "https://www.evernote.com/"
    assert urljoin(base) == base
    assert urljoin(base, "/foo/bar", "baz/blah") == base + "foo/bar/baz/blah"
    assert urljoin(base, "/foo/", "/bar/", "/baz/") == base + "foo/bar/baz/"
    assert urljoin(base, "/foo//", "//bar/") == base + "foo/bar/"
    assert urljoin(base, "/foo//", "//bar/?q=a") == base + "foo/bar/?q=a"
    assert urljoin(base, "foo//", "//bar/?q=a") == base + "foo/bar/?q=a"
    assert urljoin(base, "foo//////") == base + "foo/"
    assert urljoin(base, "foo", "bar/baz", "blah") == base + "foo/bar/baz/blah"
    assert urljoin(base, "foo/", "bar", "baz/") == base + "foo/bar/baz/"
    assert urljoin("", "", "/////foo") == "/foo"
Example #3
0
def test_urljoin():
    """Tests URL parts are properly joined with a base."""
    base = 'https://www.evernote.com/'
    assert urljoin(base) == base
    assert urljoin(base, '/foo/bar', 'baz/blah') == base + 'foo/bar/baz/blah'
    assert urljoin(base, '/foo/', '/bar/', '/baz/') == base + 'foo/bar/baz/'
    assert urljoin(base, '/foo//', '//bar/') == base + 'foo/bar/'
    assert urljoin(base, '/foo//', '//bar/?q=a') == base + 'foo/bar/?q=a'
    assert urljoin(base, 'foo//', '//bar/?q=a') == base + 'foo/bar/?q=a'
    assert urljoin(base, 'foo//////') == base + 'foo/'
    assert urljoin(base, 'foo', 'bar/baz', 'blah') == base + 'foo/bar/baz/blah'
    assert urljoin(base, 'foo/', 'bar', 'baz/') == base + 'foo/bar/baz/'
    assert urljoin('', '', '/////foo') == '/foo'
Example #4
0
def test_urljoin():
    """Tests URL parts are properly joined with a base."""
    base = "https://www.evernote.com/"
    assert urljoin(base) == base
    assert urljoin(base, "/foo/bar", "baz/blah") == base + "foo/bar/baz/blah"
    assert urljoin(base, "/foo/", "/bar/", "/baz/") == base + "foo/bar/baz/"
    assert urljoin(base, "/foo//", "//bar/") == base + "foo/bar/"
    assert urljoin(base, "/foo//", "//bar/?q=a") == base + "foo/bar/?q=a"
    assert urljoin(base, "foo//", "//bar/?q=a") == base + "foo/bar/?q=a"
    assert urljoin(base, "foo//////") == base + "foo/"
    assert urljoin(base, "foo", "bar/baz", "blah") == base + "foo/bar/baz/blah"
    assert urljoin(base, "foo/", "bar", "baz/") == base + "foo/bar/baz/"
    assert urljoin("", "", "/////foo") == "/foo"
Example #5
0
 def get_url(self):
     if self.exported_revision:
         relative_path = "offline_tm/%s/%s" % (self.context.language.code,
                                               self.get_filename(
                                                   self.exported_revision))
         return urljoin(settings.MEDIA_URL, relative_path)
     return None
Example #6
0
 def get_url(self):
     if self.exported_revision:
         relative_path = "offline_tm/%s/%s" % (
             self.context.language.code,
             self.get_filename(self.exported_revision)
         )
         return urljoin(settings.MEDIA_URL, relative_path)
     return None
Example #7
0
def tp_inited_async(instance, response_url, **kwargs):
    ctx = {"tp": instance,
           "url": urljoin(response_url, instance.get_absolute_url())}
    message = render_to_string(
        'projects/admin/email/translation_project_created.txt', ctx)
    subject = _(u"Translation project (%s) created" % instance)
    recipients = get_recipients(instance.project)
    send_mail(subject, message, from_email=None,
              recipient_list=[], fail_silently=True, bcc=recipients)
Example #8
0
def tp_inited_async(instance, response_url, **kwargs):
    ctx = {"tp": instance,
           "url": urljoin(response_url, instance.get_absolute_url())}
    message = render_to_string(
        'projects/admin/email/translation_project_created.txt', ctx)
    subject = _(u"Translation project (%s) created" % instance)
    recipients = get_recipients(instance.project)
    send_mail(subject, message, from_email=None,
              recipient_list=[], fail_silently=True, bcc=recipients)
Example #9
0
def sso_login(request):
    """Redirects users to the Evernote SSO page."""
    redirect_to = request.REQUEST.get(auth.REDIRECT_FIELD_NAME,
                                      reverse('pootle-home'))

    if (request.user.is_authenticated()
            and hasattr(request.user, 'evernote_account')):
        return redirect_after_login(request)

    return_path = reverse('en-auth-sso-callback', args=[redirect_to])
    if 'create' in request.GET:
        return_path = '{0}?create'.format(return_path)

    sso_url = urljoin(settings.EN_SSO_BASE, settings.EN_SSO_PATH,
                      settings.EN_SSO_SERVER_ALIAS, urlquote(return_path))

    return redirect(sso_url)
Example #10
0
def sso_login(request):
    """Redirects users to the Evernote SSO page."""
    redirect_to = request.REQUEST.get(auth.REDIRECT_FIELD_NAME,
                                      reverse('pootle-home'))

    if (request.user.is_authenticated() and
        hasattr(request.user, 'evernote_account')):
        return redirect_after_login(request)

    return_path = reverse('en-auth-sso-callback', args=[redirect_to])
    if 'create' in request.GET:
        return_path = '{0}?create'.format(return_path)

    sso_url = urljoin(settings.EN_SSO_BASE, settings.EN_SSO_PATH,
                      settings.EN_SSO_SERVER_ALIAS, urlquote(return_path))

    return redirect(sso_url)
Example #11
0
def sso_callback(request, redirect_to):
    """Callback function run after a user has successfully signed on with
    Evernote.

    This runs the authentication mechanisms and creates any necessary
    accounts.
    """
    redirect_to = urljoin('', '', redirect_to)
    create_account = 'create' in request.GET
    user = None

    try:
        user = auth.authenticate(request=request,
                                 create_account=create_account)

        if user is not None:
            auth.login(request, user)
            return redirect_after_login(request, redirect_to)
    except EvernoteBackend.CookieExpired:
        redirect_url = '?'.join([
            reverse('en-auth-sso-login'),
            urlencode({auth.REDIRECT_FIELD_NAME: redirect_to}),
        ])
        return redirect(redirect_url)
    except EvernoteBackend.AlreadyLinked:
        messages.error(
            request,
            _("Cannot link: your Evernote account is already "
              "linked with another Pootle account."))
        return redirect(redirect_to)

    # No user-account exists, offer to link it
    redirect_url = '?'.join([
        reverse('en-auth-account-link'),
        urlencode({auth.REDIRECT_FIELD_NAME: redirect_to}),
    ])
    return redirect(redirect_url)
Example #12
0
def sso_callback(request, redirect_to):
    """Callback function run after a user has successfully signed on with
    Evernote.

    This runs the authentication mechanisms and creates any necessary
    accounts.
    """
    redirect_to = urljoin('', '', redirect_to)
    create_account = 'create' in request.GET
    user = None

    try:
        user = auth.authenticate(request=request,
                                 create_account=create_account)

        if user is not None:
            auth.login(request, user)
            return redirect_after_login(request, redirect_to)
    except EvernoteBackend.CookieExpired:
        redirect_url = '?'.join([
            reverse('en-auth-sso-login'),
            urlencode({auth.REDIRECT_FIELD_NAME: redirect_to}),
        ])
        return redirect(redirect_url)
    except EvernoteBackend.AlreadyLinked:
        messages.error(request,
                       _("Cannot link: your Evernote account is already "
                         "linked with another Pootle account."))
        return redirect(redirect_to)

    # No user-account exists, offer to link it
    redirect_url = '?'.join([
        reverse('en-auth-account-link'),
        urlencode({auth.REDIRECT_FIELD_NAME: redirect_to}),
    ])
    return redirect(redirect_url)