When wrap is False, don't wrap JSON result
Test and solution for issue pudo/dataset#149
This commit is contained in:
parent
dc3c14321a
commit
998a712242
@ -25,7 +25,7 @@ class JSONSerializer(Serializer):
|
|||||||
def wrap(self, result):
|
def wrap(self, result):
|
||||||
if self.mode == 'item':
|
if self.mode == 'item':
|
||||||
result = result[0]
|
result = result[0]
|
||||||
if self.wrap:
|
if self.export.get_bool('wrap'):
|
||||||
result = {
|
result = {
|
||||||
'count': len(result),
|
'count': len(result),
|
||||||
'results': result
|
'results': result
|
||||||
|
|||||||
@ -62,6 +62,41 @@ class FreezeTestCase(unittest.TestCase):
|
|||||||
finally:
|
finally:
|
||||||
fh.close()
|
fh.close()
|
||||||
|
|
||||||
|
def test_freeze_json_no_wrap(self):
|
||||||
|
freeze(self.tbl.all(), format='json',
|
||||||
|
filename='weather.csv', prefix=self.d, wrap=False)
|
||||||
|
path = os.path.join(self.d, 'weather.csv')
|
||||||
|
if PY3:
|
||||||
|
fh = open(path, 'rt', encoding='utf8', newline='')
|
||||||
|
else:
|
||||||
|
fh = open(path, 'rU')
|
||||||
|
try:
|
||||||
|
import json
|
||||||
|
data = json.load(fh)
|
||||||
|
self.assertIsInstance(data, list,
|
||||||
|
'Without wrapping, returned JSON should be a list')
|
||||||
|
finally:
|
||||||
|
fh.close()
|
||||||
|
|
||||||
|
def test_freeze_json_wrap(self):
|
||||||
|
freeze(self.tbl.all(), format='json',
|
||||||
|
filename='weather.csv', prefix=self.d, wrap=True)
|
||||||
|
path = os.path.join(self.d, 'weather.csv')
|
||||||
|
if PY3:
|
||||||
|
fh = open(path, 'rt', encoding='utf8', newline='')
|
||||||
|
else:
|
||||||
|
fh = open(path, 'rU')
|
||||||
|
try:
|
||||||
|
import json
|
||||||
|
data = json.load(fh)
|
||||||
|
self.assertIsInstance(data, dict,
|
||||||
|
'With wrapping, returned JSON should be a dict')
|
||||||
|
self.assertIn('results', data.keys())
|
||||||
|
self.assertIn('count', data.keys())
|
||||||
|
self.assertIn('meta', data.keys())
|
||||||
|
finally:
|
||||||
|
fh.close()
|
||||||
|
|
||||||
|
|
||||||
class SerializerTestCase(unittest.TestCase):
|
class SerializerTestCase(unittest.TestCase):
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user