You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_shipping.py 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from decimal import Decimal as D
  2. from django.urls import reverse
  3. from oscar.apps.shipping import models
  4. from oscar.test.testcases import WebTestCase
  5. class TestShippingMethodDashboard(WebTestCase):
  6. is_staff = True
  7. def test_for_smoke(self):
  8. list_page = self.get(reverse('dashboard:shipping-method-list'))
  9. # Create a shipping method
  10. create_page = list_page.click(linkid="create_new_shipping_method")
  11. create_page.form['name'] = 'My method'
  12. detail_page = create_page.form.submit().follow()
  13. self.assertInContext(detail_page, 'method')
  14. self.assertEqual(1, models.WeightBased.objects.all().count())
  15. method = models.WeightBased.objects.all()[0]
  16. # Edit shipping method
  17. edit_page = detail_page.click(linkid="edit_method")
  18. edit_page.form['name'] = 'My new method'
  19. reloaded_detail_page = edit_page.form.submit().follow()
  20. reloaded_method = models.WeightBased.objects.get(
  21. id=method.id)
  22. self.assertEqual("My new method", reloaded_method.name)
  23. # Add a weight band
  24. reloaded_detail_page.form['upper_limit'] = '0.1'
  25. reloaded_detail_page.form['charge'] = '2.99'
  26. reloaded_detail_page = reloaded_detail_page.form.submit().follow()
  27. self.assertEqual(1, method.bands.all().count())
  28. band = method.bands.all()[0]
  29. # Edit weight band
  30. edit_band_page = reloaded_detail_page.click(
  31. linkid="edit_band_%s" % band.id)
  32. edit_band_page.form['charge'] = '3.99'
  33. reloaded_detail_page = edit_band_page.form.submit().follow()
  34. reloaded_band = method.bands.get(id=band.id)
  35. self.assertEqual(D('3.99'), reloaded_band.charge)
  36. # Delete weight band
  37. delete_band_page = reloaded_detail_page.click(
  38. linkid="delete_band_%s" % reloaded_band.id)
  39. reloaded_detail_page = delete_band_page.form.submit().follow()
  40. self.assertEqual(0, method.bands.all().count())
  41. # Delete shipping method
  42. delete_page = reloaded_detail_page.click(linkid="delete_method")
  43. delete_page.form.submit().follow()
  44. self.assertEqual(0, models.WeightBased.objects.all().count())