def METHOD_NAME(self):
    key, val = '\u2013', -1
    key2, val2 = '\u00A3', None
    data = {key: val}
    # put writes on root element, delete deletes it
    self.json('get', '/json/write/', None)
    self.json('put', '/json/write/', data, data=data)
    self.json('get', '/json/write/', data)
    self.json('delete', '/json/write/', None)
    # Empty put does not raise an error, returns empty value
    self.json('put', '/json/write/', None, data='')
    # put creates deep trees
    self.json('get', '/json/write/', None)
    self.json('put', '/json/write/a/b', data, data=data)
    self.json('get', '/json/write/', {'a': {'b': data}})
    self.json('delete', '/json/write/', None)
    # write into sub-keys
    self.json('get', '/json/write/', None)
    self.json('put', '/json/write/', data, data=data)
    self.json('put', f'/json/write/{key}/1', data, data=data)
    self.json('get', '/json/write/', {key: {'1': data}})
    self.json('delete', '/json/write/', None)
    # test patch for update
    temp = {key: val}
    self.json('get', '/json/write/', None)
    self.json('put', '/json/write/', temp, data=temp)
    self.json('patch', '/json/write/', temp, data=temp)
    self.json('get', '/json/write/', temp)
    self.json('patch', '/json/write/', {key: val2}, data={key: val2})
    temp.update({key: val2})
    self.json('get', '/json/write/', temp)
    self.json('patch', '/json/write/', {key2: val}, data={key2: val})
    temp.update({key2: val})
    self.json('get', '/json/write/', temp)
    self.json('delete', '/json/write/', None)
    # test post for adding new keys
    self.json('get', '/json/write/', None)
    name = self.json('post', '/json/write/', data=data).json()['name']
    temp = {name: data}
    self.json('get', '/json/write/', temp)
    name = self.json('post', '/json/write/', data=data).json()['name']
    temp[name] = data
    self.json('get', '/json/write/', temp)
    self.json('delete', '/json/write/', None)