Source code for UseCases.standard_compliance.IETF_RFC.rfc6901_examples.Case011_extended_JSON.CallCase
# -*- coding: utf-8 -*-
"""Extensions for standards tests from RFC6901.
This case covers in particular extensions to the standard contained
examples.
For JSON notation of RFC6901::
{ "": { "": { "": ["tripleempty0", "tripleempty1"] } } }
Pointer access::
"" { "": { "": { "": ["tripleempty0", "tripleempty1"] } } }
"/" { "": { "": ["tripleempty0", "tripleempty1"] } }
"//" { "": ["tripleempty0", "tripleempty1"] }
"///" ["tripleempty0", "tripleempty1"]
"///0" "tripleempty0"
"///1" "tripleempty1"
"""
from __future__ import absolute_import
import unittest
import os
import sys
if 'ujson' in sys.argv:
import ujson as myjson
else:
import json as myjson
import jsonschema
jval = None
try:
from jsondata.JSONPointer import JSONPointer
except Exception as e:
print "\n#\n#*** Set 'PYTHONPATH' ("+str(e)+")\n#\n"
try:
from jsondata.JSONDataSerializer import JSONDataSerializer as ConfigData
from jsondata.JSONDataSerializer import MODE_SCHEMA_OFF
except Exception as e:
print "\n#\n#*** Set 'PYTHONPATH' ("+str(e)+")\n#\n"
# name of application, used for several filenames as MODE_SCHEMA_DRAFT4
_APPNAME = "jsondc"
appname = _APPNAME
#
#######################
#
[docs]class CallUnits(unittest.TestCase):
[docs] def testCase000(self):
"""Create an object for data only - no schema.
"""
global configdata
global appname
kargs = {}
kargs['datafile'] = os.path.dirname(__file__)+os.sep+'rfc6901ext.json'
kargs['nodefaultpath'] = True
kargs['nosubdata'] = True
kargs['pathlist'] = os.path.dirname(__file__)
kargs['validator'] = MODE_SCHEMA_OFF
configdata = ConfigData(appname,**kargs)
[docs] def testCase900(self):
"""JSONPointers: ""
"""
jp = JSONPointer('')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """{u'': {u'': {u'': [u'tripleempty0', u'tripleempty1']}}}"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
[docs] def testCase901(self):
"""JSONPointers: "/"
"""
jp = JSONPointer('/')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """{u'': {u'': [u'tripleempty0', u'tripleempty1']}}"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
[docs] def testCase902(self):
"""JSONPointers: "//"
"""
jp = JSONPointer('//')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """{u'': [u'tripleempty0', u'tripleempty1']}"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
[docs] def testCase903(self):
"""JSONPointers: "///"
"""
jp = JSONPointer('///')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """[u'tripleempty0', u'tripleempty1']"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
[docs] def testCase904(self):
"""JSONPointers: "////0"
"""
jp = JSONPointer('////0')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """u'tripleempty0'"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
[docs] def testCase905(self):
"""JSONPointers: "////1"
"""
jp = JSONPointer('////1')
jdata=jp.get_node_or_value(configdata.data)
jdoc = """u'tripleempty1'"""
#print "<"+repr(jdata)+">"
#print "<"+jdoc+">"
assert repr(jdata) == jdoc
#
#######################
#
if __name__ == '__main__':
unittest.main()