diff --git a/src/budy/models/product.py b/src/budy/models/product.py index 9e48b927..a07a4034 100644 --- a/src/budy/models/product.py +++ b/src/budy/models/product.py @@ -1027,7 +1027,7 @@ def _reset_labels(self): self.labels = [] def _build_labels(self, groups): - if not isinstance(groups, (list, tuple)): + if not isinstance(groups, (list, tuple, appier.References)): groups = (groups,) if groups else [] for group in groups: for label in group.labels: diff --git a/src/budy/test/product.py b/src/budy/test/product.py index 977eeb53..9bd3dc22 100644 --- a/src/budy/test/product.py +++ b/src/budy/test/product.py @@ -240,6 +240,23 @@ def test_labels(self): self.assertEqual(len(product.collections), 1) self.assertEqual(product.collections[0].id, collection.id) + collection.exclusive = True + collection.save() + + self.assertEqual(product.labels, ["new_in"]) + self.assertEqual(len(product.collections), 1) + self.assertEqual(product.collections[0].id, collection.id) + self.assertEqual(collection.new_in, True) + self.assertEqual(collection.exclusive, True) + self.assertEqual(collection.labels, ["new_in", "exclusive"]) + + product = product.reload() + product.save() + + self.assertEqual(product.labels, ["new_in", "exclusive"]) + self.assertEqual(len(product.collections), 1) + self.assertEqual(product.collections[0].id, collection.id) + def test_discount(self): product = budy.Product( short_description = "product",