Running ‘testthat.R’ [7s/9s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > pkg_name <- "teal.data"
  > library(pkg_name, character.only = TRUE)
  Loading required package: teal.code
  > testthat::test_check(pkg_name)
  [ FAIL 68 | WARN 0 | SKIP 2 | PASS 167 ]
  
  ══ Skipped tests (2) ═══════════════════════════════════════════════════════════
  • This is not urgent and can be ommitted with @linksto tag. (1):
    'test-get_code.R:440:3'
  • We will not resolve this, as this requires code evaluation. (1):
    'test-get_code.R:250:3'
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test-cdisc_data.R:2:3'): cdisc_data returns teal_data object with default join_keys for given dataset ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::cdisc_data(ADSL = data.frame()) at test-cdisc_data.R:2:3
    2.   └─teal.data::teal_data(...)
    3.     └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4.       └─methods::new(...)
    5.         ├─methods::initialize(value, ...)
    6.         └─teal.code (local) initialize(value, ...)
    7.           └─teal.code (local) .local(.Object, ...)
    8.             ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9.             │ └─base::eval(call, callEnv)
   10.             │   └─base::eval(call, callEnv)
   11.             └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:3:3'): datanames returns contents of @datanames slot ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(i = iris, m = mtcars) at test-datanames.R:3:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:8:3'): variables not in @datanames are omitted ─────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(i = iris, m = mtcars) at test-datanames.R:8:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:15:3'): datanames can set value of @datanames ──────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(i = iris, m = mtcars) at test-datanames.R:15:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:22:3'): only names of existing variables are accepted ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(i = iris, m = mtcars) at test-datanames.R:22:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:29:3'): datanames supports qenv.error class ────────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─base::within(teal_data(), stop()) at test-datanames.R:29:3
    2. └─teal.data::teal_data()
    3.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4.     └─methods::new(...)
    5.       ├─methods::initialize(value, ...)
    6.       └─teal.code (local) initialize(value, ...)
    7.         └─teal.code (local) .local(.Object, ...)
    8.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9.           │ └─base::eval(call, callEnv)
   10.           │   └─base::eval(call, callEnv)
   11.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:35:3'): datanames called on qenv.error returns NULL ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─base::within(teal_data(), stop()) at test-datanames.R:35:3
    2. └─teal.data::teal_data()
    3.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4.     └─methods::new(...)
    5.       ├─methods::initialize(value, ...)
    6.       └─teal.code (local) initialize(value, ...)
    7.         └─teal.code (local) .local(.Object, ...)
    8.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9.           │ └─base::eval(call, callEnv)
   10.           │   └─base::eval(call, callEnv)
   11.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-datanames.R:40:3'): datanames<- called on qenv.error does not change qenv.error ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─base::within(teal_data(), stop()) at test-datanames.R:40:3
    2. └─teal.data::teal_data()
    3.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4.     └─methods::new(...)
    5.       ├─methods::initialize(value, ...)
    6.       └─teal.code (local) initialize(value, ...)
    7.         └─teal.code (local) .local(.Object, ...)
    8.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9.           │ └─base::eval(call, callEnv)
   10.           │   └─base::eval(call, callEnv)
   11.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:4:3'): handles empty @code slot ─────────────────────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-get_code.R:4:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. ├─teal.code::get_code(teal_data(a = 1, code = character(0)), datanames = "a")
    5. │ └─teal.code::dev_suppress(object)
    6. │   └─base::force(x)
    7. └─teal.data::teal_data(a = 1, code = character(0))
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:21:3'): handles the code without symbols on rhs ─────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-get_code.R:21:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. ├─teal.code::get_code(teal_data(a = 5, code = code), datanames = "a")
    5. │ └─teal.code::dev_suppress(object)
    6. │   └─base::force(x)
    7. └─teal.data::teal_data(a = 5, code = code)
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:32:3'): extracts the code of a binding from character vector containing simple code ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:32:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:48:3'): extracts the code without downstream usage ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:48:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:60:3'): works for datanames of length > 1 ───────────
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:60:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:69:3'): warns if binding doesn't exist in code ──────
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:69:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:83:3'): does not fall into a loop ───────────────────
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:83:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:105:3'): extracts code of a parent binding but only those evaluated before coocurence ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:105:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:118:3'): extracts the code of a parent binding if used as an arg in a function call ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:118:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:131:3'): extracts the code when using <<- ───────────
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:131:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:144:3'): detects every assign calls even if not evaluated, if there is only one assignment in this line ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:144:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:152:3'): returns result of length 1 for non-empty input ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-get_code.R:152:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:167:3'): does not break if code is separated by ; ───
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:167:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:180:3'): does not break if code uses quote() ────────
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:180:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:193:3'): does not break if object is used in a function on lhs ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code = code) at test-get_code.R:193:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:208:5'): does not break if object is used in a function on lhs and influencers are both on lhs and rhs ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code = code) at test-get_code.R:208:5
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:228:3'): extracts the code for assign() where "x" is a literal string ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:228:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:272:3'): works for assign() detection no matter how many parametrers were provided in assignq() ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:272:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:287:3'): detects function usage of the assignment operator ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:287:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:312:3'): get_code does not break if @linksto is put in the last line ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:312:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:324:3'): @linksto makes a line being returned for an affected binding ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:324:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:339:5'): @linksto returns the line for an affected binding
    even if the object did not exist in the same iteration of eval_code ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:339:5
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:356:5'): lines affecting parent evaluated after co-occurrence are not included in output when using @linksto ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:356:5
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:377:5'): @linksto gets extracted if it's a side-effect on a dependent object (even of a dependent object) ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:377:5
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:397:3'): ignores occurrence in a function definition ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:397:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:413:3'): ignores occurrence in a function definition that has function in it ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:413:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:432:3'): ignores occurrence in a function definition in lapply ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:432:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:459:3'): ignores occurrence in function definition without { curly brackets ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:459:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:477:3'): detects occurrence of the function object ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:477:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:490:3'): detects occurrence of a function definition when a formal is named the same as a function ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:490:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:507:3'): detects occurrence of a function definition with a @linksto usage ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(code = code) at test-get_code.R:507:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:527:3'): understands $ usage and do not treat rhs of $ as objects (only lhs) ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:527:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:550:3'): detects cooccurrence properly even if all objects are on lhs ──
  Error in `h(simpleError(msg, call))`: error in evaluating the argument 'object' in selecting a method for function 'eval_code': cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal.code::eval_code(teal_data(), code) at test-get_code.R:550:3
    2. ├─teal.data::teal_data()
    3. │ └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    4. │   └─methods::new(...)
    5. │     ├─methods::initialize(value, ...)
    6. │     └─teal.code (local) initialize(value, ...)
    7. │       └─teal.code (local) .local(.Object, ...)
    8. │         ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    9. │         │ └─base::eval(call, callEnv)
   10. │         │   └─base::eval(call, callEnv)
   11. │         └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
   12. └─base::.handleSimpleError(...)
   13.   └─base (local) h(simpleError(msg, call))
  ── Error ('test-get_code.R:569:3'): understands @ usage and do not treat rhs of @ as objects (only lhs) ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(x = 1, a = 1, code = code) at test-get_code.R:569:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:607:3'): library() and require() are always returned ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(x = 5, y = 6, code = code) at test-get_code.R:607:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:633:3'): data() call is returned when data name is provided as is ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(x = 1, code = code) at test-get_code.R:633:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-get_code.R:657:3'): data() call is returned when data name is provided as a character ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(z = 1, code = code) at test-get_code.R:657:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-join_keys-parents.R:91:3'): parents<- sets parent datasets to join_keys kept in teal_data ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(...) at test-join_keys-parents.R:91:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-join_keys.R:9:3'): join_keys only accepts teal_data and join_key arguments ──
  Expected `join_keys(teal_data())` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Error ('test-join_keys.R:92:3'): join_keys.teal_data returns join_keys object from teal_data ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(...) at test-join_keys.R:92:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-join_keys.R:129:3'): join_keys<-.teal_data overwrites existing join_keys ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(...) at test-join_keys.R:129:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-join_keys.R:140:3'): join_keys<-.teal_data overwrites existing join_keys ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(...) at test-join_keys.R:140:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:2:3'): teal_data allows to initialize empty teal_data object ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_s4_class(teal_data(), "teal_data") at test-teal_data.R:2:3
    2. │ └─testthat::quasi_label(enquo(object), arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data()
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:6:3'): empty teal_data returns empty code, id, wartnings and messages and verified=TRUE ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(teal_data()@code, character(0)) at test-teal_data.R:6:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data()
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:14:3'): non-empty data in teal_data returns verified=FALSE ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(teal_data(IRIS = iris)@verified, FALSE) at test-teal_data.R:14:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(IRIS = iris)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:18:3'): teal_data allows to initialize empty teal_data with join_keys ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_equal(...) at test-teal_data.R:18:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(...)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:25:3'): teal_data initializes teal_data object with @datanames taken from passed objects ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-teal_data.R:25:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(iris = iris, mtcars = mtcars)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:32:3'): teal_data initializes teal_data object with @datanames taken from passed join_keys ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-teal_data.R:32:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(...)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:39:3'): teal_data initializes teal_data object with @datanames taken from join_keys and passed objects ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-teal_data.R:39:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(...)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:48:3'): teal_data returns teal_data when data passed as named list ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_s4_class(teal_data(df1 = df1), "teal_data") at test-teal_data.R:48:3
    2. │ └─testthat::quasi_label(enquo(object), arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(df1 = df1)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-teal_data.R:53:3'): teal_data accepts any data provided as named list ──
  Expected `teal_data(df1 = df1)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-teal_data.R:57:3'): teal_data accepts code as character ──────
  Expected `teal_data(iris1 = iris, code = "iris1 <- iris")` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-teal_data.R:66:3'): teal_data accepts code as language ───────
  Expected `teal_data(iris1 = iris, code = quote(iris1 <- iris))` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Error ('test-teal_data.R:75:3'): teal_data code unfolds code-block wrapped in '{' ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-teal_data.R:75:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(...)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:84:3'): teal_data code is concatenated into single string ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_identical(...) at test-teal_data.R:84:3
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─teal.data::teal_data(...)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-teal_data.R:91:3'): teal_data@env is locked. Not able to modify, add or remove bindings ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris = iris) at test-teal_data.R:91:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-verify.R:2:3'): verify returns the same object for @verified=TRUE ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-verify.R:2:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-verify.R:15:3'): verify returns the same object with changed @verified field for properly executed code ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(x1 = iris, code = "x1 = iris") at test-verify.R:15:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-verify.R:24:3'): verify raises error if @code does not restore objects in @env ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(x1 = iris, code = "x1 = mtcars") at test-verify.R:24:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-verify.R:30:3'): verify returns error for qenv.error input ─────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-verify.R:30:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  
  [ FAIL 68 | WARN 0 | SKIP 2 | PASS 167 ]
  Error: Test failures
  Execution halted