Skip to content

Commit 538f0c5

Browse files
authored
Deprecate json decode functionality in UnicodeStringSet (#294)
1 parent 19eeb5a commit 538f0c5

File tree

2 files changed

+24
-23
lines changed

2 files changed

+24
-23
lines changed

pynamodb/attributes.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -226,21 +226,7 @@ def element_serialize(self, value):
226226
return six.u(str(value))
227227

228228
def element_deserialize(self, value):
229-
"""
230-
This deserializes what we get from mongo back into a str
231-
Serialization previously json encoded strings. This caused them to have
232-
extra double quote (") characters. That no longer happens.
233-
This method allows both types of serialized values to be read
234-
:param value:
235-
:return:
236-
"""
237-
result = value
238-
try:
239-
result = json.loads(value)
240-
except ValueError:
241-
# it's serialized in the new way so pass
242-
pass
243-
return result
229+
return value
244230

245231
def serialize(self, value):
246232
if value is not None:

pynamodb/tests/test_attributes.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,12 @@ def test_unicode_set_serialize(self):
365365
expected = sorted([six.u('foo'), six.u('bar')])
366366
assert attr.serialize(set([six.u('foo'), six.u('bar')])) == expected
367367

368+
expected = sorted([six.u('True'), six.u('False')])
369+
assert attr.serialize(set([six.u('True'), six.u('False')])) == expected
370+
371+
expected = sorted([six.u('true'), six.u('false')])
372+
assert attr.serialize(set([six.u('true'), six.u('false')])) == expected
373+
368374
def test_round_trip_unicode_set(self):
369375
"""
370376
Round trip a unicode set
@@ -373,6 +379,15 @@ def test_round_trip_unicode_set(self):
373379
orig = set([six.u('foo'), six.u('bar')])
374380
assert orig == attr.deserialize(attr.serialize(orig))
375381

382+
orig = set([six.u('true'), six.u('false')])
383+
assert orig == attr.deserialize(attr.serialize(orig))
384+
385+
orig = set([six.u('1'), six.u('2.8')])
386+
assert orig == attr.deserialize(attr.serialize(orig))
387+
388+
orig = set([six.u('[1,2,3]'), six.u('2.8')])
389+
assert orig == attr.deserialize(attr.serialize(orig))
390+
376391
def test_unicode_set_deserialize(self):
377392
"""
378393
UnicodeSetAttribute.deserialize
@@ -381,14 +396,14 @@ def test_unicode_set_deserialize(self):
381396
value = set([six.u('foo'), six.u('bar')])
382397
assert attr.deserialize(value) == value
383398

384-
def test_unicode_set_deserialize_old_way(self):
385-
"""
386-
UnicodeSetAttribute.deserialize old way
387-
"""
388-
attr = UnicodeSetAttribute()
389-
value = set([six.u('foo'), six.u('bar')])
390-
old_value = set([json.dumps(val) for val in value])
391-
assert attr.deserialize(old_value) == value
399+
value = set([six.u('True'), six.u('False')])
400+
assert attr.deserialize(value) == value
401+
402+
value = set([six.u('true'), six.u('false')])
403+
assert attr.deserialize(value) == value
404+
405+
value = set([six.u('1'), six.u('2.8')])
406+
assert attr.deserialize(value) == value
392407

393408
def test_unicode_set_attribute(self):
394409
"""

0 commit comments

Comments
 (0)