Skip to content

Commit dcee6d9

Browse files
author
Mike Hearing
committed
Fixed filtering on set/frozenset types serializing improperly
1 parent bed3917 commit dcee6d9

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

pyrestorm/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.1.4'
1+
__version__ = '0.1.5'

pyrestorm/query.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,13 @@ def _get_query_params(self):
7373
# If pagination is on, include those variables
7474
if hasattr(self, '_paginator'):
7575
params.update(self._paginator.as_params())
76-
params.update(self.query.params)
76+
77+
# Sanatize the parameters since some Python types don't encode well
78+
for key, value in self.query.params.iteritems():
79+
if isinstance(value, (set, frozenset)):
80+
value = list(value)
81+
params[key] = value
82+
params.update(params)
7783

7884
return params
7985

tests/test_models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ def test_restmodel_filter(self):
2828
genes = Gene.objects.filter(ens_gene='ENSG00000011295')
2929
self.assertEqual(len(genes), 1)
3030

31+
def test_restmodel_filter_empty(self):
32+
genes = Gene.objects.filter(ens_gene='ENSG00000011295', id__in=frozenset([1, 2]))
33+
self.assertEqual(len(genes), 1)
34+
3135
def test_restmodel_getabsoluteurl(self):
3236
gene = Gene.objects.get(ens_gene='ENSG00000011295')
3337
self.assertEqual('https://api.genepeeks.com/genes/ENSG00000011295/', gene.get_absolute_url())

0 commit comments

Comments
 (0)