Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

address_tests.py 3.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # -*- coding: utf-8 -*-
  2. from oscar.core.compat import get_user_model
  3. from django.test import TestCase
  4. from oscar.apps.address.models import Country, UserAddress
  5. from oscar.apps.order.models import ShippingAddress
  6. User = get_user_model()
  7. class UserAddressTest(TestCase):
  8. def setUp(self):
  9. self.user = User.objects.create(username='dummy_user')
  10. self.country = Country(iso_3166_1_a2='GB', name="UNITED KINGDOM")
  11. def tearDown(self):
  12. self.user.delete()
  13. def test_titleless_salutation_is_stripped(self):
  14. a = UserAddress(last_name='Barrington', line1="75 Smith Road", postcode="N4 8TY",
  15. country=self.country, user=self.user)
  16. self.assertEquals("Barrington", a.salutation())
  17. def test_postcodes_are_saved_in_uppercase(self):
  18. a = UserAddress.objects.create(last_name='Barrington', line1="75 Smith Road", postcode="n4 8ty",
  19. country=self.country, user=self.user)
  20. self.assertEquals("N4 8TY", a.postcode)
  21. def test_fields_are_stripped_when_saved(self):
  22. a = UserAddress.objects.create(last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  23. country=self.country, user=self.user)
  24. self.assertEquals("N4 8TY", a.postcode)
  25. def test_active_address_fields_skips_whitespace_only_fields(self):
  26. a = UserAddress(first_name=" ", last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  27. country=self.country, user=self.user)
  28. active_fields = a.active_address_fields()
  29. self.assertEquals("Barrington", active_fields[0])
  30. def test_summary_is_property(self):
  31. a = UserAddress(first_name=" Terry ", last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  32. country=self.country, user=self.user)
  33. self.assertEquals("Terry Barrington, 75 Smith Road, N4 8TY, UNITED KINGDOM", a.summary)
  34. def test_populate_shipping_address_doesnt_set_id(self):
  35. a = UserAddress(first_name=" Terry ", last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  36. country=self.country, user=self.user)
  37. sa = ShippingAddress()
  38. a.populate_alternative_model(sa)
  39. self.assertIsNone(sa.id)
  40. def test_populated_shipping_address_has_same_summary_user_address(self):
  41. a = UserAddress(first_name=" Terry ", last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  42. country=self.country, user=self.user)
  43. sa = ShippingAddress()
  44. a.populate_alternative_model(sa)
  45. self.assertEquals(sa.summary, a.summary)
  46. def test_addresses_with_same_fields_ignoring_whitespace_have_same_hash(self):
  47. a1 = UserAddress(first_name=" Terry ", last_name='Barrington', line1=" 75 Smith Road ", postcode=" n4 8ty",
  48. country=self.country, user=self.user)
  49. a2 = UserAddress(first_name=" Terry", last_name=' Barrington', line1=" 75 Smith Road ", postcode="N4 8ty",
  50. country=self.country, user=self.user)
  51. self.assertEquals(a1.generate_hash(), a2.generate_hash())
  52. def test_hashing_with_utf8(self):
  53. a = UserAddress(first_name=u"\u0141ukasz Smith", last_name=u'Smith', line1=u"75 Smith Road", postcode=u"n4 8ty",
  54. country=self.country, user=self.user)
  55. a.active_address_fields()
  56. def test_city_is_alias_of_line4(self):
  57. a = UserAddress(last_name='Barrington', line1="75 Smith Road", line4="London", postcode="n4 8ty",
  58. country=self.country, user=self.user)
  59. self.assertEqual('London', a.city)