This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
zhangyang-zerotierone/ext/librethinkdbxx/test/upstream/changefeeds/point.yaml
2017-11-02 07:05:11 -07:00

148 lines
5.2 KiB
YAML

desc: Test point changebasics
table_variable_name: tbl
tests:
# -- basic
# start a feed
- cd: basic = tbl.get(1).changes({include_initial:true})
py: basic = tbl.get(1).changes(include_initial=True)
# - inital return
- cd: fetch(basic, 1)
ot: [{'new_val':null}]
# - inserts
- cd: tbl.insert({'id':1})
ot: partial({'errors':0, 'inserted':1})
- cd: fetch(basic, 1)
ot: [{'old_val':null, 'new_val':{'id':1}}]
# - updates
- cd: tbl.get(1).update({'update':1})
ot: partial({'errors':0, 'replaced':1})
- cd: fetch(basic, 1)
ot: [{'old_val':{'id':1}, 'new_val':{'id':1,'update':1}}]
# - deletions
- cd: tbl.get(1).delete()
ot: partial({'errors':0, 'deleted':1})
- cd: fetch(basic, 1)
ot: [{'old_val':{'id':1,'update':1}, 'new_val':null}]
# - closing
- cd: basic.close()
rb: def pass; end
# the ruby test driver currently has to mangle cursors, so we can't close them properly
# -- filter
- py: filter = tbl.get(1).changes(squash=false,include_initial=True).filter(r.row['new_val']['update'].gt(2))['new_val']['update']
rb: filter = tbl.get(1).changes(squash:false,include_initial:true).filter{|row| row['new_val']['update'].gt(2)}['new_val']['update']
js: filter = tbl.get(1).changes({squash:false,include_initial:true}).filter(r.row('new_val')('update').gt(2))('new_val')('update')
- cd: tbl.insert({'id':1, 'update':1})
- cd: tbl.get(1).update({'update':4})
- cd: tbl.get(1).update({'update':1})
- cd: tbl.get(1).update({'update':7})
- cd: fetch(filter, 2)
ot: [4,7]
# -- pluck on values
- py: pluck = tbl.get(3).changes(squash=false,include_initial=True).pluck({'new_val':['red', 'blue']})['new_val']
rb: pluck = tbl.get(3).changes(squash:false,include_initial:true).pluck({'new_val':['red', 'blue']})['new_val']
js: pluck = tbl.get(3).changes({squash:false,include_initial:true}).pluck({'new_val':['red', 'blue']})('new_val')
- cd: tbl.insert({'id':3, 'red':1, 'green':1})
ot: partial({'errors':0, 'inserted':1})
- cd: tbl.get(3).update({'blue':2, 'green':3})
ot: partial({'errors':0, 'replaced':1})
- cd: tbl.get(3).update({'green':4})
ot: partial({'errors':0, 'replaced':1})
- cd: tbl.get(3).update({'blue':4})
ot: partial({'errors':0, 'replaced':1})
- cd: fetch(pluck, 4)
ot: [{'red': 1}, {'blue': 2, 'red': 1}, {'blue': 2, 'red': 1}, {'blue': 4, 'red': 1}]
# -- virtual tables
# - rethinkdb._debug_scratch
- def: dtbl = r.db('rethinkdb').table('_debug_scratch')
- cd: debug = dtbl.get(1).changes({include_initial:true})
py: debug = dtbl.get(1).changes(include_initial=True)
- cd: fetch(debug, 1)
ot: [{'new_val':null}]
- cd: dtbl.insert({'id':1})
ot: partial({'errors':0, 'inserted':1})
- cd: fetch(debug, 1)
ot: [{'old_val':null, 'new_val':{'id':1}}]
- cd: dtbl.get(1).update({'update':1})
ot: partial({'errors':0, 'replaced':1})
- cd: fetch(debug, 1)
ot: [{'old_val':{'id':1}, 'new_val':{'id':1,'update':1}}]
- cd: dtbl.get(1).delete()
ot: partial({'errors':0, 'deleted':1})
- cd: fetch(debug, 1)
ot: [{'old_val':{'id':1,'update':1}, 'new_val':null}]
- cd: dtbl.insert({'id':5, 'red':1, 'green':1})
ot: {'skipped':0, 'deleted':0, 'unchanged':0, 'errors':0, 'replaced':0, 'inserted':1}
- py: dtblPluck = dtbl.get(5).changes(include_initial=True).pluck({'new_val':['red', 'blue']})['new_val']
rb: dtblPluck = dtbl.get(5).changes(include_initial:true).pluck({'new_val':['red', 'blue']})['new_val']
js: dtblPluck = dtbl.get(5).changes({include_initial:true}).pluck({'new_val':['red', 'blue']})('new_val')
# disabled because inital value is not being reported correctly, so goes missing. see #3723
- cd: fetch(dtblPluck, 1)
ot: [{'red':1}]
- cd: dtbl.get(5).update({'blue':2, 'green':3})
ot: partial({'errors':0, 'replaced':1})
- cd: fetch(dtblPluck, 1)
ot: [{'blue':2, 'red':1}]
# - rethinkdb.table_status bad optargs
# disabled, re-enable once #3725 is done
# - py: r.db('rethinkdb').table('table_status').changes(squash=False)
# rb: r.db('rethinkdb').table('table_status').changes(squash:False)
# js: r.db('rethinkdb').table('table_status').changes({squash:False})
# ot: err('ReqlRuntimeError', 'replace with error message decided in \#3725')
# - rethinkdb.table_status
- cd: tableId = tbl.info()['id']
js: tableId = tbl.info()('id')
- cd: rtblPluck = r.db('rethinkdb').table('table_status').get(tableId).changes({include_initial:true})
py: rtblPluck = r.db('rethinkdb').table('table_status').get(tableId).changes(include_initial=True)
- cd: fetch(rtblPluck, 1)
ot: partial([{'new_val':partial({'db':'test'})}])
- py: tbl.reconfigure(shards=3, replicas=1)
rb: tbl.reconfigure(shards:3, replicas:1)
js: tbl.reconfigure({shards:3, replicas:1})
- py: fetch(rtblPluck, 1, 2)
js: fetch(rtblPluck, 1, 2)
rb: fetch(rtblPluck, 1)
ot: partial([{'old_val':partial({'db':'test'}), 'new_val':partial({'db':'test'})}])