diff --git a/R/lsDS.R b/R/lsDS.R index 7558b8e0..e75b4141 100644 --- a/R/lsDS.R +++ b/R/lsDS.R @@ -37,11 +37,9 @@ nfilter.string<-as.numeric(thr$nfilter.string) # #datashield.privacyLevel<-as.numeric(thr$datashield.privacyLevel) # ######################################################################### -envir.text<-".GlobalEnv" - if(env.to.search==1L) { -envir.2.search<-eval(parse(text=envir.text)) +envir.2.search<-parent.frame() }else{ envir.2.search<-as.environment(env.to.search) } @@ -51,7 +49,7 @@ j<-0 if(is.null(search.filter)) { -outobj<-ls(pos=env.to.search) +outobj<-ls(envir=envir.2.search) outlist<-list(environment.searched=environmentName(envir.2.search),objects.found=outobj) @@ -92,10 +90,10 @@ return(outlist) search.filter.final<-paste(search.filter.temp1,collapse="") - outobj<-ls(pos=env.to.search,pattern=utils::glob2rx(search.filter.final)) + outobj<-ls(envir=envir.2.search,pattern=utils::glob2rx(search.filter.final)) }else{ - outobj<-ls(pos=env.to.search,pattern=utils::glob2rx(search.filter)) + outobj<-ls(envir=envir.2.search,pattern=utils::glob2rx(search.filter)) search.filter.final<-search.filter } diff --git a/tests/testthat/test-smk-lsDS.R b/tests/testthat/test-smk-lsDS.R index b96eb0ec..4427f195 100644 --- a/tests/testthat/test-smk-lsDS.R +++ b/tests/testthat/test-smk-lsDS.R @@ -28,7 +28,7 @@ test_that("simple lsDS", { search.filter <- NULL env.to.search <- 1L - res <- lsDS(search.filter, env.to.search) + res <- eval(call("lsDS", search.filter, env.to.search), envir = .GlobalEnv) expect_equal(class(res), "list") expect_length(res, 2) @@ -44,7 +44,7 @@ test_that("simple lsDS", { search.filter <- "_:A:_" env.to.search <- 1L - res <- lsDS(search.filter, env.to.search) + res <- eval(call("lsDS", search.filter, env.to.search), envir = .GlobalEnv) expect_equal(class(res), "list") expect_length(res, 3) @@ -55,6 +55,15 @@ test_that("simple lsDS", { expect_equal(res$search.filter.final, "*") }) +# context("lsDS::smk::calling environment") +test_that("lsDS lists the environment it is called from", { + local.obj <- "value" + + res <- lsDS(NULL, 1L) + + expect_true("local.obj" %in% res$objects.found) +}) + # # Done #