148 lines
5.2 KiB
YAML
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'})}])
|
|
|