def test_send_set_password_email(staff_user, site_settings): site = site_settings.site uid = urlsafe_base64_encode(force_bytes(staff_user.pk)).decode() token = default_token_generator.make_token(staff_user) logo_url = build_absolute_uri(static('images/logo-light.svg')) password_set_url = build_absolute_uri( reverse( 'account:reset-password-confirm', kwargs={'token': token, 'uidb64': uid})) ctx = { 'logo_url': logo_url, 'password_set_url': password_set_url, 'site_name': site.name} send_templated_mail( template_name='dashboard/staff/set_password', from_email=DEFAULT_FROM_EMAIL, recipient_list=[staff_user.email], context=ctx) assert len(mail.outbox) == 1 generated_link = reverse( 'account:reset-password-confirm', kwargs={ 'uidb64': uid, 'token': token}) absolute_generated_link = build_absolute_uri(generated_link) sended_message = mail.outbox[0].body assert absolute_generated_link in sended_message
def test_send_set_password_email(staff_user, site_settings): site = site_settings.site uid = urlsafe_base64_encode(force_bytes(staff_user.pk)) token = default_token_generator.make_token(staff_user) logo_url = build_absolute_uri(static("images/logo-light.svg")) password_set_url = build_absolute_uri( reverse( "account:reset-password-confirm", kwargs={"token": token, "uidb64": uid} ) ) ctx = { "logo_url": logo_url, "password_set_url": password_set_url, "site_name": site.name, } send_templated_mail( template_name="dashboard/staff/set_password", from_email=DEFAULT_FROM_EMAIL, recipient_list=[staff_user.email], context=ctx, ) assert len(mail.outbox) == 1 generated_link = reverse( "account:reset-password-confirm", kwargs={"uidb64": uid, "token": token} ) absolute_generated_link = build_absolute_uri(generated_link) sended_message = mail.outbox[0].body assert absolute_generated_link in sended_message
def test_build_absolute_uri(site_settings, settings): # Case when we are using external service for storing static files, # eg. Amazon s3 url = "https://example.com/static/images/image.jpg" assert build_absolute_uri(location=url) == url # Case when static url is resolved to relative url logo_url = build_absolute_uri(static("images/logo-light.svg")) protocol = "https" if settings.ENABLE_SSL else "http" current_url = "%s://%s" % (protocol, site_settings.site.domain) logo_location = urljoin(current_url, static("images/logo-light.svg")) assert logo_url == logo_location
def test_sitemap(client, product): product_url = build_absolute_uri(product.get_absolute_url()) category_url = build_absolute_uri( product.category.get_absolute_url()) expected_urls = [product_url, category_url] language_codes = [lang_code for lang_code, lang_name in settings.LANGUAGES] expected_urls_i18n = [ translate_url(url, language_code) for url in expected_urls for language_code in language_codes] response = client.get(reverse('django.contrib.sitemaps.views.sitemap')) sitemap_links = [url['location'] for url in response.context['urlset']] assert sorted(sitemap_links) == sorted(expected_urls_i18n)
def test_get_email_base_context(site_settings): site = site_settings.site logo_url = build_absolute_uri(static('images/logo-light.svg')) proper_context = { 'domain': site.domain, 'logo_url': logo_url, 'site_name': site.name} received_context = get_email_base_context() assert proper_context == received_context
def test_get_email_base_context(site_settings): site = site_settings.site logo_url = build_absolute_uri(static("images/logo-light.svg")) proper_context = { "domain": site.domain, "logo_url": logo_url, "site_name": site.name, } received_context = get_email_base_context() assert proper_context == received_context
def test_get_email_context(order, site_settings): site = site_settings.site order_url = build_absolute_uri( reverse('order:details', kwargs={'token': order.token})) proper_context = { 'protocol': 'https' if settings.ENABLE_SSL else 'http', 'site_name': site.name, 'domain': site.domain, 'url': order_url} received_context = emails.get_email_context(order.token) assert proper_context == received_context
def test_send_set_password_customer_email(customer_user, site_settings): site = site_settings.site uid = urlsafe_base64_encode(force_bytes(customer_user.pk)).decode() token = default_token_generator.make_token(customer_user) logo_url = build_absolute_uri(static('images/logo-document.svg')) password_set_url = build_absolute_uri( reverse('account:reset-password-confirm', kwargs={ 'token': token, 'uidb64': uid })) ctx = { 'logo_url': logo_url, 'password_set_url': password_set_url, 'site_name': site.name } send_templated_mail(template_name='dashboard/customer/set_password', from_email=DEFAULT_FROM_EMAIL, recipient_list=[customer_user.email], context=ctx) assert len(mail.outbox) == 1 sended_message = mail.outbox[0].body assert password_set_url in sended_message
def get_email_base_context(): # 内置功能:获取当前网站相关信息 site = Site.objects.get_current() # static 输入相对路径,输出绝对路径 # build_absolute_uri, 域名路径+资源路径, 并且将中文之类的unicode编码,编码为url logo_url = build_absolute_uri(static('images/logo-document.svg')) return { 'domain': site.domain, 'logo_url': logo_url, 'site_name': site.name }
def test_send_set_password_email(staff_user, site_settings): site = site_settings.site ctx = { 'protocol': 'http', 'domain': site.domain, 'site_name': site.name, 'uid': urlsafe_base64_encode(force_bytes(staff_user.pk)).decode(), 'token': default_token_generator.make_token(staff_user)} send_templated_mail( template_name='dashboard/staff/set_password', from_email=DEFAULT_FROM_EMAIL, recipient_list=[staff_user.email], context=ctx) assert len(mail.outbox) == 1 generated_link = reverse( 'account:reset-password-confirm', kwargs={ 'uidb64': ctx['uid'], 'token': ctx['token']}) absolute_generated_link = build_absolute_uri(generated_link) sended_message = mail.outbox[0].body assert absolute_generated_link in sended_message
def get_absolute_url(self) -> str: url = reverse('product:digital-product', kwargs={'token': str(self.token)}) return build_absolute_uri(url)
def get_absolute_url(self) -> str: url = reverse( 'product:digital-product', kwargs={'token': str(self.token)}) return build_absolute_uri(url)