gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/internal/integration/reql_tests/reql_limits_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 array limit variations
    17  func TestLimitsSuite(t *testing.T) {
    18  	suite.Run(t, new(LimitsSuite))
    19  }
    20  
    21  type LimitsSuite struct {
    22  	suite.Suite
    23  
    24  	session *r.Session
    25  }
    26  
    27  func (suite *LimitsSuite) SetupTest() {
    28  	suite.T().Log("Setting up LimitsSuite")
    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 *LimitsSuite) TearDownSuite() {
    53  	suite.T().Log("Tearing down LimitsSuite")
    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 *LimitsSuite) TestCases() {
    65  	suite.T().Log("Running LimitsSuite: Tests array limit variations")
    66  
    67  	tbl := r.DB("test").Table("tbl")
    68  	_ = tbl // Prevent any noused variable errors
    69  
    70  	{
    71  		// limits.yaml line #6
    72  		/* [1,1,1,1,1,1,1,1] */
    73  		var expected_ []interface{} = []interface{}{1, 1, 1, 1, 1, 1, 1, 1}
    74  		/* r.expr([1,1,1,1]).union([1, 1, 1, 1]) */
    75  
    76  		suite.T().Log("About to run line #6: r.Expr([]interface{}{1, 1, 1, 1}).Union([]interface{}{1, 1, 1, 1})")
    77  
    78  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{1, 1, 1, 1}).Union([]interface{}{1, 1, 1, 1}), suite.session, r.RunOpts{
    79  			ArrayLimit:     8,
    80  			GeometryFormat: "raw",
    81  			GroupFormat:    "map",
    82  		})
    83  		suite.T().Log("Finished running line #6")
    84  	}
    85  
    86  	{
    87  		// limits.yaml line #10
    88  		/* err("ReqlResourceLimitError", "Array over size limit `4`.  To raise the number of allowed elements, modify the `array_limit` option to `.run` (not available in the Data Explorer), or use an index.", [0]) */
    89  		var expected_ Err = err("ReqlResourceLimitError", "Array over size limit `4`.  To raise the number of allowed elements, modify the `array_limit` option to `.run` (not available in the Data Explorer), or use an index.")
    90  		/* r.expr([1,2,3,4]).union([5, 6, 7, 8]) */
    91  
    92  		suite.T().Log("About to run line #10: r.Expr([]interface{}{1, 2, 3, 4}).Union([]interface{}{5, 6, 7, 8})")
    93  
    94  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{1, 2, 3, 4}).Union([]interface{}{5, 6, 7, 8}), suite.session, r.RunOpts{
    95  			ArrayLimit:     4,
    96  			GeometryFormat: "raw",
    97  			GroupFormat:    "map",
    98  		})
    99  		suite.T().Log("Finished running line #10")
   100  	}
   101  
   102  	{
   103  		// limits.yaml line #16
   104  		/* err("ReqlResourceLimitError", "Array over size limit `4`.  To raise the number of allowed elements, modify the `array_limit` option to `.run` (not available in the Data Explorer), or use an index.", [0]) */
   105  		var expected_ Err = err("ReqlResourceLimitError", "Array over size limit `4`.  To raise the number of allowed elements, modify the `array_limit` option to `.run` (not available in the Data Explorer), or use an index.")
   106  		/* r.expr([1,2,3,4,5,6,7,8]) */
   107  
   108  		suite.T().Log("About to run line #16: r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8})")
   109  
   110  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8}), suite.session, r.RunOpts{
   111  			ArrayLimit:     4,
   112  			GeometryFormat: "raw",
   113  			GroupFormat:    "map",
   114  		})
   115  		suite.T().Log("Finished running line #16")
   116  	}
   117  
   118  	{
   119  		// limits.yaml line #22
   120  		/* err("ReqlQueryLogicError", "Illegal array size limit `-1`.  (Must be >= 1.)", []) */
   121  		var expected_ Err = err("ReqlQueryLogicError", "Illegal array size limit `-1`.  (Must be >= 1.)")
   122  		/* r.expr([1,2,3,4,5,6,7,8]) */
   123  
   124  		suite.T().Log("About to run line #22: r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8})")
   125  
   126  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8}), suite.session, r.RunOpts{
   127  			ArrayLimit:     -1,
   128  			GeometryFormat: "raw",
   129  			GroupFormat:    "map",
   130  		})
   131  		suite.T().Log("Finished running line #22")
   132  	}
   133  
   134  	{
   135  		// limits.yaml line #27
   136  		/* err("ReqlQueryLogicError", "Illegal array size limit `0`.  (Must be >= 1.)", []) */
   137  		var expected_ Err = err("ReqlQueryLogicError", "Illegal array size limit `0`.  (Must be >= 1.)")
   138  		/* r.expr([1,2,3,4,5,6,7,8]) */
   139  
   140  		suite.T().Log("About to run line #27: r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8})")
   141  
   142  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8}), suite.session, r.RunOpts{
   143  			ArrayLimit:     0,
   144  			GeometryFormat: "raw",
   145  			GroupFormat:    "map",
   146  		})
   147  		suite.T().Log("Finished running line #27")
   148  	}
   149  
   150  	// limits.yaml line #33
   151  	// ten_l = r.expr([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
   152  	suite.T().Log("Possibly executing: var ten_l r.Term = r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})")
   153  
   154  	ten_l := r.Expr([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
   155  	_ = ten_l // Prevent any noused variable errors
   156  
   157  	{
   158  		// limits.yaml line #52
   159  		/* (null) */
   160  		var expected_ interface{} = nil
   161  		/* tbl.get(0) */
   162  
   163  		suite.T().Log("About to run line #52: tbl.Get(0)")
   164  
   165  		runAndAssert(suite.Suite, expected_, tbl.Get(0), suite.session, r.RunOpts{
   166  			ArrayLimit:     100001,
   167  			GeometryFormat: "raw",
   168  			GroupFormat:    "map",
   169  		})
   170  		suite.T().Log("Finished running line #52")
   171  	}
   172  
   173  	{
   174  		// limits.yaml line #58
   175  		/* ({'deleted':0,'replaced':0,'unchanged':0,'errors':0,'skipped':0,'inserted':1}) */
   176  		var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0, "replaced": 0, "unchanged": 0, "errors": 0, "skipped": 0, "inserted": 1}
   177  		/* tbl.insert({'id':1, 'array':ten_l}) */
   178  
   179  		suite.T().Log("About to run line #58: tbl.Insert(map[interface{}]interface{}{'id': 1, 'array': ten_l, })")
   180  
   181  		runAndAssert(suite.Suite, expected_, tbl.Insert(map[interface{}]interface{}{"id": 1, "array": ten_l}), suite.session, r.RunOpts{
   182  			GeometryFormat: "raw",
   183  			GroupFormat:    "map",
   184  		})
   185  		suite.T().Log("Finished running line #58")
   186  	}
   187  
   188  	{
   189  		// limits.yaml line #60
   190  		/* ({'array':[1,2,3,4,5,6,7,8,9,10],'id':1}) */
   191  		var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"array": []interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, "id": 1}
   192  		/* tbl.get(1) */
   193  
   194  		suite.T().Log("About to run line #60: tbl.Get(1)")
   195  
   196  		runAndAssert(suite.Suite, expected_, tbl.Get(1), suite.session, r.RunOpts{
   197  			ArrayLimit:     4,
   198  			GeometryFormat: "raw",
   199  			GroupFormat:    "map",
   200  		})
   201  		suite.T().Log("Finished running line #60")
   202  	}
   203  
   204  	{
   205  		// limits.yaml line #67
   206  		/* 1 */
   207  		var expected_ int = 1
   208  		/* tbl.delete().get_field('deleted') */
   209  
   210  		suite.T().Log("About to run line #67: tbl.Delete().Field('deleted')")
   211  
   212  		runAndAssert(suite.Suite, expected_, tbl.Delete().Field("deleted"), suite.session, r.RunOpts{
   213  			GeometryFormat: "raw",
   214  			GroupFormat:    "map",
   215  		})
   216  		suite.T().Log("Finished running line #67")
   217  	}
   218  
   219  	// limits.yaml line #71
   220  	// c = tbl.changes(squash=1000000, changefeed_queue_size=10)
   221  	suite.T().Log("Possibly executing: var c r.Term = tbl.Changes().OptArgs(r.ChangesOpts{Squash: 1000000, ChangefeedQueueSize: 10, })")
   222  
   223  	c := maybeRun(tbl.Changes().OptArgs(r.ChangesOpts{Squash: 1000000, ChangefeedQueueSize: 10}), suite.session, r.RunOpts{})
   224  	_ = c // Prevent any noused variable errors
   225  
   226  	{
   227  		// limits.yaml line #73
   228  		/* 7 */
   229  		var expected_ int = 7
   230  		/* tbl.insert([{'id':0}, {'id':1}, {'id':2}, {'id':3}, {'id':4}, {'id':5}, {'id':6}]).get_field('inserted') */
   231  
   232  		suite.T().Log("About to run line #73: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 0, }, map[interface{}]interface{}{'id': 1, }, map[interface{}]interface{}{'id': 2, }, map[interface{}]interface{}{'id': 3, }, map[interface{}]interface{}{'id': 4, }, map[interface{}]interface{}{'id': 5, }, map[interface{}]interface{}{'id': 6, }}).Field('inserted')")
   233  
   234  		runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 0}, map[interface{}]interface{}{"id": 1}, map[interface{}]interface{}{"id": 2}, map[interface{}]interface{}{"id": 3}, map[interface{}]interface{}{"id": 4}, map[interface{}]interface{}{"id": 5}, map[interface{}]interface{}{"id": 6}}).Field("inserted"), suite.session, r.RunOpts{
   235  			GeometryFormat: "raw",
   236  			GroupFormat:    "map",
   237  		})
   238  		suite.T().Log("Finished running line #73")
   239  	}
   240  
   241  	{
   242  		// limits.yaml line #85
   243  		/* 7 */
   244  		var expected_ int = 7
   245  		/* tbl.insert([{'id':7}, {'id':8}, {'id':9}, {'id':10}, {'id':11}, {'id':12}, {'id':13}]).get_field('inserted') */
   246  
   247  		suite.T().Log("About to run line #85: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 7, }, map[interface{}]interface{}{'id': 8, }, map[interface{}]interface{}{'id': 9, }, map[interface{}]interface{}{'id': 10, }, map[interface{}]interface{}{'id': 11, }, map[interface{}]interface{}{'id': 12, }, map[interface{}]interface{}{'id': 13, }}).Field('inserted')")
   248  
   249  		runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 7}, map[interface{}]interface{}{"id": 8}, map[interface{}]interface{}{"id": 9}, map[interface{}]interface{}{"id": 10}, map[interface{}]interface{}{"id": 11}, map[interface{}]interface{}{"id": 12}, map[interface{}]interface{}{"id": 13}}).Field("inserted"), suite.session, r.RunOpts{
   250  			GeometryFormat: "raw",
   251  			GroupFormat:    "map",
   252  		})
   253  		suite.T().Log("Finished running line #85")
   254  	}
   255  
   256  	{
   257  		// limits.yaml line #97
   258  		/* 14 */
   259  		var expected_ int = 14
   260  		/* tbl.delete().get_field('deleted') */
   261  
   262  		suite.T().Log("About to run line #97: tbl.Delete().Field('deleted')")
   263  
   264  		runAndAssert(suite.Suite, expected_, tbl.Delete().Field("deleted"), suite.session, r.RunOpts{
   265  			GeometryFormat: "raw",
   266  			GroupFormat:    "map",
   267  		})
   268  		suite.T().Log("Finished running line #97")
   269  	}
   270  
   271  	// limits.yaml line #101
   272  	// c2 = tbl.changes(squash=1000000)
   273  	suite.T().Log("Possibly executing: var c2 r.Term = tbl.Changes().OptArgs(r.ChangesOpts{Squash: 1000000, })")
   274  
   275  	c2 := maybeRun(tbl.Changes().OptArgs(r.ChangesOpts{Squash: 1000000}), suite.session, r.RunOpts{
   276  		ChangefeedQueueSize: 10,
   277  	})
   278  	_ = c2 // Prevent any noused variable errors
   279  
   280  	{
   281  		// limits.yaml line #106
   282  		/* 7 */
   283  		var expected_ int = 7
   284  		/* tbl.insert([{'id':0}, {'id':1}, {'id':2}, {'id':3}, {'id':4}, {'id':5}, {'id':6}]).get_field('inserted') */
   285  
   286  		suite.T().Log("About to run line #106: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 0, }, map[interface{}]interface{}{'id': 1, }, map[interface{}]interface{}{'id': 2, }, map[interface{}]interface{}{'id': 3, }, map[interface{}]interface{}{'id': 4, }, map[interface{}]interface{}{'id': 5, }, map[interface{}]interface{}{'id': 6, }}).Field('inserted')")
   287  
   288  		runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 0}, map[interface{}]interface{}{"id": 1}, map[interface{}]interface{}{"id": 2}, map[interface{}]interface{}{"id": 3}, map[interface{}]interface{}{"id": 4}, map[interface{}]interface{}{"id": 5}, map[interface{}]interface{}{"id": 6}}).Field("inserted"), suite.session, r.RunOpts{
   289  			GeometryFormat: "raw",
   290  			GroupFormat:    "map",
   291  		})
   292  		suite.T().Log("Finished running line #106")
   293  	}
   294  
   295  	{
   296  		// limits.yaml line #118
   297  		/* 7 */
   298  		var expected_ int = 7
   299  		/* tbl.insert([{'id':7}, {'id':8}, {'id':9}, {'id':10}, {'id':11}, {'id':12}, {'id':13}]).get_field('inserted') */
   300  
   301  		suite.T().Log("About to run line #118: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 7, }, map[interface{}]interface{}{'id': 8, }, map[interface{}]interface{}{'id': 9, }, map[interface{}]interface{}{'id': 10, }, map[interface{}]interface{}{'id': 11, }, map[interface{}]interface{}{'id': 12, }, map[interface{}]interface{}{'id': 13, }}).Field('inserted')")
   302  
   303  		runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 7}, map[interface{}]interface{}{"id": 8}, map[interface{}]interface{}{"id": 9}, map[interface{}]interface{}{"id": 10}, map[interface{}]interface{}{"id": 11}, map[interface{}]interface{}{"id": 12}, map[interface{}]interface{}{"id": 13}}).Field("inserted"), suite.session, r.RunOpts{
   304  			GeometryFormat: "raw",
   305  			GroupFormat:    "map",
   306  		})
   307  		suite.T().Log("Finished running line #118")
   308  	}
   309  }