| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- 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'})}])
|