Manage index argument to construct image URL
issue11455 review427091003
This commit is contained in:
@@ -47,9 +47,12 @@ class ImageURLMixin:
|
||||
}))
|
||||
if args:
|
||||
size = args.pop('s', None)
|
||||
index = args.pop('i', None)
|
||||
args = {k: int(bool(v)) for k, v in args.items()}
|
||||
if size:
|
||||
args['s'] = size
|
||||
if index is not None:
|
||||
args['i'] = index
|
||||
url += '?' + urlencode(args)
|
||||
return url
|
||||
|
||||
|
||||
@@ -40,5 +40,30 @@ class ProductImageTestCase(ModuleTestCase):
|
||||
img = PIL.Image.open(io.BytesIO(image.get(size=100)))
|
||||
self.assertEqual(img.size, (100, 100))
|
||||
|
||||
@with_transaction()
|
||||
def test_get_image_url(self):
|
||||
"Test get_image_url"
|
||||
pool = Pool()
|
||||
Image = pool.get('product.image')
|
||||
Template = pool.get('product.template')
|
||||
Uom = pool.get('product.uom')
|
||||
|
||||
template = Template(name="Template", code="CODE")
|
||||
template.default_uom, = Uom.search([], limit=1)
|
||||
template.save()
|
||||
|
||||
for _ in range(3):
|
||||
image = Image(template=template)
|
||||
image.image = urllib.request.urlopen(
|
||||
'https://picsum.photos/200').read()
|
||||
image.save()
|
||||
|
||||
self.assertRegex(
|
||||
template.get_image_url(i=2),
|
||||
r'/product/image/CODE/.*/Template\?i=2')
|
||||
self.assertRegex(
|
||||
template.get_image_url(s=400),
|
||||
r'/product/image/CODE/.*/Template\?s=400')
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
|
||||
Reference in New Issue
Block a user