Просмотр исходного кода

Fix create_line_reference for options already enconded to utf-8

master
Juan Madurga 10 лет назад
Родитель
Сommit
d4dbf20f42
2 измененных файлов: 13 добавлений и 2 удалений
  1. 1
    1
      src/oscar/apps/basket/abstract_models.py
  2. 12
    1
      tests/unit/basket/model_tests.py

+ 1
- 1
src/oscar/apps/basket/abstract_models.py Просмотреть файл

@@ -338,7 +338,7 @@ class AbstractBasket(models.Model):
338 338
         base = '%s_%s' % (product.id, stockrecord.id)
339 339
         if not options:
340 340
             return base
341
-        return "%s_%s" % (base, zlib.crc32(repr(options).encode('utf8')))
341
+        return "%s_%s" % (base, zlib.crc32(repr(options)))
342 342
 
343 343
     def _get_total(self, property):
344 344
         """

+ 12
- 1
tests/unit/basket/model_tests.py Просмотреть файл

@@ -1,9 +1,10 @@
1
+# -*- coding: utf-8 -*-
1 2
 from django.test import TestCase
2 3
 
3 4
 from oscar.apps.basket.models import Basket
4 5
 from oscar.apps.partner import strategy
5 6
 from oscar.test.factories import (
6
-    BasketFactory, BasketLineAttributeFactory, ProductFactory)
7
+    BasketFactory, BasketLineAttributeFactory, ProductFactory, OptionFactory)
7 8
 
8 9
 
9 10
 class TestANewBasket(TestCase):
@@ -53,3 +54,13 @@ class TestBasketLine(TestCase):
53 54
         BasketLineAttributeFactory(
54 55
             line=line, value=u'\u2603', option__name='with')
55 56
         self.assertEqual(line.description, u"A product (with = '\u2603')")
57
+        
58
+    def test_create_line_reference(self):
59
+        basket = BasketFactory()
60
+        product = ProductFactory(title="A product")
61
+        option = OptionFactory(name="product_option", code="product_option")
62
+        option_product = ProductFactory(title=u'Asunción')
63
+        options = [{'option' : option, 'value': option_product}]
64
+        basket.add_product(product, options = options)
65
+        
66
+        

Загрузка…
Отмена
Сохранить