Skip to content

Commit 2791514

Browse files
committed
ensure as_logger_config returns lists with "logger_config" subclass
1 parent b5e8529 commit 2791514

File tree

2 files changed

+24
-27
lines changed

2 files changed

+24
-27
lines changed

R/logger_config.R

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ logger_config <- function(
7575
exception_handler = exception_handler,
7676
propagate = propagate
7777
),
78-
CLASS = c("logger_config", "list")
78+
class = c("logger_config", "list")
7979
)
8080
}
8181

@@ -123,12 +123,7 @@ as_logger_config.character <- function(
123123

124124
res <- resolve_r6_ctors(dd)
125125

126-
assert(
127-
is_Logger(res),
128-
"If `x` is a YAML file or string, it must contain a single logger object"
129-
)
130-
131-
res
126+
as_logger_config(res)
132127
}
133128

134129

@@ -137,7 +132,13 @@ as_logger_config.character <- function(
137132
#' @param x
138133
#' @rdname as_logger_config
139134
as_logger_config.Logger <- function(x){
140-
x
135+
logger_config(
136+
appenders = x$appenders,
137+
threshold = x$threshold,
138+
exception_handler = x$exception_handler,
139+
filters = x$filters,
140+
propagate = x$propagate
141+
)
141142
}
142143

143144

@@ -147,7 +148,6 @@ resolve_r6_ctors <- function(x){
147148

148149
ctors <- lapply(names(x), get0_R6Class)
149150

150-
151151
for (i in seq_along(x)){
152152
if (length(ctors) && !is.null(ctors[[i]])){
153153

tests/testthat/test_logger_config.R

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,64 +2,61 @@ context("logger_config")
22

33

44
test_that("logger_config works as expected", {
5-
65
cfg <- logger_config(
76
appenders = Appender$new(),
87
propagate = FALSE,
98
exception_handler = default_exception_handler,
109
threshold = NA,
1110
filters = FilterForceLevel$new("info")
1211
)
12+
expect_s3_class(cfg, "logger_config")
1313

1414
tl <- get_logger("test")$config(cfg)
15-
1615
expect_true(inherits(tl$appenders[[1]], "Appender"))
16+
expect_false(is_virgin_Logger(tl))
1717

18-
tl <- get_logger$config(basic_config())
19-
20-
18+
tl <- get_logger("test")$config(logger_config())
19+
expect_true(is_virgin_Logger(tl))
2120
})
2221

2322

2423

25-
test_that("as_logger_config works as expected", {
24+
25+
test_that("as_logger_config works as expected with YAML file", {
2626
ty <- rprojroot::find_testthat_root_file("testdata", "lg_full.yaml")
2727
cfg <- as_logger_config(ty)
28+
expect_s3_class(cfg, "logger_config")
2829

2930
expect_identical(cfg$appenders[[1]]$layout$fmt, "%L %t - %m")
30-
expect_true(is_Logger(cfg))
31+
expect_s3_class(cfg, "logger_config")
3132
})
3233

3334

3435

3536

36-
test_that("setting logger$config works as expected", {
37+
test_that("setting logger$config fails if yaml file is passed to `text` instead of `file`", {
3738
ty <- rprojroot::find_testthat_root_file("testdata", "lg_full.yaml")
3839
lg <- get_logger("test")
39-
40-
lg$config(ty)
41-
lg$config(file = ty)
4240
expect_error(lg$config(text = ty), "YAML")
4341
})
4442

4543

4644

4745

48-
test_that("logger_config works for simplified logger config", {
46+
test_that("as_logger_config works for simplified yaml logger config", {
4947
ty <- rprojroot::find_testthat_root_file("testdata", "lg_simple.yaml")
5048
cfg <- as_logger_config(ty)
49+
expect_s3_class(cfg, "logger_config")
5150

5251
expect_identical(cfg$appenders[[1]]$layout$fmt, "%L %t - %m")
53-
expect_true(is_Logger(cfg))
52+
expect_s3_class(cfg, "logger_config")
5453
})
5554

5655

5756

5857

59-
test_that("resolve_r6_ctors", {
60-
58+
test_that("resolve_r6_ctors works as expected", {
6159
tf <- tempfile()
62-
6360
x <- list(
6461
"Logger" = list(
6562
name = "test",
@@ -70,14 +67,13 @@ test_that("resolve_r6_ctors", {
7067
)
7168
)
7269
)
73-
7470
res <- resolve_r6_ctors(x)
7571
expect_true(is_Logger(res))
72+
expect_s3_class(as_logger_config(res), "logger_config")
7673
expect_identical(res$appenders[[1]]$file, tf)
7774

7875

7976
tf <- tempfile()
80-
8177
x <- list(
8278
"Logger" = list(
8379
name = "test2",
@@ -96,5 +92,6 @@ test_that("resolve_r6_ctors", {
9692

9793
res <- resolve_r6_ctors(x)
9894
expect_true(is_Logger(res))
95+
expect_s3_class(as_logger_config(res), "logger_config")
9996
expect_identical(res$appenders[[1]]$appenders[[1]]$file, tf)
10097
})

0 commit comments

Comments
 (0)