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.

range_tests.py 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from django.test import TestCase
  2. from oscar.apps.dashboard.ranges import forms
  3. from oscar.test.helpers import create_product
  4. from oscar.apps.offer.models import Range
  5. class RangeProductFormTests(TestCase):
  6. def setUp(self):
  7. self.range = Range.objects.create(name='dummy')
  8. def tearDown(self):
  9. Range.objects.all().delete()
  10. def submit_form(self, data):
  11. return forms.RangeProductForm(self.range, data)
  12. def test_either_query_or_file_must_be_submitted(self):
  13. form = self.submit_form({'query': ''})
  14. self.assertFalse(form.is_valid())
  15. def test_non_match_becomes_error(self):
  16. form = self.submit_form({'query': '123123'})
  17. self.assertFalse(form.is_valid())
  18. def test_matching_query_is_valid(self):
  19. create_product(partner_sku='123123')
  20. form = self.submit_form({'query': '123123'})
  21. self.assertTrue(form.is_valid())
  22. def test_passing_form_return_product_list(self):
  23. product = create_product(partner_sku='123123')
  24. form = self.submit_form({'query': '123123'})
  25. form.is_valid()
  26. self.assertEqual(1, len(form.get_products()))
  27. self.assertEqual(product.id, form.get_products()[0].id)
  28. def test_missing_skus_are_available(self):
  29. create_product(partner_sku='123123')
  30. form = self.submit_form({'query': '123123, 123xxx'})
  31. form.is_valid()
  32. self.assertEqual(1, len(form.get_missing_skus()))
  33. self.assertTrue('123xxx' in form.get_missing_skus())
  34. def test_only_dupes_is_invalid(self):
  35. product = create_product(partner_sku='123123')
  36. self.range.included_products.add(product)
  37. form = self.submit_form({'query': '123123'})
  38. self.assertFalse(form.is_valid())
  39. def test_dupe_skus_are_available(self):
  40. product = create_product(partner_sku='123123')
  41. create_product(partner_sku='123124')
  42. self.range.included_products.add(product)
  43. form = self.submit_form({'query': '123123, 123124'})
  44. self.assertTrue(form.is_valid())
  45. self.assertTrue('123123' in form.get_duplicate_skus())