107 lines
3.5 KiB
Python
107 lines
3.5 KiB
Python
import logging
|
|
from decimal import Decimal
|
|
|
|
from measurement.measures import Weight
|
|
from django.test import TestCase, Client, RequestFactory
|
|
from django.urls import reverse
|
|
from django.conf import settings
|
|
from django.contrib.sessions.middleware import SessionMiddleware
|
|
from paypalcheckoutsdk.orders import OrdersCreateRequest, OrdersCaptureRequest
|
|
from paypalcheckoutsdk.core import PayPalHttpClient, SandboxEnvironment
|
|
|
|
from accounts.models import User, Address
|
|
from core.models import Product, Order
|
|
from core import CoffeeGrind
|
|
from storefront.views import OrderCreateView
|
|
from storefront.forms import AddressForm
|
|
from storefront.cart import Cart
|
|
from storefront.payments import CreateOrder
|
|
|
|
from . import RequestFaker
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class AddressFormTest(TestCase):
|
|
|
|
def test_invalid_address_returns_form_error(self):
|
|
form = AddressForm(data={
|
|
'full_name': 'John Doe',
|
|
'email': 'john@example.com',
|
|
# Wrong street address
|
|
'street_address_1': '1579 ',
|
|
'street_address_2': '',
|
|
'city': 'Logan',
|
|
'state': 'UT',
|
|
# Wrong Zip code
|
|
'postal_code': '23481'
|
|
})
|
|
self.assertFalse(form.is_valid())
|
|
|
|
def test_usps_finds_zip_from_address(self):
|
|
form = AddressForm(data={
|
|
'full_name': 'John Doe',
|
|
'email': 'john@example.com',
|
|
'street_address_1': '1579 Talon Dr.',
|
|
'street_address_2': '',
|
|
'city': 'Logan',
|
|
'state': 'UT',
|
|
# Wrong Zip code
|
|
'postal_code': '23481'
|
|
})
|
|
self.assertTrue(form.is_valid())
|
|
if form.is_valid():
|
|
cleaned_data = form.cleaned_data
|
|
postal_code = cleaned_data.get('postal_code')
|
|
self.assertEqual(postal_code, '84321')
|
|
|
|
|
|
def test_invalid_address_returns_form_error(self):
|
|
form = AddressForm(data={
|
|
'full_name': 'John Doe',
|
|
'email': 'john@example.com',
|
|
# Wrong street address
|
|
'street_address_1': '1579',
|
|
'street_address_2': '',
|
|
'city': 'Logan',
|
|
'state': 'UT',
|
|
# Wrong Zip code
|
|
'postal_code': '84321'
|
|
})
|
|
self.assertFalse(form.is_valid())
|
|
|
|
def test_process_full_name_with_two_given_names(self):
|
|
form = AddressForm(data={
|
|
'full_name': 'John Doe',
|
|
'email': 'john@example.com',
|
|
'street_address_1': '1579 Talon Dr',
|
|
'street_address_2': '',
|
|
'city': 'Logan',
|
|
'state': 'UT',
|
|
'postal_code': '84321'
|
|
})
|
|
if form.is_valid():
|
|
cleaned_data = form.cleaned_data
|
|
first_name, last_name = form.process_full_name(
|
|
cleaned_data.get('full_name')
|
|
)
|
|
self.assertEqual(first_name, 'John')
|
|
self.assertEqual(last_name, 'Doe')
|
|
|
|
def test_process_full_name_with_more_than_two_given_names(self):
|
|
form = AddressForm(data={
|
|
'full_name': 'John Franklin Rosevelt Doe',
|
|
'email': 'john@example.com',
|
|
'street_address_1': '1579 Talon Dr',
|
|
'street_address_2': '',
|
|
'city': 'Logan',
|
|
'state': 'UT',
|
|
'postal_code': '84321'
|
|
})
|
|
if form.is_valid():
|
|
cleaned_data = form.cleaned_data
|
|
first_name, last_name = form.process_full_name(
|
|
cleaned_data.get('full_name')
|
|
)
|
|
self.assertEqual(first_name, 'John Franklin Rosevelt')
|
|
self.assertEqual(last_name, 'Doe')
|