@@ -121,35 +121,6 @@ expect_s3_class <- function(object, class, exact = FALSE) {
121121 pass(act $ val )
122122}
123123
124- # ' @export
125- # ' @rdname inheritance-expectations
126- expect_s7_class <- function (object , class ) {
127- check_installed(" S7" )
128- if (! inherits(class , " S7_class" )) {
129- stop_input_type(class , " an S7 class object" )
130- }
131-
132- act <- quasi_label(enquo(object ))
133-
134- if (! S7 :: S7_inherits(object )) {
135- return (fail(sprintf(" %s is not an S7 object" , act $ lab )))
136- }
137-
138- if (! S7 :: S7_inherits(object , class )) {
139- obj_class <- setdiff(base :: class(object ), " S7_object" )
140- class_desc <- paste0(" <" , obj_class , " >" , collapse = " /" )
141- msg <- sprintf(
142- " %s inherits from %s not <%s>." ,
143- act $ lab ,
144- class_desc ,
145- attr(class , " name" , TRUE )
146- )
147- return (fail(msg ))
148- }
149-
150- pass(act $ val )
151- }
152-
153124# ' @export
154125# ' @rdname inheritance-expectations
155126expect_s4_class <- function (object , class ) {
@@ -177,13 +148,40 @@ expect_s4_class <- function(object, class) {
177148 }
178149 }
179150 } else {
180- abort( " ` class` must be a NA or a character vector" )
151+ stop_input_type( class , c( " a character vector" , " NA " ) )
181152 }
182153
183154 pass(act $ val )
184155}
185156
186- isS3 <- function (x ) is.object(x ) && ! isS4(x )
157+ # ' @export
158+ # ' @rdname inheritance-expectations
159+ expect_s7_class <- function (object , class ) {
160+ check_installed(" S7" )
161+ if (! inherits(class , " S7_class" )) {
162+ stop_input_type(class , " an S7 class object" )
163+ }
164+
165+ act <- quasi_label(enquo(object ))
166+
167+ if (! S7 :: S7_inherits(object )) {
168+ return (fail(sprintf(" %s is not an S7 object" , act $ lab )))
169+ }
170+
171+ if (! S7 :: S7_inherits(object , class )) {
172+ obj_class <- setdiff(base :: class(object ), " S7_object" )
173+ class_desc <- paste0(" <" , obj_class , " >" , collapse = " /" )
174+ msg <- sprintf(
175+ " %s inherits from %s not <%s>." ,
176+ act $ lab ,
177+ class_desc ,
178+ attr(class , " name" , TRUE )
179+ )
180+ return (fail(msg ))
181+ }
182+
183+ pass(act $ val )
184+ }
187185
188186# ' Does an object inherit from a given class?
189187# '
@@ -228,6 +226,9 @@ expect_is <- function(object, class, info = NULL, label = NULL) {
228226 pass(act $ val )
229227}
230228
229+ # Helpers ----------------------------------------------------------------------
230+
231+ isS3 <- function (x ) is.object(x ) && ! isS4(x )
231232
232233format_class <- function (x ) {
233234 paste0(encodeString(x , quote = " '" ), collapse = " /" )
0 commit comments