Manage index argument to construct image URL

issue11455
review427091003
This commit is contained in:
Cédric Krier
2022-05-11 23:18:12 +02:00
parent 94daf95f07
commit f40e30c819
2 changed files with 28 additions and 0 deletions
+3
View File
@@ -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
+25
View File
@@ -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