gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/internal/integration/reql_tests/reql_changefeeds_table_test.go (about) 1 // Code generated by gen_tests.py and process_polyglot.py. 2 // Do not edit this file directly. 3 // The template for this file is located at: 4 // ../template.go.tpl 5 package reql_tests 6 7 import ( 8 "testing" 9 "time" 10 11 "github.com/stretchr/testify/suite" 12 r "gopkg.in/rethinkdb/rethinkdb-go.v6" 13 "gopkg.in/rethinkdb/rethinkdb-go.v6/internal/compare" 14 ) 15 16 // Test changefeeds on a table 17 func TestChangefeedsTableSuite(t *testing.T) { 18 suite.Run(t, new(ChangefeedsTableSuite)) 19 } 20 21 type ChangefeedsTableSuite struct { 22 suite.Suite 23 24 session *r.Session 25 } 26 27 func (suite *ChangefeedsTableSuite) SetupTest() { 28 suite.T().Log("Setting up ChangefeedsTableSuite") 29 // Use imports to prevent errors 30 _ = time.Time{} 31 _ = compare.AnythingIsFine 32 33 session, err := r.Connect(r.ConnectOpts{ 34 Address: url, 35 }) 36 suite.Require().NoError(err, "Error returned when connecting to server") 37 suite.session = session 38 39 r.DBDrop("test").Exec(suite.session) 40 err = r.DBCreate("test").Exec(suite.session) 41 suite.Require().NoError(err) 42 err = r.DB("test").Wait().Exec(suite.session) 43 suite.Require().NoError(err) 44 45 r.DB("test").TableDrop("tbl").Exec(suite.session) 46 err = r.DB("test").TableCreate("tbl").Exec(suite.session) 47 suite.Require().NoError(err) 48 err = r.DB("test").Table("tbl").Wait().Exec(suite.session) 49 suite.Require().NoError(err) 50 } 51 52 func (suite *ChangefeedsTableSuite) TearDownSuite() { 53 suite.T().Log("Tearing down ChangefeedsTableSuite") 54 55 if suite.session != nil { 56 r.DB("rethinkdb").Table("_debug_scratch").Delete().Exec(suite.session) 57 r.DB("test").TableDrop("tbl").Exec(suite.session) 58 r.DBDrop("test").Exec(suite.session) 59 60 suite.session.Close() 61 } 62 } 63 64 func (suite *ChangefeedsTableSuite) TestCases() { 65 suite.T().Log("Running ChangefeedsTableSuite: Test changefeeds on a table") 66 67 tbl := r.DB("test").Table("tbl") 68 _ = tbl // Prevent any noused variable errors 69 70 // changefeeds/table.yaml line #9 71 // all = tbl.changes() 72 suite.T().Log("Possibly executing: var all r.Term = tbl.Changes()") 73 74 all := maybeRun(tbl.Changes(), suite.session, r.RunOpts{}) 75 _ = all // Prevent any noused variable errors 76 77 { 78 // changefeeds/table.yaml line #15 79 /* partial({'errors':0, 'inserted':2}) */ 80 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "inserted": 2}) 81 /* tbl.insert([{'id':1}, {'id':2}]) */ 82 83 suite.T().Log("About to run line #15: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 1, }, map[interface{}]interface{}{'id': 2, }})") 84 85 runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 1}, map[interface{}]interface{}{"id": 2}}), suite.session, r.RunOpts{ 86 GeometryFormat: "raw", 87 GroupFormat: "map", 88 }) 89 suite.T().Log("Finished running line #15") 90 } 91 92 { 93 // changefeeds/table.yaml line #17 94 /* bag([{'old_val':null, 'new_val':{'id':1}}, {'old_val':null, 'new_val':{'id':2}}]) */ 95 var expected_ compare.Expected = compare.UnorderedMatch([]interface{}{map[interface{}]interface{}{"old_val": nil, "new_val": map[interface{}]interface{}{"id": 1}}, map[interface{}]interface{}{"old_val": nil, "new_val": map[interface{}]interface{}{"id": 2}}}) 96 /* fetch(all, 2) */ 97 98 suite.T().Log("About to run line #17: fetch(all, 2)") 99 100 fetchAndAssert(suite.Suite, expected_, all, 2) 101 suite.T().Log("Finished running line #17") 102 } 103 104 { 105 // changefeeds/table.yaml line #22 106 /* partial({'errors':0, 'replaced':1}) */ 107 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "replaced": 1}) 108 /* tbl.get(1).update({'version':1}) */ 109 110 suite.T().Log("About to run line #22: tbl.Get(1).Update(map[interface{}]interface{}{'version': 1, })") 111 112 runAndAssert(suite.Suite, expected_, tbl.Get(1).Update(map[interface{}]interface{}{"version": 1}), suite.session, r.RunOpts{ 113 GeometryFormat: "raw", 114 GroupFormat: "map", 115 }) 116 suite.T().Log("Finished running line #22") 117 } 118 119 { 120 // changefeeds/table.yaml line #24 121 /* [{'old_val':{'id':1}, 'new_val':{'id':1, 'version':1}}] */ 122 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"old_val": map[interface{}]interface{}{"id": 1}, "new_val": map[interface{}]interface{}{"id": 1, "version": 1}}} 123 /* fetch(all, 1) */ 124 125 suite.T().Log("About to run line #24: fetch(all, 1)") 126 127 fetchAndAssert(suite.Suite, expected_, all, 1) 128 suite.T().Log("Finished running line #24") 129 } 130 131 { 132 // changefeeds/table.yaml line #29 133 /* partial({'errors':0, 'deleted':1}) */ 134 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "deleted": 1}) 135 /* tbl.get(1).delete() */ 136 137 suite.T().Log("About to run line #29: tbl.Get(1).Delete()") 138 139 runAndAssert(suite.Suite, expected_, tbl.Get(1).Delete(), suite.session, r.RunOpts{ 140 GeometryFormat: "raw", 141 GroupFormat: "map", 142 }) 143 suite.T().Log("Finished running line #29") 144 } 145 146 { 147 // changefeeds/table.yaml line #31 148 /* [{'old_val':{'id':1, 'version':1}, 'new_val':null}] */ 149 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"old_val": map[interface{}]interface{}{"id": 1, "version": 1}, "new_val": nil}} 150 /* fetch(all, 1) */ 151 152 suite.T().Log("About to run line #31: fetch(all, 1)") 153 154 fetchAndAssert(suite.Suite, expected_, all, 1) 155 suite.T().Log("Finished running line #31") 156 } 157 158 // changefeeds/table.yaml line #36 159 // pluck = tbl.changes().pluck({'new_val':['version']}) 160 suite.T().Log("Possibly executing: var pluck r.Term = tbl.Changes().Pluck(map[interface{}]interface{}{'new_val': []interface{}{'version'}, })") 161 162 pluck := maybeRun(tbl.Changes().Pluck(map[interface{}]interface{}{"new_val": []interface{}{"version"}}), suite.session, r.RunOpts{}) 163 _ = pluck // Prevent any noused variable errors 164 165 { 166 // changefeeds/table.yaml line #37 167 /* partial({'errors':0, 'inserted':1}) */ 168 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "inserted": 1}) 169 /* tbl.insert([{'id':5, 'version':5}]) */ 170 171 suite.T().Log("About to run line #37: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 5, 'version': 5, }})") 172 173 runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 5, "version": 5}}), suite.session, r.RunOpts{ 174 GeometryFormat: "raw", 175 GroupFormat: "map", 176 }) 177 suite.T().Log("Finished running line #37") 178 } 179 180 { 181 // changefeeds/table.yaml line #39 182 /* [{'new_val':{'version':5}}] */ 183 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"new_val": map[interface{}]interface{}{"version": 5}}} 184 /* fetch(pluck, 1) */ 185 186 suite.T().Log("About to run line #39: fetch(pluck, 1)") 187 188 fetchAndAssert(suite.Suite, expected_, pluck, 1) 189 suite.T().Log("Finished running line #39") 190 } 191 192 { 193 // changefeeds/table.yaml line #44 194 /* err('ReqlQueryLogicError', "Cannot call a terminal (`reduce`, `count`, etc.) on an infinite stream (such as a changefeed).") */ 195 var expected_ Err = err("ReqlQueryLogicError", "Cannot call a terminal (`reduce`, `count`, etc.) on an infinite stream (such as a changefeed).") 196 /* tbl.changes().order_by('id') */ 197 198 suite.T().Log("About to run line #44: tbl.Changes().OrderBy('id')") 199 200 runAndAssert(suite.Suite, expected_, tbl.Changes().OrderBy("id"), suite.session, r.RunOpts{ 201 GeometryFormat: "raw", 202 GroupFormat: "map", 203 }) 204 suite.T().Log("Finished running line #44") 205 } 206 207 // changefeeds/table.yaml line #59 208 // overflow = tbl.changes() 209 suite.T().Log("Possibly executing: var overflow r.Term = tbl.Changes()") 210 211 overflow := maybeRun(tbl.Changes(), suite.session, r.RunOpts{ 212 ChangefeedQueueSize: 100, 213 }) 214 _ = overflow // Prevent any noused variable errors 215 216 { 217 // changefeeds/table.yaml line #64 218 /* AnythingIsFine */ 219 var expected_ string = compare.AnythingIsFine 220 /* tbl.insert(r.range(200).map(lambda x: {})) */ 221 222 suite.T().Log("About to run line #64: tbl.Insert(r.Range(200).Map(func(x r.Term) interface{} { return map[interface{}]interface{}{}}))") 223 224 runAndAssert(suite.Suite, expected_, tbl.Insert(r.Range(200).Map(func(x r.Term) interface{} { return map[interface{}]interface{}{} })), suite.session, r.RunOpts{ 225 GeometryFormat: "raw", 226 GroupFormat: "map", 227 }) 228 suite.T().Log("Finished running line #64") 229 } 230 231 { 232 // changefeeds/table.yaml line #66 233 /* partial([{'error': regex('Changefeed cache over array size limit, skipped \d+ elements.')}]) */ 234 var expected_ compare.Expected = compare.PartialMatch([]interface{}{map[interface{}]interface{}{"error": compare.MatchesRegexp("Changefeed cache over array size limit, skipped \\d+ elements.")}}) 235 /* fetch(overflow, 90) */ 236 237 suite.T().Log("About to run line #66: fetch(overflow, 90)") 238 239 fetchAndAssert(suite.Suite, expected_, overflow, 90) 240 suite.T().Log("Finished running line #66") 241 } 242 243 // changefeeds/table.yaml line #71 244 // vtbl = r.db('rethinkdb').table('_debug_scratch') 245 suite.T().Log("Possibly executing: var vtbl r.Term = r.DB('rethinkdb').Table('_debug_scratch')") 246 247 vtbl := r.DB("rethinkdb").Table("_debug_scratch") 248 _ = vtbl // Prevent any noused variable errors 249 250 // changefeeds/table.yaml line #72 251 // allVirtual = vtbl.changes() 252 suite.T().Log("Possibly executing: var allVirtual r.Term = vtbl.Changes()") 253 254 allVirtual := maybeRun(vtbl.Changes(), suite.session, r.RunOpts{}) 255 _ = allVirtual // Prevent any noused variable errors 256 257 { 258 // changefeeds/table.yaml line #76 259 /* partial({'errors':0, 'inserted':2}) */ 260 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "inserted": 2}) 261 /* vtbl.insert([{'id':1}, {'id':2}]) */ 262 263 suite.T().Log("About to run line #76: vtbl.Insert([]interface{}{map[interface{}]interface{}{'id': 1, }, map[interface{}]interface{}{'id': 2, }})") 264 265 runAndAssert(suite.Suite, expected_, vtbl.Insert([]interface{}{map[interface{}]interface{}{"id": 1}, map[interface{}]interface{}{"id": 2}}), suite.session, r.RunOpts{ 266 GeometryFormat: "raw", 267 GroupFormat: "map", 268 }) 269 suite.T().Log("Finished running line #76") 270 } 271 272 { 273 // changefeeds/table.yaml line #78 274 /* bag([{'old_val':null, 'new_val':{'id':1}}, {'old_val':null, 'new_val':{'id':2}}]) */ 275 var expected_ compare.Expected = compare.UnorderedMatch([]interface{}{map[interface{}]interface{}{"old_val": nil, "new_val": map[interface{}]interface{}{"id": 1}}, map[interface{}]interface{}{"old_val": nil, "new_val": map[interface{}]interface{}{"id": 2}}}) 276 /* fetch(allVirtual, 2) */ 277 278 suite.T().Log("About to run line #78: fetch(allVirtual, 2)") 279 280 fetchAndAssert(suite.Suite, expected_, allVirtual, 2) 281 suite.T().Log("Finished running line #78") 282 } 283 284 { 285 // changefeeds/table.yaml line #83 286 /* partial({'errors':0, 'replaced':1}) */ 287 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "replaced": 1}) 288 /* vtbl.get(1).update({'version':1}) */ 289 290 suite.T().Log("About to run line #83: vtbl.Get(1).Update(map[interface{}]interface{}{'version': 1, })") 291 292 runAndAssert(suite.Suite, expected_, vtbl.Get(1).Update(map[interface{}]interface{}{"version": 1}), suite.session, r.RunOpts{ 293 GeometryFormat: "raw", 294 GroupFormat: "map", 295 }) 296 suite.T().Log("Finished running line #83") 297 } 298 299 { 300 // changefeeds/table.yaml line #85 301 /* [{'old_val':{'id':1}, 'new_val':{'id':1, 'version':1}}] */ 302 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"old_val": map[interface{}]interface{}{"id": 1}, "new_val": map[interface{}]interface{}{"id": 1, "version": 1}}} 303 /* fetch(allVirtual, 1) */ 304 305 suite.T().Log("About to run line #85: fetch(allVirtual, 1)") 306 307 fetchAndAssert(suite.Suite, expected_, allVirtual, 1) 308 suite.T().Log("Finished running line #85") 309 } 310 311 { 312 // changefeeds/table.yaml line #90 313 /* partial({'errors':0, 'deleted':1}) */ 314 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "deleted": 1}) 315 /* vtbl.get(1).delete() */ 316 317 suite.T().Log("About to run line #90: vtbl.Get(1).Delete()") 318 319 runAndAssert(suite.Suite, expected_, vtbl.Get(1).Delete(), suite.session, r.RunOpts{ 320 GeometryFormat: "raw", 321 GroupFormat: "map", 322 }) 323 suite.T().Log("Finished running line #90") 324 } 325 326 { 327 // changefeeds/table.yaml line #92 328 /* [{'old_val':{'id':1, 'version':1}, 'new_val':null}] */ 329 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"old_val": map[interface{}]interface{}{"id": 1, "version": 1}, "new_val": nil}} 330 /* fetch(allVirtual, 1) */ 331 332 suite.T().Log("About to run line #92: fetch(allVirtual, 1)") 333 334 fetchAndAssert(suite.Suite, expected_, allVirtual, 1) 335 suite.T().Log("Finished running line #92") 336 } 337 338 // changefeeds/table.yaml line #97 339 // vpluck = vtbl.changes().pluck({'new_val':['version']}) 340 suite.T().Log("Possibly executing: var vpluck r.Term = vtbl.Changes().Pluck(map[interface{}]interface{}{'new_val': []interface{}{'version'}, })") 341 342 vpluck := maybeRun(vtbl.Changes().Pluck(map[interface{}]interface{}{"new_val": []interface{}{"version"}}), suite.session, r.RunOpts{}) 343 _ = vpluck // Prevent any noused variable errors 344 345 { 346 // changefeeds/table.yaml line #98 347 /* partial({'errors':0, 'inserted':1}) */ 348 var expected_ compare.Expected = compare.PartialMatch(map[interface{}]interface{}{"errors": 0, "inserted": 1}) 349 /* vtbl.insert([{'id':5, 'version':5}]) */ 350 351 suite.T().Log("About to run line #98: vtbl.Insert([]interface{}{map[interface{}]interface{}{'id': 5, 'version': 5, }})") 352 353 runAndAssert(suite.Suite, expected_, vtbl.Insert([]interface{}{map[interface{}]interface{}{"id": 5, "version": 5}}), suite.session, r.RunOpts{ 354 GeometryFormat: "raw", 355 GroupFormat: "map", 356 }) 357 suite.T().Log("Finished running line #98") 358 } 359 360 { 361 // changefeeds/table.yaml line #100 362 /* [{'new_val':{'version':5}}] */ 363 var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"new_val": map[interface{}]interface{}{"version": 5}}} 364 /* fetch(vpluck, 1) */ 365 366 suite.T().Log("About to run line #100: fetch(vpluck, 1)") 367 368 fetchAndAssert(suite.Suite, expected_, vpluck, 1) 369 suite.T().Log("Finished running line #100") 370 } 371 }