def test_add(self): obj = {'foo': 'bar'} response = add(obj, '/baz', 'quux') assert response == {'foo': 'bar', 'baz': 'quux'} assert response != obj obj = {'foo': {'bar': 'baz'}} response = add(obj, '/baz', 'quux') assert response == {'foo': {'bar': 'baz'}, 'baz': 'quux'} response = add(obj, '/foo/quux', 42) assert response == {'foo': {'bar': 'baz', 'quux': 42}}
def test_adding_nested_member_object(self): obj = {'foo': 'bar'} assert add(obj, '/child', {'grandchild': {}}) == { 'foo': 'bar', 'child': { 'grandchild': {} } }
def run(self, args): parse_pointer(args) parse_document(args) parse_fragment(args) from jsonspec.operations import add, Error from jsonspec.pointer import ParseError try: response = add(args.document, args.pointer, args.fragment) return driver.dumps(response, indent=args.indent) except Error as error: raise Exception(error) except ParseError as error: raise Exception('{} is not a valid pointer'.format(args.pointer))
def test_add_array_element(self): obj = {'foo': ['bar', 'baz']} assert add(obj, '/foo/1', 'qux') == { 'foo': ['bar', 'qux', 'baz'] }
def test_add_object_member(self): obj = {'foo': 'bar'} assert add(obj, '/baz', 'qux') == { 'baz': 'qux', 'foo': 'bar' }
def test_adding_array_value(self): obj = {'foo': ['bar']} assert add(obj, '/foo/-', ['abc', 'def']) == { 'foo': ['bar', ['abc', 'def']] }
def test_adding_to_nonexistent_target(self): obj = {'foo': 'bar'} with self.assertRaises(NonexistentTarget): assert add(obj, '/baz/bat', 'qux')
def test_add_array_element(self): obj = {'foo': ['bar', 'baz']} assert add(obj, '/foo/1', 'qux') == {'foo': ['bar', 'qux', 'baz']}
def test_add_object_member(self): obj = {'foo': 'bar'} assert add(obj, '/baz', 'qux') == {'baz': 'qux', 'foo': 'bar'}
def test_adding_mapping_type_value(): obj = TestMappingType({'foo': ['bar']}) assert add(obj, '/foo/-', ['abc', 'def']) == TestMappingType( {'foo': ['bar', ['abc', 'def']]})
def test_adding_mapping_type_value(): obj = TestMappingType({'foo': ['bar']}) assert add(obj, '/foo/-', ['abc', 'def']) == TestMappingType({ 'foo': ['bar', ['abc', 'def']] })