point.yaml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. desc: Test point changebasics
  2. table_variable_name: tbl
  3. tests:
  4. # -- basic
  5. # start a feed
  6. - cd: basic = tbl.get(1).changes({include_initial:true})
  7. py: basic = tbl.get(1).changes(include_initial=True)
  8. # - inital return
  9. - cd: fetch(basic, 1)
  10. ot: [{'new_val':null}]
  11. # - inserts
  12. - cd: tbl.insert({'id':1})
  13. ot: partial({'errors':0, 'inserted':1})
  14. - cd: fetch(basic, 1)
  15. ot: [{'old_val':null, 'new_val':{'id':1}}]
  16. # - updates
  17. - cd: tbl.get(1).update({'update':1})
  18. ot: partial({'errors':0, 'replaced':1})
  19. - cd: fetch(basic, 1)
  20. ot: [{'old_val':{'id':1}, 'new_val':{'id':1,'update':1}}]
  21. # - deletions
  22. - cd: tbl.get(1).delete()
  23. ot: partial({'errors':0, 'deleted':1})
  24. - cd: fetch(basic, 1)
  25. ot: [{'old_val':{'id':1,'update':1}, 'new_val':null}]
  26. # - closing
  27. - cd: basic.close()
  28. rb: def pass; end
  29. # the ruby test driver currently has to mangle cursors, so we can't close them properly
  30. # -- filter
  31. - py: filter = tbl.get(1).changes(squash=false,include_initial=True).filter(r.row['new_val']['update'].gt(2))['new_val']['update']
  32. rb: filter = tbl.get(1).changes(squash:false,include_initial:true).filter{|row| row['new_val']['update'].gt(2)}['new_val']['update']
  33. js: filter = tbl.get(1).changes({squash:false,include_initial:true}).filter(r.row('new_val')('update').gt(2))('new_val')('update')
  34. - cd: tbl.insert({'id':1, 'update':1})
  35. - cd: tbl.get(1).update({'update':4})
  36. - cd: tbl.get(1).update({'update':1})
  37. - cd: tbl.get(1).update({'update':7})
  38. - cd: fetch(filter, 2)
  39. ot: [4,7]
  40. # -- pluck on values
  41. - py: pluck = tbl.get(3).changes(squash=false,include_initial=True).pluck({'new_val':['red', 'blue']})['new_val']
  42. rb: pluck = tbl.get(3).changes(squash:false,include_initial:true).pluck({'new_val':['red', 'blue']})['new_val']
  43. js: pluck = tbl.get(3).changes({squash:false,include_initial:true}).pluck({'new_val':['red', 'blue']})('new_val')
  44. - cd: tbl.insert({'id':3, 'red':1, 'green':1})
  45. ot: partial({'errors':0, 'inserted':1})
  46. - cd: tbl.get(3).update({'blue':2, 'green':3})
  47. ot: partial({'errors':0, 'replaced':1})
  48. - cd: tbl.get(3).update({'green':4})
  49. ot: partial({'errors':0, 'replaced':1})
  50. - cd: tbl.get(3).update({'blue':4})
  51. ot: partial({'errors':0, 'replaced':1})
  52. - cd: fetch(pluck, 4)
  53. ot: [{'red': 1}, {'blue': 2, 'red': 1}, {'blue': 2, 'red': 1}, {'blue': 4, 'red': 1}]
  54. # -- virtual tables
  55. # - rethinkdb._debug_scratch
  56. - def: dtbl = r.db('rethinkdb').table('_debug_scratch')
  57. - cd: debug = dtbl.get(1).changes({include_initial:true})
  58. py: debug = dtbl.get(1).changes(include_initial=True)
  59. - cd: fetch(debug, 1)
  60. ot: [{'new_val':null}]
  61. - cd: dtbl.insert({'id':1})
  62. ot: partial({'errors':0, 'inserted':1})
  63. - cd: fetch(debug, 1)
  64. ot: [{'old_val':null, 'new_val':{'id':1}}]
  65. - cd: dtbl.get(1).update({'update':1})
  66. ot: partial({'errors':0, 'replaced':1})
  67. - cd: fetch(debug, 1)
  68. ot: [{'old_val':{'id':1}, 'new_val':{'id':1,'update':1}}]
  69. - cd: dtbl.get(1).delete()
  70. ot: partial({'errors':0, 'deleted':1})
  71. - cd: fetch(debug, 1)
  72. ot: [{'old_val':{'id':1,'update':1}, 'new_val':null}]
  73. - cd: dtbl.insert({'id':5, 'red':1, 'green':1})
  74. ot: {'skipped':0, 'deleted':0, 'unchanged':0, 'errors':0, 'replaced':0, 'inserted':1}
  75. - py: dtblPluck = dtbl.get(5).changes(include_initial=True).pluck({'new_val':['red', 'blue']})['new_val']
  76. rb: dtblPluck = dtbl.get(5).changes(include_initial:true).pluck({'new_val':['red', 'blue']})['new_val']
  77. js: dtblPluck = dtbl.get(5).changes({include_initial:true}).pluck({'new_val':['red', 'blue']})('new_val')
  78. # disabled because inital value is not being reported correctly, so goes missing. see #3723
  79. - cd: fetch(dtblPluck, 1)
  80. ot: [{'red':1}]
  81. - cd: dtbl.get(5).update({'blue':2, 'green':3})
  82. ot: partial({'errors':0, 'replaced':1})
  83. - cd: fetch(dtblPluck, 1)
  84. ot: [{'blue':2, 'red':1}]
  85. # - rethinkdb.table_status bad optargs
  86. # disabled, re-enable once #3725 is done
  87. # - py: r.db('rethinkdb').table('table_status').changes(squash=False)
  88. # rb: r.db('rethinkdb').table('table_status').changes(squash:False)
  89. # js: r.db('rethinkdb').table('table_status').changes({squash:False})
  90. # ot: err('ReqlRuntimeError', 'replace with error message decided in \#3725')
  91. # - rethinkdb.table_status
  92. - cd: tableId = tbl.info()['id']
  93. js: tableId = tbl.info()('id')
  94. - cd: rtblPluck = r.db('rethinkdb').table('table_status').get(tableId).changes({include_initial:true})
  95. py: rtblPluck = r.db('rethinkdb').table('table_status').get(tableId).changes(include_initial=True)
  96. - cd: fetch(rtblPluck, 1)
  97. ot: partial([{'new_val':partial({'db':'test'})}])
  98. - py: tbl.reconfigure(shards=3, replicas=1)
  99. rb: tbl.reconfigure(shards:3, replicas:1)
  100. js: tbl.reconfigure({shards:3, replicas:1})
  101. - py: fetch(rtblPluck, 1, 2)
  102. js: fetch(rtblPluck, 1, 2)
  103. rb: fetch(rtblPluck, 1)
  104. ot: partial([{'old_val':partial({'db':'test'}), 'new_val':partial({'db':'test'})}])