Author: Antonio Cuni <[email protected]>
Branch: fastjson
Changeset: r65070:3659a717d8e8
Date: 2013-06-28 16:11 +0200
http://bitbucket.org/pypy/pypy/changeset/3659a717d8e8/
Log: test&fix for a trailing comma when parsing an array
diff --git a/pypy/module/_fastjson/interp_decoder.py
b/pypy/module/_fastjson/interp_decoder.py
--- a/pypy/module/_fastjson/interp_decoder.py
+++ b/pypy/module/_fastjson/interp_decoder.py
@@ -239,11 +239,11 @@
start = i
count = 0
i = self.skip_whitespace(start)
+ if self.ll_chars[i] == ']':
+ self.pos = i+1
+ return w_list
+ #
while True:
- ch = self.ll_chars[i]
- if ch == ']':
- self.pos = i+1
- return w_list
w_item = self.decode_any(i)
i = self.pos
self.space.call_method(w_list, 'append', w_item)
@@ -267,11 +267,10 @@
w_dict = self.space.newdict()
#
i = self.skip_whitespace(i)
- ch = self.ll_chars[i]
- if ch == '}':
+ if self.ll_chars[i] == '}':
self.pos = i+1
return w_dict
-
+ #
while True:
# parse a key: value
self.last_type = TYPE_UNKNOWN
diff --git a/pypy/module/_fastjson/test/test__fastjson.py
b/pypy/module/_fastjson/test/test__fastjson.py
--- a/pypy/module/_fastjson/test/test__fastjson.py
+++ b/pypy/module/_fastjson/test/test__fastjson.py
@@ -166,7 +166,8 @@
assert _fastjson.loads('[1, 2]') == [1, 2]
raises(ValueError, "_fastjson.loads('[1: 2]')")
raises(ValueError, "_fastjson.loads('[1, 2')")
-
+ raises(ValueError, """_fastjson.loads('["extra comma",]')""")
+
def test_unicode_surrogate_pair(self):
import _fastjson
expected = u'z\U0001d120x'
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit