2023-01-21 14:15:36 -07:00

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')