gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/internal/integration/reql_tests/reql_mutation_replace_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 // Tests replacement of selections 17 func TestMutationReplaceSuite(t *testing.T) { 18 suite.Run(t, new(MutationReplaceSuite)) 19 } 20 21 type MutationReplaceSuite struct { 22 suite.Suite 23 24 session *r.Session 25 } 26 27 func (suite *MutationReplaceSuite) SetupTest() { 28 suite.T().Log("Setting up MutationReplaceSuite") 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 *MutationReplaceSuite) TearDownSuite() { 53 suite.T().Log("Tearing down MutationReplaceSuite") 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 *MutationReplaceSuite) TestCases() { 65 suite.T().Log("Running MutationReplaceSuite: Tests replacement of selections") 66 67 tbl := r.DB("test").Table("tbl") 68 _ = tbl // Prevent any noused variable errors 69 70 { 71 // mutation/replace.yaml line #7 72 /* ({'deleted':0.0,'replaced':0.0,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':100}) */ 73 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 0.0, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 100} 74 /* tbl.insert([{'id':i} for i in xrange(100)]) */ 75 76 suite.T().Log("About to run line #7: tbl.Insert((func() []interface{} {\n res := []interface{}{}\n for iterator_ := 0; iterator_ < 100; iterator_++ {\n i := iterator_\n res = append(res, map[interface{}]interface{}{'id': i, })\n }\n return res\n}()))") 77 78 runAndAssert(suite.Suite, expected_, tbl.Insert((func() []interface{} { 79 res := []interface{}{} 80 for iterator_ := 0; iterator_ < 100; iterator_++ { 81 i := iterator_ 82 res = append(res, map[interface{}]interface{}{"id": i}) 83 } 84 return res 85 }())), suite.session, r.RunOpts{ 86 GeometryFormat: "raw", 87 GroupFormat: "map", 88 }) 89 suite.T().Log("Finished running line #7") 90 } 91 92 { 93 // mutation/replace.yaml line #19 94 /* 100 */ 95 var expected_ int = 100 96 /* tbl.count() */ 97 98 suite.T().Log("About to run line #19: tbl.Count()") 99 100 runAndAssert(suite.Suite, expected_, tbl.Count(), suite.session, r.RunOpts{ 101 GeometryFormat: "raw", 102 GroupFormat: "map", 103 }) 104 suite.T().Log("Finished running line #19") 105 } 106 107 { 108 // mutation/replace.yaml line #24 109 /* ({'deleted':0.0,'replaced':0.0,'unchanged':1,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 110 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 0.0, "unchanged": 1, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 111 /* tbl.get(12).replace(lambda row:{'id':row['id']}) */ 112 113 suite.T().Log("About to run line #24: tbl.Get(12).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{'id': row.AtIndex('id'), }})") 114 115 runAndAssert(suite.Suite, expected_, tbl.Get(12).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{"id": row.AtIndex("id")} }), suite.session, r.RunOpts{ 116 GeometryFormat: "raw", 117 GroupFormat: "map", 118 }) 119 suite.T().Log("Finished running line #24") 120 } 121 122 { 123 // mutation/replace.yaml line #31 124 /* ({'deleted':0.0,'replaced':1,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 125 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 1, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 126 /* tbl.get(12).replace(lambda row:{'id':row['id'], 'a':row['id']}) */ 127 128 suite.T().Log("About to run line #31: tbl.Get(12).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{'id': row.AtIndex('id'), 'a': row.AtIndex('id'), }})") 129 130 runAndAssert(suite.Suite, expected_, tbl.Get(12).Replace(func(row r.Term) interface{} { 131 return map[interface{}]interface{}{"id": row.AtIndex("id"), "a": row.AtIndex("id")} 132 }), suite.session, r.RunOpts{ 133 GeometryFormat: "raw", 134 GroupFormat: "map", 135 }) 136 suite.T().Log("Finished running line #31") 137 } 138 139 { 140 // mutation/replace.yaml line #36 141 /* ({'deleted':1,'replaced':0.0,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 142 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 1, "replaced": 0.0, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 143 /* tbl.get(13).replace(lambda row:null) */ 144 145 suite.T().Log("About to run line #36: tbl.Get(13).Replace(func(row r.Term) interface{} { return nil})") 146 147 runAndAssert(suite.Suite, expected_, tbl.Get(13).Replace(func(row r.Term) interface{} { return nil }), suite.session, r.RunOpts{ 148 GeometryFormat: "raw", 149 GroupFormat: "map", 150 }) 151 suite.T().Log("Finished running line #36") 152 } 153 154 { 155 // mutation/replace.yaml line #43 156 /* ({'first_error':'Inserted object must have primary key `id`:\n{\n\t\"a\":\t1\n}','deleted':0.0,'replaced':0.0,'unchanged':0.0,'errors':10,'skipped':0.0,'inserted':0.0}) */ 157 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"first_error": "Inserted object must have primary key `id`:\n{\n\t\"a\":\t1\n}", "deleted": 0.0, "replaced": 0.0, "unchanged": 0.0, "errors": 10, "skipped": 0.0, "inserted": 0.0} 158 /* tbl.between(10, 20, right_bound='closed').replace(lambda row:{'a':1}) */ 159 160 suite.T().Log("About to run line #43: tbl.Between(10, 20).OptArgs(r.BetweenOpts{RightBound: 'closed', }).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{'a': 1, }})") 161 162 runAndAssert(suite.Suite, expected_, tbl.Between(10, 20).OptArgs(r.BetweenOpts{RightBound: "closed"}).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{"a": 1} }), suite.session, r.RunOpts{ 163 GeometryFormat: "raw", 164 GroupFormat: "map", 165 }) 166 suite.T().Log("Finished running line #43") 167 } 168 169 { 170 // mutation/replace.yaml line #47 171 /* ({'deleted':0.0,'replaced':8,'unchanged':1,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 172 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 8, "unchanged": 1, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 173 /* tbl.filter(lambda row:(row['id'] >= 10) & (row['id'] < 20)).replace(lambda row:{'id':row['id'], 'a':row['id']}) */ 174 175 suite.T().Log("About to run line #47: tbl.Filter(func(row r.Term) interface{} { return row.AtIndex('id').Ge(10).And(row.AtIndex('id').Lt(20))}).Replace(func(row r.Term) interface{} { return map[interface{}]interface{}{'id': row.AtIndex('id'), 'a': row.AtIndex('id'), }})") 176 177 runAndAssert(suite.Suite, expected_, tbl.Filter(func(row r.Term) interface{} { return row.AtIndex("id").Ge(10).And(row.AtIndex("id").Lt(20)) }).Replace(func(row r.Term) interface{} { 178 return map[interface{}]interface{}{"id": row.AtIndex("id"), "a": row.AtIndex("id")} 179 }), suite.session, r.RunOpts{ 180 GeometryFormat: "raw", 181 GroupFormat: "map", 182 }) 183 suite.T().Log("Finished running line #47") 184 } 185 186 { 187 // mutation/replace.yaml line #56 188 /* ({'first_error':"Primary key `id` cannot be changed (`{\n\t\"id\":\t1\n}` -> `{\n\t\"a\":\t1,\n\t\"id\":\t2\n}`).",'deleted':0.0,'replaced':0.0,'unchanged':0.0,'errors':1,'skipped':0.0,'inserted':0.0}) */ 189 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"first_error": "Primary key `id` cannot be changed (`{\n\t\"id\":\t1\n}` -> `{\n\t\"a\":\t1,\n\t\"id\":\t2\n}`).", "deleted": 0.0, "replaced": 0.0, "unchanged": 0.0, "errors": 1, "skipped": 0.0, "inserted": 0.0} 190 /* tbl.get(1).replace({'id':2,'a':1}) */ 191 192 suite.T().Log("About to run line #56: tbl.Get(1).Replace(map[interface{}]interface{}{'id': 2, 'a': 1, })") 193 194 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(map[interface{}]interface{}{"id": 2, "a": 1}), suite.session, r.RunOpts{ 195 GeometryFormat: "raw", 196 GroupFormat: "map", 197 }) 198 suite.T().Log("Finished running line #56") 199 } 200 201 { 202 // mutation/replace.yaml line #61 203 /* ({'first_error':"Inserted object must have primary key `id`:\n{\n\t\"a\":\t1\n}",'deleted':0.0,'replaced':0.0,'unchanged':0.0,'errors':1,'skipped':0.0,'inserted':0.0}) */ 204 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"first_error": "Inserted object must have primary key `id`:\n{\n\t\"a\":\t1\n}", "deleted": 0.0, "replaced": 0.0, "unchanged": 0.0, "errors": 1, "skipped": 0.0, "inserted": 0.0} 205 /* tbl.get(1).replace({'a':1}) */ 206 207 suite.T().Log("About to run line #61: tbl.Get(1).Replace(map[interface{}]interface{}{'a': 1, })") 208 209 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(map[interface{}]interface{}{"a": 1}), suite.session, r.RunOpts{ 210 GeometryFormat: "raw", 211 GroupFormat: "map", 212 }) 213 suite.T().Log("Finished running line #61") 214 } 215 216 { 217 // mutation/replace.yaml line #65 218 /* ({'deleted':0.0,'replaced':1,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 219 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 1, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 220 /* tbl.get(1).replace({'id':r.row['id'],'a':'b'}) */ 221 222 suite.T().Log("About to run line #65: tbl.Get(1).Replace(map[interface{}]interface{}{'id': r.Row.AtIndex('id'), 'a': 'b', })") 223 224 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(map[interface{}]interface{}{"id": r.Row.AtIndex("id"), "a": "b"}), suite.session, r.RunOpts{ 225 GeometryFormat: "raw", 226 GroupFormat: "map", 227 }) 228 suite.T().Log("Finished running line #65") 229 } 230 231 { 232 // mutation/replace.yaml line #70 233 /* ({'deleted':0.0,'replaced':0.0,'unchanged':1,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 234 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 0.0, "unchanged": 1, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 235 /* tbl.get(1).replace(r.row.merge({'a':'b'})) */ 236 237 suite.T().Log("About to run line #70: tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{'a': 'b', }))") 238 239 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{"a": "b"})), suite.session, r.RunOpts{ 240 GeometryFormat: "raw", 241 GroupFormat: "map", 242 }) 243 suite.T().Log("Finished running line #70") 244 } 245 246 { 247 // mutation/replace.yaml line #75 248 /* err('ReqlQueryLogicError', 'Could not prove argument deterministic. Maybe you want to use the non_atomic flag?', [0]) */ 249 var expected_ Err = err("ReqlQueryLogicError", "Could not prove argument deterministic. Maybe you want to use the non_atomic flag?") 250 /* tbl.get(1).replace(r.row.merge({'c':r.js('5')})) */ 251 252 suite.T().Log("About to run line #75: tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{'c': r.JS('5'), }))") 253 254 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{"c": r.JS("5")})), suite.session, r.RunOpts{ 255 GeometryFormat: "raw", 256 GroupFormat: "map", 257 }) 258 suite.T().Log("Finished running line #75") 259 } 260 261 { 262 // mutation/replace.yaml line #79 263 /* err('ReqlQueryLogicError', 'Could not prove argument deterministic. Maybe you want to use the non_atomic flag?', [0]) */ 264 var expected_ Err = err("ReqlQueryLogicError", "Could not prove argument deterministic. Maybe you want to use the non_atomic flag?") 265 /* tbl.get(1).replace(r.row.merge({'c':tbl.nth(0)})) */ 266 267 suite.T().Log("About to run line #79: tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{'c': tbl.Nth(0), }))") 268 269 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{"c": tbl.Nth(0)})), suite.session, r.RunOpts{ 270 GeometryFormat: "raw", 271 GroupFormat: "map", 272 }) 273 suite.T().Log("Finished running line #79") 274 } 275 276 { 277 // mutation/replace.yaml line #83 278 /* ({'deleted':0.0,'replaced':1,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 279 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 1, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 280 /* tbl.get(1).replace(r.row.merge({'c':r.js('5')}), non_atomic=True) */ 281 282 suite.T().Log("About to run line #83: tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{'c': r.JS('5'), })).OptArgs(r.ReplaceOpts{NonAtomic: true, })") 283 284 runAndAssert(suite.Suite, expected_, tbl.Get(1).Replace(r.Row.Merge(map[interface{}]interface{}{"c": r.JS("5")})).OptArgs(r.ReplaceOpts{NonAtomic: true}), suite.session, r.RunOpts{ 285 GeometryFormat: "raw", 286 GroupFormat: "map", 287 }) 288 suite.T().Log("Finished running line #83") 289 } 290 291 { 292 // mutation/replace.yaml line #99 293 /* ({'deleted':99,'replaced':0.0,'unchanged':0.0,'errors':0.0,'skipped':0.0,'inserted':0.0}) */ 294 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 99, "replaced": 0.0, "unchanged": 0.0, "errors": 0.0, "skipped": 0.0, "inserted": 0.0} 295 /* tbl.replace(lambda row:null) */ 296 297 suite.T().Log("About to run line #99: tbl.Replace(func(row r.Term) interface{} { return nil})") 298 299 runAndAssert(suite.Suite, expected_, tbl.Replace(func(row r.Term) interface{} { return nil }), suite.session, r.RunOpts{ 300 GeometryFormat: "raw", 301 GroupFormat: "map", 302 }) 303 suite.T().Log("Finished running line #99") 304 } 305 306 { 307 // mutation/replace.yaml line #104 308 /* 1 */ 309 var expected_ int = 1 310 /* tbl.get('sdfjk').replace({'id':'sdfjk'})['inserted'] */ 311 312 suite.T().Log("About to run line #104: tbl.Get('sdfjk').Replace(map[interface{}]interface{}{'id': 'sdfjk', }).AtIndex('inserted')") 313 314 runAndAssert(suite.Suite, expected_, tbl.Get("sdfjk").Replace(map[interface{}]interface{}{"id": "sdfjk"}).AtIndex("inserted"), suite.session, r.RunOpts{ 315 GeometryFormat: "raw", 316 GroupFormat: "map", 317 }) 318 suite.T().Log("Finished running line #104") 319 } 320 321 { 322 // mutation/replace.yaml line #107 323 /* 1 */ 324 var expected_ int = 1 325 /* tbl.get('sdfjki').replace({'id':'sdfjk'})['errors'] */ 326 327 suite.T().Log("About to run line #107: tbl.Get('sdfjki').Replace(map[interface{}]interface{}{'id': 'sdfjk', }).AtIndex('errors')") 328 329 runAndAssert(suite.Suite, expected_, tbl.Get("sdfjki").Replace(map[interface{}]interface{}{"id": "sdfjk"}).AtIndex("errors"), suite.session, r.RunOpts{ 330 GeometryFormat: "raw", 331 GroupFormat: "map", 332 }) 333 suite.T().Log("Finished running line #107") 334 } 335 336 { 337 // mutation/replace.yaml line #111 338 /* ({'deleted':0.0,'replaced':0.0,'unchanged':0.0,'errors':0.0,'skipped':1,'inserted':0.0}) */ 339 var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0.0, "replaced": 0.0, "unchanged": 0.0, "errors": 0.0, "skipped": 1, "inserted": 0.0} 340 /* tbl.get('non-existant').replace(null) */ 341 342 suite.T().Log("About to run line #111: tbl.Get('non-existant').Replace(nil)") 343 344 runAndAssert(suite.Suite, expected_, tbl.Get("non-existant").Replace(nil), suite.session, r.RunOpts{ 345 GeometryFormat: "raw", 346 GroupFormat: "map", 347 }) 348 suite.T().Log("Finished running line #111") 349 } 350 }