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

test_benefit.py 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import pytest
  2. from django.utils import six
  3. from oscar.apps.offer.models import Benefit
  4. from oscar.test import factories
  5. @pytest.fixture
  6. def range():
  7. return factories.RangeFactory()
  8. @pytest.mark.django_db
  9. class TestBenefitProxyModels(object):
  10. """
  11. https://docs.djangoproject.com/en/1.11/topics/db/models/#proxy-models
  12. """
  13. def test_name_and_description(self, range):
  14. """
  15. Tests that the benefit proxy classes all return a name and
  16. description. Unfortunately, the current implementations means
  17. a valid range is required.
  18. This test became necessary because the complex name/description logic
  19. broke with the python_2_unicode_compatible decorator.
  20. """
  21. for benefit_type, __ in Benefit.TYPE_CHOICES:
  22. benefit = Benefit(type=benefit_type, range=range)
  23. assert all([
  24. benefit.name,
  25. benefit.description,
  26. six.text_type(benefit)])
  27. def test_proxy(self, range):
  28. for benefit_type, __ in Benefit.TYPE_CHOICES:
  29. benefit = Benefit(
  30. type=benefit_type, value=10, range=range, max_affected_items=1)
  31. proxy = benefit.proxy()
  32. assert benefit.type == proxy.type
  33. assert benefit.value == proxy.value
  34. assert benefit.range == proxy.range
  35. assert benefit.max_affected_items == proxy.max_affected_items