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  }