Package: ipumsr Check: tests New result: ERROR Running ‘testthat.R’ [102s/102s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(ipumsr) Attaching package: 'ipumsr' The following object is masked from 'package:testthat': matches > > test_check("ipumsr", reporter = "location") Start test: Can define a USA extract 'test_api_define_extract.R:6:3' [success] 'test_api_define_extract.R:7:3' [success] 'test_api_define_extract.R:9:3' [success] 'test_api_define_extract.R:13:3' [success] 'test_api_define_extract.R:28:3' [success] 'test_api_define_extract.R:29:3' [success] 'test_api_define_extract.R:30:3' [success] 'test_api_define_extract.R:31:3' [success] 'test_api_define_extract.R:32:3' [success] 'test_api_define_extract.R:33:3' [success] 'test_api_define_extract.R:34:3' [success] 'test_api_define_extract.R:35:3' [success] End test: Can define a USA extract Start test: Can define a CPS extract 'test_api_define_extract.R:41:3' [success] 'test_api_define_extract.R:42:3' [success] 'test_api_define_extract.R:44:3' [success] 'test_api_define_extract.R:48:3' [success] 'test_api_define_extract.R:71:3' [success] 'test_api_define_extract.R:72:3' [success] 'test_api_define_extract.R:73:3' [success] 'test_api_define_extract.R:74:3' [success] 'test_api_define_extract.R:75:3' [success] 'test_api_define_extract.R:76:3' [success] 'test_api_define_extract.R:77:3' [success] 'test_api_define_extract.R:78:3' [success] End test: Can define a CPS extract Start test: Can define an IPUMSI extract 'test_api_define_extract.R:84:3' [success] 'test_api_define_extract.R:88:3' [success] 'test_api_define_extract.R:107:3' [success] 'test_api_define_extract.R:108:3' [success] 'test_api_define_extract.R:109:3' [success] 'test_api_define_extract.R:110:3' [success] 'test_api_define_extract.R:111:3' [success] 'test_api_define_extract.R:112:3' [success] 'test_api_define_extract.R:113:3' [success] 'test_api_define_extract.R:114:3' [success] End test: Can define an IPUMSI extract Start test: Can define an NHGIS extract 'test_api_define_extract.R:121:3' [success] 'test_api_define_extract.R:122:3' [success] 'test_api_define_extract.R:124:3' [success] 'test_api_define_extract.R:134:3' [success] 'test_api_define_extract.R:137:3' [success] 'test_api_define_extract.R:141:3' [success] 'test_api_define_extract.R:150:3' [success] 'test_api_define_extract.R:151:3' [success] 'test_api_define_extract.R:152:3' [success] 'test_api_define_extract.R:154:3' [success] 'test_api_define_extract.R:155:3' [success] 'test_api_define_extract.R:156:3' [success] 'test_api_define_extract.R:157:3' [success] 'test_api_define_extract.R:159:3' [success] 'test_api_define_extract.R:160:3' [success] End test: Can define an NHGIS extract Start test: NHGIS extract fields get correct default values 'test_api_define_extract.R:167:3' [success] 'test_api_define_extract.R:168:3' [success] 'test_api_define_extract.R:172:3' [success] 'test_api_define_extract.R:177:3' [success] 'test_api_define_extract.R:178:3' [success] End test: NHGIS extract fields get correct default values Start test: Microdata variables get correct default values 'test_api_define_extract.R:185:3' [success] 'test_api_define_extract.R:186:3' [success] 'test_api_define_extract.R:187:3' [success] 'test_api_define_extract.R:188:3' [success] 'test_api_define_extract.R:189:3' [success] 'test_api_define_extract.R:191:3' [success] End test: Microdata variables get correct default values Start test: We cast vectors to `ipums_spec` objects 'test_api_define_extract.R:201:3' [success] 'test_api_define_extract.R:202:3' [success] 'test_api_define_extract.R:203:3' [success] 'test_api_define_extract.R:204:3' [success] 'test_api_define_extract.R:210:3' [success] 'test_api_define_extract.R:222:3' [success] End test: We cast vectors to `ipums_spec` objects Start test: Vector to `ipums_spec` casting logic is as expected 'test_api_define_extract.R:226:3' [success] 'test_api_define_extract.R:230:3' [success] 'test_api_define_extract.R:234:3' [success] 'test_api_define_extract.R:238:3' [success] 'test_api_define_extract.R:242:3' [success] 'test_api_define_extract.R:246:3' [success] 'test_api_define_extract.R:250:3' [success] 'test_api_define_extract.R:253:3' [success] End test: Vector to `ipums_spec` casting logic is as expected Start test: Attempt to rectangularize on H records throws an error 'test_api_define_extract.R:261:3' [success] 'test_api_define_extract.R:270:3' [success] End test: Attempt to rectangularize on H records throws an error Start test: Succesful validation returns identical object 'test_api_define_extract.R:287:3' [success] 'test_api_define_extract.R:288:3' [success] 'test_api_define_extract.R:289:3' [success] 'test_api_define_extract.R:290:3' [success] End test: Succesful validation returns identical object Start test: Can validate core microdata extract fields 'test_api_define_extract.R:294:3' [success] 'test_api_define_extract.R:298:3' [success] 'test_api_define_extract.R:302:3' [success] 'test_api_define_extract.R:306:3' [success] 'test_api_define_extract.R:326:3' [success] 'test_api_define_extract.R:343:3' [success] End test: Can validate core microdata extract fields Start test: Can validate core NHGIS extract fields 'test_api_define_extract.R:362:3' [success] 'test_api_define_extract.R:366:3' [success] 'test_api_define_extract.R:374:3' [success] 'test_api_define_extract.R:378:3' [success] 'test_api_define_extract.R:392:3' [success] 'test_api_define_extract.R:403:3' [success] End test: Can validate core NHGIS extract fields Start test: We require `*_spec` objects in appropriate extract fields 'test_api_define_extract.R:413:3' [success] 'test_api_define_extract.R:426:3' [success] 'test_api_define_extract.R:439:3' [success] 'test_api_define_extract.R:450:3' [success] 'test_api_define_extract.R:457:3' [success] End test: We require `*_spec` objects in appropriate extract fields Start test: Can validate `*_spec` objects within extracts 'test_api_define_extract.R:472:3' [success] 'test_api_define_extract.R:483:3' [success] 'test_api_define_extract.R:495:3' [success] 'test_api_define_extract.R:510:3' [success] 'test_api_define_extract.R:518:3' [success] 'test_api_define_extract.R:534:3' [success] 'test_api_define_extract.R:547:3' [success] End test: Can validate `*_spec` objects within extracts Start test: We avoid adding multiple `*_spec` objects of same name 'test_api_define_extract.R:562:3' [success] 'test_api_define_extract.R:570:3' [success] 'test_api_define_extract.R:578:3' [success] 'test_api_define_extract.R:584:3' [success] End test: We avoid adding multiple `*_spec` objects of same name Start test: Can add full fields to a microdata extract 'test_api_define_extract.R:609:3' [success] 'test_api_define_extract.R:613:3' [success] 'test_api_define_extract.R:617:3' [success] 'test_api_define_extract.R:621:3' [success] 'test_api_define_extract.R:625:3' [success] 'test_api_define_extract.R:626:3' [success] 'test_api_define_extract.R:627:3' [success] 'test_api_define_extract.R:628:3' [success] End test: Can add full fields to a microdata extract Start test: Can add full fields to an NHGIS extract 'test_api_define_extract.R:654:3' [success] 'test_api_define_extract.R:655:3' [success] 'test_api_define_extract.R:659:3' [success] 'test_api_define_extract.R:660:3' [success] 'test_api_define_extract.R:662:3' [success] 'test_api_define_extract.R:663:3' [success] 'test_api_define_extract.R:664:3' [success] End test: Can add full fields to an NHGIS extract Start test: Can add subfields to existing `ipums_*` fields 'test_api_define_extract.R:696:3' [success] 'test_api_define_extract.R:700:3' [success] 'test_api_define_extract.R:707:3' [success] 'test_api_define_extract.R:714:3' [success] 'test_api_define_extract.R:718:3' [success] 'test_api_define_extract.R:722:3' [success] 'test_api_define_extract.R:729:3' [success] 'test_api_define_extract.R:734:3' [success] 'test_api_define_extract.R:738:3' [success] 'test_api_define_extract.R:742:3' [success] 'test_api_define_extract.R:746:3' [success] 'test_api_define_extract.R:750:3' [success] End test: Can add subfields to existing `ipums_*` fields Start test: Can remove full fields from a microdata extract 'test_api_define_extract.R:774:3' [success] 'test_api_define_extract.R:778:3' [success] End test: Can remove full fields from a microdata extract Start test: Can remove full fields from an NHGIS extract 'test_api_define_extract.R:803:3' [success] 'test_api_define_extract.R:804:3' [success] 'test_api_define_extract.R:805:3' [success] 'test_api_define_extract.R:806:3' [success] End test: Can remove full fields from an NHGIS extract Start test: Unused revisions do not alter unsubmitted extracts 'test_api_define_extract.R:814:3' [success] 'test_api_define_extract.R:815:3' [success] 'test_api_define_extract.R:816:3' [success] 'test_api_define_extract.R:820:3' [success] 'test_api_define_extract.R:826:3' [success] 'test_api_define_extract.R:827:3' [success] 'test_api_define_extract.R:833:3' [success] 'test_api_define_extract.R:834:3' [success] 'test_api_define_extract.R:841:3' [success] 'test_api_define_extract.R:842:3' [success] 'test_api_define_extract.R:844:3' [success] End test: Unused revisions do not alter unsubmitted extracts Start test: Can remove subfields from existing spec fields 'test_api_define_extract.R:859:3' [success] 'test_api_define_extract.R:863:3' [success] 'test_api_define_extract.R:880:3' [success] 'test_api_define_extract.R:883:3' [success] 'test_api_define_extract.R:887:3' [success] 'test_api_define_extract.R:888:3' [success] End test: Can remove subfields from existing spec fields Start test: Can remove full fields and subfields simultaneously 'test_api_define_extract.R:902:3' [success] 'test_api_define_extract.R:903:3' [success] End test: Can remove full fields and subfields simultaneously Start test: Improper extract revisions throw warnings or errors 'test_api_define_extract.R:910:3' [success] 'test_api_define_extract.R:922:3' [success] 'test_api_define_extract.R:933:3' [success] 'test_api_define_extract.R:941:3' [success] 'test_api_define_extract.R:948:3' [success] 'test_api_define_extract.R:952:3' [success] 'test_api_define_extract.R:956:3' [success] 'test_api_define_extract.R:964:3' [success] 'test_api_define_extract.R:974:3' [success] 'test_api_define_extract.R:981:3' [success] End test: Improper extract revisions throw warnings or errors Start test: Can reproduce extract specs from JSON definition 'test_api_define_extract.R:1004:3' [success] 'test_api_define_extract.R:1005:3' [success] 'test_api_define_extract.R:1006:3' [success] 'test_api_define_extract.R:1008:3' [success] 'test_api_define_extract.R:1012:3' [success] 'test_api_define_extract.R:1016:3' [success] End test: Can reproduce extract specs from JSON definition Start test: Can export to and import from JSON 'test_api_define_extract.R:1038:3' [success] 'test_api_define_extract.R:1039:3' [success] 'test_api_define_extract.R:1041:3' [success] 'test_api_define_extract.R:1048:3' [success] End test: Can export to and import from JSON Start test: Throw error when defining from JSON with old API version 'test_api_define_extract.R:1062:3' [success] End test: Throw error when defining from JSON with old API version Start test: Can check microdata extract status 'test_api_extract_info.R:50:3' [success] 'test_api_extract_info.R:51:3' [success] 'test_api_extract_info.R:52:3' [success] 'test_api_extract_info.R:54:3' [success] 'test_api_extract_info.R:55:3' [success] 'test_api_extract_info.R:67:3' [success] End test: Can check microdata extract status Start test: Can check NHGIS extract status 'test_api_extract_info.R:93:3' [success] 'test_api_extract_info.R:94:3' [success] 'test_api_extract_info.R:95:3' [success] 'test_api_extract_info.R:97:3' [success] 'test_api_extract_info.R:98:3' [success] 'test_api_extract_info.R:110:3' [success] End test: Can check NHGIS extract status Start test: Cannot check status for an extract with no number 'test_api_extract_info.R:114:3' [success] 'test_api_extract_info.R:122:3' [success] End test: Cannot check status for an extract with no number Start test: We avoid superfluous checks when getting extract status 'test_api_extract_info.R:143:3' [success] 'test_api_extract_info.R:152:3' [success] 'test_api_extract_info.R:156:3' [success] 'test_api_extract_info.R:165:3' [success] 'test_api_extract_info.R:169:3' [success] 'test_api_extract_info.R:174:3' [success] End test: We avoid superfluous checks when getting extract status Start test: Can parse default collection 'test_api_extract_info.R:181:5' [success] 'test_api_extract_info.R:182:5' [success] 'test_api_extract_info.R:183:5' [success] 'test_api_extract_info.R:185:5' [success] 'test_api_extract_info.R:189:5' [success] 'test_api_extract_info.R:200:5' [success] 'test_api_extract_info.R:201:5' [success] 'test_api_extract_info.R:202:5' [success] 'test_api_extract_info.R:206:5' [success] 'test_api_extract_info.R:213:5' [success] End test: Can parse default collection Start test: Can get extract info for default collection 'test_api_extract_info.R:238:7' [success] 'test_api_extract_info.R:248:5' [success] 'test_api_extract_info.R:255:5' [success] End test: Can get extract info for default collection Start test: Can get extract history for all records 'test_api_extract_info.R:295:3' [success] 'test_api_extract_info.R:296:3' [success] End test: Can get extract history for all records Start test: Can get extract history for more records than page size 'test_api_extract_info.R:337:3' [success] 'test_api_extract_info.R:341:3' [success] End test: Can get extract history for more records than page size Start test: Tibble of recent micro extracts has expected structure 'test_api_extract_info.R:363:5' [success] 'test_api_extract_info.R:382:3' [success] 'test_api_extract_info.R:384:3' [success] 'test_api_extract_info.R:386:3' [success] 'test_api_extract_info.R:387:3' [success] 'test_api_extract_info.R:391:3' [success] 'test_api_extract_info.R:395:3' [success] 'test_api_extract_info.R:399:3' [success] 'test_api_extract_info.R:403:3' [success] 'test_api_extract_info.R:407:3' [success] End test: Tibble of recent micro extracts has expected structure Start test: Tibble of recent NHGIS extracts has expected structure 'test_api_extract_info.R:426:5' [success] 'test_api_extract_info.R:458:3' [success] 'test_api_extract_info.R:459:3' [success] 'test_api_extract_info.R:461:3' [success] 'test_api_extract_info.R:465:3' [success] 'test_api_extract_info.R:469:3' [success] 'test_api_extract_info.R:473:3' [success] 'test_api_extract_info.R:477:3' [success] 'test_api_extract_info.R:481:3' [success] 'test_api_extract_info.R:485:3' [success] End test: Tibble of recent NHGIS extracts has expected structure Start test: Can get specific number of recent extracts in tibble format 'test_api_extract_info.R:494:5' [success] 'test_api_extract_info.R:502:5' [success] 'test_api_extract_info.R:510:3' [success] 'test_api_extract_info.R:514:3' [success] End test: Can get specific number of recent extracts in tibble format Start test: Error on invalid number of records 'test_api_extract_info.R:518:3' [success] End test: Error on invalid number of records Start test: Microdata tbl/list conversion works 'test_api_extract_info.R:530:5' [success] 'test_api_extract_info.R:538:3' [success] 'test_api_extract_info.R:545:3' [success] 'test_api_extract_info.R:549:3' [success] 'test_api_extract_info.R:550:3' [success] End test: Microdata tbl/list conversion works Start test: NHGIS tbl/list conversion works 'test_api_extract_info.R:560:5' [success] 'test_api_extract_info.R:568:3' [success] 'test_api_extract_info.R:572:3' [success] 'test_api_extract_info.R:576:3' [success] 'test_api_extract_info.R:577:3' [success] 'test_api_extract_info.R:579:3' [success] 'test_api_extract_info.R:597:3' [success] End test: NHGIS tbl/list conversion works Start test: NHGIS shapefile-only tbl/list conversion works 'test_api_extract_info.R:617:5' [success] 'test_api_extract_info.R:625:3' [success] 'test_api_extract_info.R:629:3' [success] End test: NHGIS shapefile-only tbl/list conversion works Start test: Can print microdata extracts 'test_api_helpers.R:4:3' [success] 'test_api_helpers.R:14:3' [success] 'test_api_helpers.R:24:3' [success] End test: Can print microdata extracts Start test: Can print NHGIS extracts 'test_api_helpers.R:37:3' [success] 'test_api_helpers.R:60:3' [success] End test: Can print NHGIS extracts Start test: NHGIS extract print coloring works test_api_helpers.R:73:3 [success] test_api_helpers.R:91:3 [success] 'test_api_helpers.R:114:3' [success] End test: NHGIS extract print coloring works Start test: set_ipums_envvar sets environment variable 'test_api_helpers.R:143:3' [success] End test: set_ipums_envvar sets environment variable Start test: set_ipums_envvar sets environment variable and saves to .Renviron 'test_api_helpers.R:169:3' [success] 'test_api_helpers.R:170:3' [success] 'test_api_helpers.R:171:3' [success] 'test_api_helpers.R:172:3' [success] End test: set_ipums_envvar sets environment variable and saves to .Renviron Start test: set_ipums_envvar works with existing .Renviron file 'test_api_helpers.R:199:3' [success] 'test_api_helpers.R:200:3' [success] 'test_api_helpers.R:201:3' [success] 'test_api_helpers.R:203:3' [success] 'test_api_helpers.R:207:3' [success] 'test_api_helpers.R:218:3' [success] 'test_api_helpers.R:219:3' [success] 'test_api_helpers.R:221:3' [success] 'test_api_helpers.R:222:3' [success] 'test_api_helpers.R:224:3' [success] 'test_api_helpers.R:226:3' [success] 'test_api_helpers.R:230:3' [success] 'test_api_helpers.R:231:3' [success] End test: set_ipums_envvar works with existing .Renviron file Start test: We handle API auth errors for extract and metadata endpoints 'test_api_helpers.R:240:5' [success] 'test_api_helpers.R:246:5' [success] End test: We handle API auth errors for extract and metadata endpoints Start test: Can parse API request error details in basic requests 'test_api_helpers.R:257:5' [success] 'test_api_helpers.R:275:5' [success] 'test_api_helpers.R:302:5' [success] 'test_api_helpers.R:313:5' [success] 'test_api_helpers.R:317:5' [success] 'test_api_helpers.R:321:5' [success] 'test_api_helpers.R:325:5' [success] End test: Can parse API request error details in basic requests Start test: Can parse API request error details in paged requests 'test_api_helpers.R:336:5' [success] End test: Can parse API request error details in paged requests Start test: We inform user about invalid extract number request 'test_api_helpers.R:358:5' [success] End test: We inform user about invalid extract number request Start test: We catch invalid collection specifications during requests 'test_api_helpers.R:373:3' [success] 'test_api_helpers.R:381:5' [success] End test: We catch invalid collection specifications during requests Start test: We warn users about unsupported features detected in an extract 'test_api_helpers.R:420:3' [success] End test: We warn users about unsupported features detected in an extract Start test: We can get correct API version info for each collection 'test_api_helpers.R:443:3' [success] 'test_api_helpers.R:454:3' [success] 'test_api_helpers.R:455:3' [success] 'test_api_helpers.R:456:3' [success] 'test_api_helpers.R:457:3' [success] End test: We can get correct API version info for each collection Start test: standardize_extract_identifier handles unusual cases 'test_api_helpers.R:464:3' [success] 'test_api_helpers.R:468:3' [success] 'test_api_helpers.R:472:3' [success] 'test_api_helpers.R:476:3' [success] 'test_api_helpers.R:480:3' [success] End test: standardize_extract_identifier handles unusual cases Start test: Can toggle demo API URL 'test_api_helpers.R:490:5' [success] 'test_api_helpers.R:496:5' [success] 'test_api_helpers.R:502:5' [success] End test: Can toggle demo API URL Start test: We can get summary metadata 'test_api_metadata.R:11:3' [success] 'test_api_metadata.R:12:3' [success] 'test_api_metadata.R:13:3' [success] 'test_api_metadata.R:15:3' [success] 'test_api_metadata.R:16:3' [success] 'test_api_metadata.R:17:3' [success] End test: We can get summary metadata Start test: We can iterate through pages to get all records 'test_api_metadata.R:50:3' [success] 'test_api_metadata.R:51:3' [success] 'test_api_metadata.R:55:3' [success] End test: We can iterate through pages to get all records Start test: We can get metadata for single dataset 'test_api_metadata.R:67:3' [success] 'test_api_metadata.R:68:3' [success] 'test_api_metadata.R:69:3' [success] 'test_api_metadata.R:77:3' [success] 'test_api_metadata.R:78:3' [success] End test: We can get metadata for single dataset Start test: We can get metadata for single time series table 'test_api_metadata.R:98:3' [success] 'test_api_metadata.R:99:3' [success] 'test_api_metadata.R:100:3' [success] 'test_api_metadata.R:107:3' [success] 'test_api_metadata.R:108:3' [success] End test: We can get metadata for single time series table Start test: We can get metadata for single data table 'test_api_metadata.R:127:3' [success] 'test_api_metadata.R:128:3' [success] 'test_api_metadata.R:135:3' [success] 'test_api_metadata.R:136:3' [success] End test: We can get metadata for single data table Start test: We throw errors on bad metadata specs prior to making request 'test_api_metadata.R:141:3' [success] 'test_api_metadata.R:145:3' [success] 'test_api_metadata.R:149:3' [success] 'test_api_metadata.R:155:3' [success] 'test_api_metadata.R:159:3' [success] End test: We throw errors on bad metadata specs prior to making request Start test: Can submit a USA extract 'test_api_process_extract.R:54:3' [success] 'test_api_process_extract.R:55:3' [success] 'test_api_process_extract.R:56:3' [success] 'test_api_process_extract.R:57:3' [success] 'test_api_process_extract.R:58:3' [success] 'test_api_process_extract.R:59:3' [success] 'test_api_process_extract.R:61:3' [success] 'test_api_process_extract.R:63:3' [success] 'test_api_process_extract.R:67:3' [success] 'test_api_process_extract.R:75:3' [success] 'test_api_process_extract.R:82:7' [success] 'test_api_process_extract.R:86:7' [success] 'test_api_process_extract.R:91:7' [success] 'test_api_process_extract.R:97:7' [success] 'test_api_process_extract.R:82:7' [success] 'test_api_process_extract.R:86:7' [success] 'test_api_process_extract.R:91:7' [success] 'test_api_process_extract.R:97:7' [success] End test: Can submit a USA extract Start test: Can submit a CPS extract 'test_api_process_extract.R:114:3' [success] 'test_api_process_extract.R:115:3' [success] 'test_api_process_extract.R:116:3' [success] 'test_api_process_extract.R:117:3' [success] 'test_api_process_extract.R:118:3' [success] 'test_api_process_extract.R:119:3' [success] 'test_api_process_extract.R:121:3' [success] 'test_api_process_extract.R:123:3' [success] 'test_api_process_extract.R:127:3' [success] 'test_api_process_extract.R:135:3' [success] 'test_api_process_extract.R:142:7' [success] 'test_api_process_extract.R:146:7' [success] 'test_api_process_extract.R:151:7' [success] 'test_api_process_extract.R:157:7' [success] 'test_api_process_extract.R:142:7' [success] 'test_api_process_extract.R:146:7' [success] 'test_api_process_extract.R:151:7' [success] 'test_api_process_extract.R:157:7' [success] 'test_api_process_extract.R:142:7' [success] 'test_api_process_extract.R:146:7' [success] 'test_api_process_extract.R:151:7' [success] 'test_api_process_extract.R:157:7' [success] End test: Can submit a CPS extract Start test: Can submit an NHGIS extract of multiple types 'test_api_process_extract.R:174:3' [success] 'test_api_process_extract.R:175:3' [success] 'test_api_process_extract.R:176:3' [success] 'test_api_process_extract.R:177:3' [success] 'test_api_process_extract.R:178:3' [success] 'test_api_process_extract.R:179:3' [success] 'test_api_process_extract.R:180:3' [success] 'test_api_process_extract.R:181:3' [success] 'test_api_process_extract.R:182:3' [success] End test: Can submit an NHGIS extract of multiple types Start test: Can submit an NHGIS extract of a single type 'test_api_process_extract.R:194:3' [success] 'test_api_process_extract.R:198:3' [success] 'test_api_process_extract.R:199:3' [success] 'test_api_process_extract.R:200:3' [success] 'test_api_process_extract.R:201:3' [success] 'test_api_process_extract.R:205:3' [success] 'test_api_process_extract.R:206:3' [success] 'test_api_process_extract.R:207:3' [success] End test: Can submit an NHGIS extract of a single type Start test: Can resubmit an extract 'test_api_process_extract.R:229:3' [success] 'test_api_process_extract.R:233:3' [success] End test: Can resubmit an extract Start test: Revisions update status of submitted extract 'test_api_process_extract.R:250:3' [success] 'test_api_process_extract.R:251:3' [success] 'test_api_process_extract.R:252:3' [success] 'test_api_process_extract.R:253:3' [success] 'test_api_process_extract.R:254:3' [success] 'test_api_process_extract.R:257:3' [success] 'test_api_process_extract.R:258:3' [success] End test: Revisions update status of submitted extract Start test: Can download microdata extract with extract object 'test_api_process_extract.R:282:3' [success] 'test_api_process_extract.R:289:3' [success] 'test_api_process_extract.R:294:3' [success] 'test_api_process_extract.R:310:3' [success] 'test_api_process_extract.R:311:3' [success] 'test_api_process_extract.R:314:3' [success] End test: Can download microdata extract with extract object Start test: Can download NHGIS extract with extract object 'test_api_process_extract.R:335:3' [success] 'test_api_process_extract.R:339:3' [success] 'test_api_process_extract.R:344:3' [success] 'test_api_process_extract.R:355:3' [success] 'test_api_process_extract.R:364:3' [success] 'test_api_process_extract.R:365:3' [success] 'test_api_process_extract.R:377:3' [success] 'test_api_process_extract.R:378:3' [success] 'test_api_process_extract.R:380:3' [success] 'test_api_process_extract.R:381:3' [success] End test: Can download NHGIS extract with extract object Start test: Can download extract with extract id 'test_api_process_extract.R:402:3' [success] 'test_api_process_extract.R:413:3' [success] 'test_api_process_extract.R:424:3' [success] 'test_api_process_extract.R:431:3' [success] 'test_api_process_extract.R:432:3' [success] 'test_api_process_extract.R:435:3' [success] End test: Can download extract with extract id Start test: Can download shapefile-only extract 'test_api_process_extract.R:458:3' [success] 'test_api_process_extract.R:469:3' [success] 'test_api_process_extract.R:470:3' [success] 'test_api_process_extract.R:477:3' [success] 'test_api_process_extract.R:478:3' [success] End test: Can download shapefile-only extract Start test: Download extract errors on incomplete extract 'test_api_process_extract.R:483:5' [success] End test: Download extract errors on incomplete extract Start test: Can read downloaded files with ipumsr readers 'test_api_process_extract.R:527:3' [success] End test: Can read downloaded files with ipumsr readers Start test: We validate extract before submission 'test_api_process_extract.R:533:3' [success] 'test_api_process_extract.R:540:3' [success] 'test_api_process_extract.R:544:3' [success] End test: We validate extract before submission Start test: Can add to a submitted extract 'test_api_process_extract.R:567:3' [success] 'test_api_process_extract.R:568:3' [success] 'test_api_process_extract.R:572:3' [success] End test: Can add to a submitted extract Start test: We can export to and import from JSON, submitted extract 'test_api_process_extract.R:593:3' [success] End test: We can export to and import from JSON, submitted extract Start test: Reading through directory is deprecated 'test_deprec_dir_read.R:4:3' [success] 'test_deprec_dir_read.R:10:3' [success] 'test_deprec_dir_read.R:11:3' [success] 'test_deprec_dir_read.R:22:3' [success] 'test_deprec_dir_read.R:26:3' [success] 'test_deprec_dir_read.R:33:3' [success] 'test_deprec_dir_read.R:37:3' [success] 'test_deprec_dir_read.R:41:3' [success] End test: Reading through directory is deprecated Start test: Get correct file path when loading from directory 'test_deprec_dir_read.R:50:3' [success] 'test_deprec_dir_read.R:54:3' [success] End test: Get correct file path when loading from directory Start test: fostr_detect works as expected 'test_fostr.R:2:3' [success] End test: fostr_detect works as expected Start test: fostr_named_capture works as expected 'test_fostr.R:9:3' [success] 'test_fostr.R:17:3' [success] 'test_fostr.R:26:3' [success] End test: fostr_named_capture works as expected Start test: fostr_named_capture_single works as expected 'test_fostr.R:36:3' [success] End test: fostr_named_capture_single works as expected Start test: fostr_replace works as expected 'test_fostr.R:46:3' [success] 'test_fostr.R:47:3' [success] End test: fostr_replace works as expected Start test: fostr_replace_all works as expected 'test_fostr.R:51:3' [success] 'test_fostr.R:52:3' [success] End test: fostr_replace_all works as expected Start test: fostr_split works as expected 'test_fostr.R:56:3' [success] End test: fostr_split works as expected Start test: fostr_sub works as expected 'test_fostr.R:63:3' [success] 'test_fostr.R:64:3' [success] 'test_fostr.R:65:3' [success] End test: fostr_sub works as expected Start test: fostr_subset works as expected 'test_fostr.R:69:3' [success] End test: fostr_subset works as expected Start test: fostr_wrap works as expected 'test_fostr.R:76:3' [success] End test: fostr_wrap works as expected Start test: simple bind rows example 'test_ipums_bind_rows.R:16:3' [success] 'test_ipums_bind_rows.R:17:3' [success] 'test_ipums_bind_rows.R:18:3' [success] End test: simple bind rows example Start test: mismatched attributes in bind rows 'test_ipums_bind_rows.R:35:3' [success] 'test_ipums_bind_rows.R:37:3' [success] 'test_ipums_bind_rows.R:38:3' [success] End test: mismatched attributes in bind rows Start test: ipums_bind_rows can handle list of data.frames 'test_ipums_bind_rows.R:57:3' [success] 'test_ipums_bind_rows.R:58:3' [success] End test: ipums_bind_rows can handle list of data.frames Start test: ipums_bind_rows throws error for nested list of data.frames 'test_ipums_bind_rows.R:75:3' [success] End test: ipums_bind_rows throws error for nested list of data.frames Start test: Var info/var desc/var label/value labels works on DDI 'test_ipums_info.R:16:3' [success] 'test_ipums_info.R:17:3' [success] 'test_ipums_info.R:19:3' [success] 'test_ipums_info.R:21:3' [success] 'test_ipums_info.R:23:3' [success] End test: Var info/var desc/var label/value labels works on DDI Start test: Var info/var desc/var label/value labels works on data 'test_ipums_info.R:29:3' [success] 'test_ipums_info.R:30:3' [success] 'test_ipums_info.R:32:3' [success] 'test_ipums_info.R:34:3' [success] 'test_ipums_info.R:36:3' [success] End test: Var info/var desc/var label/value labels works on data Start test: File info works on ddi 'test_ipums_info.R:42:3' [success] 'test_ipums_info.R:43:3' [success] End test: File info works on ddi Start test: Can get website URL for `ipums_ddi` object 'test_ipums_website.R:4:3' [success] 'test_ipums_website.R:8:3' [success] End test: Can get website URL for `ipums_ddi` object Start test: Can get URL for projects that do not have variables 'test_ipums_website.R:20:3' [success] 'test_ipums_website.R:24:3' [success] 'test_ipums_website.R:28:3' [success] End test: Can get URL for projects that do not have variables Start test: Can get website URL for manually specified project and variable 'test_ipums_website.R:32:3' [success] 'test_ipums_website.R:36:3' [success] 'test_ipums_website.R:40:3' [success] 'test_ipums_website.R:44:3' [success] End test: Can get website URL for manually specified project and variable Start test: Can get website URL when specifying project using API code 'test_ipums_website.R:51:3' [success] 'test_ipums_website.R:55:3' [success] 'test_ipums_website.R:59:3' [success] End test: Can get website URL when specifying project using API code Start test: Can get URL when multiple vars specified 'test_ipums_website.R:66:3' [success] 'test_ipums_website.R:74:3' [success] End test: Can get URL when multiple vars specified Start test: We use IPUMS homepage if invalid project 'test_ipums_website.R:81:3' [success] 'test_ipums_website.R:90:3' [success] 'test_ipums_website.R:91:3' [success] End test: We use IPUMS homepage if invalid project Start test: Can get URL for website even if variable is not in DDI 'test_ipums_website.R:105:3' [success] 'test_ipums_website.R:109:3' [success] 'test_ipums_website.R:113:3' [success] End test: Can get URL for website even if variable is not in DDI Start test: Can still use deprecated `project` arg (until it is removed) 'test_ipums_website.R:117:3' [success] 'test_ipums_website.R:121:3' [success] 'test_ipums_website.R:122:3' [success] End test: Can still use deprecated `project` arg (until it is removed) Start test: lbl_na_if: Simple example with both .lbl and .val keywords 'test_lbls.R:32:3' [success] End test: lbl_na_if: Simple example with both .lbl and .val keywords Start test: lbl_na_if: Respects environment 'test_lbls.R:40:3' [success] End test: lbl_na_if: Respects environment Start test: lbl_na_if: Explicit function 'test_lbls.R:47:3' [success] End test: lbl_na_if: Explicit function Start test: lbl_na_if: Function name 'test_lbls.R:55:3' [success] End test: lbl_na_if: Function name Start test: lbl_collapse: basic 'test_lbls.R:68:3' [success] End test: lbl_collapse: basic Start test: lbl_collapse maintains old label values (even if not first) 'test_lbls.R:81:3' [success] End test: lbl_collapse maintains old label values (even if not first) Start test: lbl_relabel: basic 'test_lbls.R:94:3' [success] End test: lbl_relabel: basic Start test: lbl_relabel: multiple dots 'test_lbls.R:107:3' [success] End test: lbl_relabel: multiple dots Start test: lbl_relabel: to existing by just value 'test_lbls.R:124:3' [success] End test: lbl_relabel: to existing by just value Start test: lbl_relabel: to existing by single unnamed argument to label 'test_lbls.R:137:3' [success] End test: lbl_relabel: to existing by single unnamed argument to label Start test: lbl_relabel: to existing by single named argument to value 'test_lbls.R:150:3' [success] End test: lbl_relabel: to existing by single named argument to value Start test: lbl_relabel: error when to nonexisting by single unnamed argument 'test_lbls.R:157:3' [success] End test: lbl_relabel: error when to nonexisting by single unnamed argument Start test: lbl_relabel: error when to existing value with new label 'test_lbls.R:163:3' [success] End test: lbl_relabel: error when to existing value with new label Start test: lbl_relabel: can flip labels 'test_lbls.R:169:3' [success] End test: lbl_relabel: can flip labels Start test: lbl_relabel: error when x has no labels 'test_lbls.R:180:3' [success] End test: lbl_relabel: error when x has no labels Start test: lbl_define: basic 'test_lbls.R:195:3' [success] End test: lbl_define: basic Start test: lbl_define: error when x is already labelled 'test_lbls.R:210:3' [success] End test: lbl_define: error when x is already labelled Start test: lbl_add: can add a single label 'test_lbls.R:228:3' [success] End test: lbl_add: can add a single label Start test: lbl_add: can add more than one label 'test_lbls.R:244:3' [success] End test: lbl_add: can add more than one label Start test: lbl_add: error if trying to add new label for old value 'test_lbls.R:251:3' [success] End test: lbl_add: error if trying to add new label for old value Start test: lbl_add_vals: basic 'test_lbls.R:262:3' [success] End test: lbl_add_vals: basic Start test: lbl_clean: basic 'test_lbls.R:273:3' [success] End test: lbl_clean: basic Start test: error if cannot coerce to lbl_function 'test_lbls.R:284:3' [success] End test: error if cannot coerce to lbl_function Start test: Can list files from zipped data extract 'test_list_files.R:10:3' [success] 'test_list_files.R:11:3' [success] End test: Can list files from zipped data extract Start test: Can list files from zipped shapefile 'test_list_files.R:20:3' [success] 'test_list_files.R:21:3' [success] End test: Can list files from zipped shapefile Start test: Reading variables in lowercase is okay - DDI 'test_lower_names.R:8:3' [success] 'test_lower_names.R:17:3' [success] 'test_lower_names.R:25:3' [success] End test: Reading variables in lowercase is okay - DDI Start test: Reading variables in lowercase is okay - rect micro data 'test_lower_names.R:41:3' [success] 'test_lower_names.R:47:3' [success] End test: Reading variables in lowercase is okay - rect micro data Start test: Reading variables in lowercase is okay - hier micro data 'test_lower_names.R:64:3' [success] 'test_lower_names.R:70:3' [success] End test: Reading variables in lowercase is okay - hier micro data Start test: lower_vars = TRUE warning on rectangular .dat.gz 'test_lower_names.R:76:3' [success] 'test_lower_names.R:80:3' [success] End test: lower_vars = TRUE warning on rectangular .dat.gz Start test: lower_vars = TRUE warning on hierarchical .dat.gz 'test_lower_names.R:87:3' [success] 'test_lower_names.R:91:3' [success] End test: lower_vars = TRUE warning on hierarchical .dat.gz Start test: lower_vars arg works on .csv.gz file 'test_lower_names.R:103:3' [success] 'test_lower_names.R:112:3' [success] End test: lower_vars arg works on .csv.gz file Start test: lower_vars arg works on chunked rectangular .dat.gz 'test_lower_names.R:118:3' [success] 'test_lower_names.R:127:3' [success] 'test_lower_names.R:136:3' [success] 'test_lower_names.R:145:3' [success] End test: lower_vars arg works on chunked rectangular .dat.gz Start test: lower_vars arg works on chunked hierarchical .dat.gz 'test_lower_names.R:152:3' [success] 'test_lower_names.R:169:3' [success] 'test_lower_names.R:190:3' [success] 'test_lower_names.R:210:3' [success] End test: lower_vars arg works on chunked hierarchical .dat.gz Start test: lower_vars arg works on chunked .csv.gz file 'test_lower_names.R:225:3' [success] 'test_lower_names.R:235:3' [success] End test: lower_vars arg works on chunked .csv.gz file Start test: lower_vars arg works with _yield on rectangular .dat.gz 'test_lower_names.R:241:3' [success] 'test_lower_names.R:255:3' [success] 'test_lower_names.R:269:3' [success] 'test_lower_names.R:283:3' [success] End test: lower_vars arg works with _yield on rectangular .dat.gz Start test: lower_vars arg works with _yield on hierarchical .dat.gz 'test_lower_names.R:290:3' [success] 'test_lower_names.R:311:3' [success] 'test_lower_names.R:332:3' [success] 'test_lower_names.R:352:3' [success] End test: lower_vars arg works with _yield on hierarchical .dat.gz Start test: Can read Rectangular .dat.gz 'test_micro.R:28:3' [success] 'test_micro.R:29:3' [success] 'test_micro.R:30:3' [success] 'test_micro.R:31:3' [success] 'test_micro.R:32:3' [success] 'test_micro.R:33:3' [success] 'test_micro.R:34:3' [success] End test: Can read Rectangular .dat.gz Start test: Can read Rectangular .dat 'test_micro.R:50:3' [success] 'test_micro.R:51:3' [success] 'test_micro.R:52:3' [success] 'test_micro.R:53:3' [success] 'test_micro.R:54:3' [success] 'test_micro.R:55:3' [success] 'test_micro.R:56:3' [success] End test: Can read Rectangular .dat Start test: Can read Rectangular .csv.gz 'test_micro.R:66:3' [success] 'test_micro.R:67:3' [success] 'test_micro.R:68:3' [success] 'test_micro.R:69:3' [success] 'test_micro.R:70:3' [success] 'test_micro.R:71:3' [success] 'test_micro.R:72:3' [success] End test: Can read Rectangular .csv.gz Start test: Can read Hierarchical into long format 'test_micro.R:81:3' [success] 'test_micro.R:82:3' [success] 'test_micro.R:83:3' [success] 'test_micro.R:84:3' [success] 'test_micro.R:85:3' [success] 'test_micro.R:86:3' [success] 'test_micro.R:87:3' [success] End test: Can read Hierarchical into long format Start test: Can read Hierarchical into list format 'test_micro.R:96:3' [success] 'test_micro.R:97:3' [success] 'test_micro.R:98:3' [success] 'test_micro.R:99:3' [success] 'test_micro.R:100:3' [success] 'test_micro.R:101:3' [success] 'test_micro.R:102:3' [success] 'test_micro.R:103:3' [success] 'test_micro.R:104:3' [success] 'test_micro.R:108:3' [success] 'test_micro.R:109:3' [success] End test: Can read Hierarchical into list format Start test: Can't read Rectangular into list format 'test_micro.R:119:3' [success] End test: Can't read Rectangular into list format Start test: Can read microdata from an `ipums_ddi` object 'test_micro.R:133:3' [success] End test: Can read microdata from an `ipums_ddi` object Start test: Arguments n_max and vars work 'test_micro.R:143:3' [success] 'test_micro.R:144:3' [success] End test: Arguments n_max and vars work Start test: Arguments n_max and vars work for csv files (#26) 'test_micro.R:155:3' [success] 'test_micro.R:156:3' [success] End test: Arguments n_max and vars work for csv files (#26) Start test: Setting argument var_attrs to NULL works 'test_micro.R:168:3' [success] End test: Setting argument var_attrs to NULL works Start test: Informative errors when improper ddi file 'test_micro.R:172:3' [success] 'test_micro.R:176:3' [success] 'test_micro.R:184:3' [success] 'test_micro.R:188:3' [success] 'test_micro.R:192:3' [success] 'test_micro.R:196:3' [success] End test: Informative errors when improper ddi file Start test: keyvar is loaded regardless of selection in hierarchical 'test_micro.R:208:3' [success] 'test_micro.R:209:3' [success] End test: keyvar is loaded regardless of selection in hierarchical Start test: Don't duplicate rectype vars in ATUS hierarchical extracts (#43) 'test_micro.R:225:3' [success] 'test_micro.R:236:3' [success] End test: Don't duplicate rectype vars in ATUS hierarchical extracts (#43) Start test: Empty vars selection is handled 'test_micro.R:247:3' [success] End test: Empty vars selection is handled Start test: basic chunk reading - long .dat.gz 'test_micro_chunked.R:20:3' [success] End test: basic chunk reading - long .dat.gz Start test: basic chunk reading - long .csv.gz 'test_micro_chunked.R:24:3' [skip] End test: basic chunk reading - long .csv.gz Start test: basic chunk reading - list 'test_micro_chunked.R:63:3' [success] End test: basic chunk reading - list Start test: biglm is equivalent to lm 'test_micro_chunked.R:90:3' [success] 'test_micro_chunked.R:91:3' [success] End test: biglm is equivalent to lm Start test: basic yield reading - long .dat.gz rect matches chunked 'test_micro_yield.R:21:3' [success] End test: basic yield reading - long .dat.gz rect matches chunked Start test: basic yield reading - long .dat.gz hier matches chunked 'test_micro_yield.R:44:3' [success] End test: basic yield reading - long .dat.gz hier matches chunked Start test: basic yield reading - list .dat.gz hier matches chunked 'test_micro_yield.R:67:3' [success] End test: basic yield reading - list .dat.gz hier matches chunked Start test: basic yield reading - list .dat.gz rect matches chunked 'test_micro_yield.R:90:3' [success] End test: basic yield reading - list .dat.gz rect matches chunked Start test: read_ipums_micro_yield can't read from .csv file 'test_micro_yield.R:94:3' [success] End test: read_ipums_micro_yield can't read from .csv file Start test: Can read NHGIS extract: single dataset 'test_nhgis.R:15:3' [success] 'test_nhgis.R:20:3' [success] 'test_nhgis.R:25:3' [success] 'test_nhgis.R:26:3' [success] 'test_nhgis.R:27:3' [success] 'test_nhgis.R:31:3' [success] 'test_nhgis.R:35:3' [success] 'test_nhgis.R:39:3' [success] End test: Can read NHGIS extract: single dataset Start test: Can read NHGIS extract: fixed-width files 'test_nhgis.R:43:3' [success] 'test_nhgis.R:53:3' [success] 'test_nhgis.R:54:3' [success] 'test_nhgis.R:55:3' [success] 'test_nhgis.R:56:3' [success] 'test_nhgis.R:60:3' [success] 'test_nhgis.R:67:3' [success] 'test_nhgis.R:74:3' [success] 'test_nhgis.R:75:3' [success] 'test_nhgis.R:77:3' [success] 'test_nhgis.R:85:3' [success] 'test_nhgis.R:90:3' [success] 'test_nhgis.R:98:3' [success] 'test_nhgis.R:107:3' [success] 'test_nhgis.R:117:3' [success] 'test_nhgis.R:125:3' [success] 'test_nhgis.R:126:3' [success] End test: Can read NHGIS extract: fixed-width files Start test: Can read NHGIS extract: single time series table 'test_nhgis.R:142:3' [success] 'test_nhgis.R:147:3' [success] 'test_nhgis.R:152:3' [success] 'test_nhgis.R:153:3' [success] 'test_nhgis.R:154:3' [success] 'test_nhgis.R:155:3' [success] 'test_nhgis.R:157:3' [success] End test: Can read NHGIS extract: single time series table Start test: Can select data files by index 'test_nhgis.R:172:3' [success] 'test_nhgis.R:173:3' [success] 'test_nhgis.R:175:3' [success] 'test_nhgis.R:177:3' [success] 'test_nhgis.R:178:3' [success] 'test_nhgis.R:180:3' [success] 'test_nhgis.R:185:3' [success] End test: Can select data files by index Start test: Can select data files with tidyselect 'test_nhgis.R:204:3' [success] 'test_nhgis.R:205:3' [success] 'test_nhgis.R:207:3' [success] 'test_nhgis.R:209:3' [success] 'test_nhgis.R:210:3' [success] 'test_nhgis.R:212:3' [success] 'test_nhgis.R:217:3' [success] End test: Can select data files with tidyselect Start test: Can still find codebook if file_select matches data file only 'test_nhgis.R:236:3' [success] 'test_nhgis.R:238:3' [success] End test: Can still find codebook if file_select matches data file only Start test: Can still find codebook if direct data file path provided 'test_nhgis.R:252:3' [success] 'test_nhgis.R:257:3' [success] 'test_nhgis.R:262:3' [success] End test: Can still find codebook if direct data file path provided Start test: We can specify available readr options in read_nhgis() 'test_nhgis.R:271:3' [success] 'test_nhgis.R:280:3' [success] 'test_nhgis.R:298:3' [success] 'test_nhgis.R:299:3' [success] 'test_nhgis.R:300:3' [success] 'test_nhgis.R:302:3' [success] 'test_nhgis.R:303:3' [success] 'test_nhgis.R:304:3' [success] 'test_nhgis.R:309:3' [success] 'test_nhgis.R:311:3' [success] End test: We can specify available readr options in read_nhgis() Start test: We get informative error messages when reading NHGIS extracts 'test_nhgis.R:318:3' [success] 'test_nhgis.R:323:3' [success] 'test_nhgis.R:328:3' [success] 'test_nhgis.R:332:3' [success] 'test_nhgis.R:340:3' [success] 'test_nhgis.R:349:3' [failure] 'test_nhgis.R:353:3' [success] End test: We get informative error messages when reading NHGIS extracts Start test: Can read NHGIS codebook 'test_nhgis.R:364:3' [success] 'test_nhgis.R:397:3' [success] 'test_nhgis.R:398:3' [success] 'test_nhgis.R:399:3' [success] 'test_nhgis.R:402:3' [success] 'test_nhgis.R:408:3' [success] 'test_nhgis.R:412:3' [success] End test: Can read NHGIS codebook Start test: Can read unzipped NHGIS files 'test_nhgis.R:428:3' [success] 'test_nhgis.R:429:3' [success] End test: Can read unzipped NHGIS files Start test: Numeric parsing works on examples 'test_parse_manual_code.R:9:3' [success] End test: Numeric parsing works on examples Start test: Character parsing works on examples 'test_parse_manual_code.R:23:3' [success] End test: Character parsing works on examples Start test: can read DDI with labeled string variable 'test_read_ddi.R:10:3' [success] End test: can read DDI with labeled string variable Start test: We ignore layer selection for direct .xml files 'test_read_ddi.R:17:3' [success] 'test_read_ddi.R:24:3' [success] End test: We ignore layer selection for direct .xml files Start test: Can read ddi from zip archives 'test_read_ddi.R:30:3' [success] 'test_read_ddi.R:35:3' [success] 'test_read_ddi.R:40:3' [success] 'test_read_ddi.R:45:3' [success] 'test_read_ddi.R:49:3' [success] 'test_read_ddi.R:54:3' [success] 'test_read_ddi.R:58:3' [success] End test: Can read ddi from zip archives Start test: select_var_rows respects tidyselect syntax 'test_select_style.R:13:3' [success] 'test_select_style.R:19:3' [success] 'test_select_style.R:26:3' [success] 'test_select_style.R:35:3' [success] 'test_select_style.R:41:3' [success] End test: select_var_rows respects tidyselect syntax Start test: find_files_in respects tidyselect syntax 'test_select_style.R:52:3' [success] 'test_select_style.R:58:3' [success] 'test_select_style.R:63:3' [success] 'test_select_style.R:69:3' [success] 'test_select_style.R:79:3' [success] 'test_select_style.R:90:3' [success] 'test_select_style.R:101:3' [success] End test: find_files_in respects tidyselect syntax Start test: can set attributes altogether 'test_set_var_attributes.R:7:3' [success] 'test_set_var_attributes.R:8:3' [success] 'test_set_var_attributes.R:15:3' [success] 'test_set_var_attributes.R:16:3' [success] End test: can set attributes altogether Start test: setting variable attributes one at a time (#34) 'test_set_var_attributes.R:32:3' [success] 'test_set_var_attributes.R:37:3' [success] 'test_set_var_attributes.R:42:3' [success] 'test_set_var_attributes.R:47:3' [success] 'test_set_var_attributes.R:52:3' [success] 'test_set_var_attributes.R:58:3' [success] 'test_set_var_attributes.R:63:3' [success] 'test_set_var_attributes.R:68:3' [success] 'test_set_var_attributes.R:73:3' [success] 'test_set_var_attributes.R:79:3' [success] 'test_set_var_attributes.R:84:3' [success] 'test_set_var_attributes.R:89:3' [success] 'test_set_var_attributes.R:94:3' [success] End test: setting variable attributes one at a time (#34) Start test: Basic join works 'test_shape_join.R:9:3' [success] 'test_shape_join.R:10:3' [success] 'test_shape_join.R:11:3' [success] End test: Basic join works Start test: suffix argument works 'test_shape_join.R:27:3' [success] 'test_shape_join.R:28:3' [success] End test: suffix argument works Start test: complicated `by` works 'test_shape_join.R:54:3' [success] End test: complicated `by` works Start test: error for missing a by variable 'test_shape_join.R:62:3' [success] End test: error for missing a by variable Start test: Join failures are mentioned 'test_shape_join.R:79:3' [success] 'test_shape_join.R:80:3' [success] 'test_shape_join.R:81:3' [success] 'test_shape_join.R:82:3' [success] 'test_shape_join.R:86:3' [success] 'test_shape_join.R:87:3' [success] 'test_shape_join.R:88:3' [success] End test: Join failures are mentioned Start test: Character -> Integer conversion works (#16) 'test_shape_join.R:105:3' [success] 'test_shape_join.R:106:3' [success] 'test_shape_join.R:107:3' [success] End test: Character -> Integer conversion works (#16) Start test: Can read single shapefile 'test_shape_read.R:4:3' [success] 'test_shape_read.R:8:3' [success] 'test_shape_read.R:9:3' [success] 'test_shape_read.R:10:3' [success] 'test_shape_read.R:11:3' [success] End test: Can read single shapefile Start test: Can row bind multiple sf files 'test_shape_read.R:22:3' [success] 'test_shape_read.R:30:3' [success] 'test_shape_read.R:35:3' [success] 'test_shape_read.R:36:3' [success] End test: Can row bind multiple sf files Start test: Can read extract at multiple file levels 'test_shape_read.R:58:3' [success] 'test_shape_read.R:64:3' [success] 'test_shape_read.R:67:3' [success] 'test_shape_read.R:84:3' [success] 'test_shape_read.R:85:3' [success] End test: Can read extract at multiple file levels Start test: We get informative errors when reading shapefiles 'test_shape_read.R:94:3' [success] 'test_shape_read.R:99:3' [failure] 'test_shape_read.R:104:3' [success] End test: We get informative errors when reading shapefiles Start test: Careful rbind handles various data types 'test_shape_read.R:133:3' [success] 'test_shape_read.R:138:3' [success] 'test_shape_read.R:148:3' [success] 'test_shape_read.R:157:3' [success] 'test_shape_read.R:168:3' [success] 'test_shape_read.R:169:3' [success] End test: Careful rbind handles various data types Start test: normal ddi doesn't error 'test_viewer.R:6:3' [warning] 'test_viewer.R:7:3' [success] End test: normal ddi doesn't error Start test: empty ddi doesn't error 'test_viewer.R:15:3' [warning] 'test_viewer.R:16:3' [success] End test: empty ddi doesn't error Start test: normal microdata doesn't error 'test_viewer.R:24:3' [warning] 'test_viewer.R:25:3' [success] End test: normal microdata doesn't error Start test: attribute-less microdata doesn't error 'test_viewer.R:36:3' [warning] 'test_viewer.R:37:3' [success] End test: attribute-less microdata doesn't error Start test: nhgis codebook doesn't error 'test_viewer.R:45:3' [warning] 'test_viewer.R:46:3' [success] End test: nhgis codebook doesn't error Error: Test failures Execution halted Package: pointblank Check: tests New result: ERROR Running ‘testthat.R’ [48s/48s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(pointblank) > library(dittodb) Loading required package: DBI > test_check("pointblank") [ FAIL 19 | WARN 0 | SKIP 0 | PASS 1540 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-has_columns.R:67:3'): the `has_columns()` function works with tidyselect ── Error: Caused by error in `has_columns()`: ℹ In argument: `all_of(has_one)`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Elements `y` and `z` don't exist. Backtrace: ▆ 1. ├─testthat::expect_false(small_table %>% has_columns(all_of(has_one))) at test-has_columns.R:67:3 2. │ └─testthat::quasi_label(enquo(object), label, arg = "object") 3. │ └─rlang::eval_bare(expr, quo_get_env(quo)) 4. ├─small_table %>% has_columns(all_of(has_one)) 5. └─pointblank::has_columns(., all_of(has_one)) 6. └─base::lapply(column_quos, has_column) 7. └─pointblank (local) FUN(X[[i]], ...) 8. ├─base::tryCatch(...) 9. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 10. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 11. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 12. └─pointblank:::resolve_columns(...) 13. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Error ('test-tidyselect_fails_safely.R:10:3'): tidyselect errors signaled at report, not during development of validation plan ── Error: Caused by error in `col_vals_not_null()`: ℹ In argument: `all_of("z")`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Element `z` doesn't exist. Backtrace: ▆ 1. ├─testthat::expect_s3_class(...) at test-tidyselect_fails_safely.R:10:3 2. │ └─testthat::quasi_label(enquo(object), arg = "object") 3. │ └─rlang::eval_bare(expr, quo_get_env(quo)) 4. ├─agent %>% col_vals_not_null(all_of("z")) 5. └─pointblank::col_vals_not_null(., all_of("z")) 6. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 7. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Error ('test-tidyselect_fails_safely.R:29:3'): fail state correctly registered in the report for tidyselect errors ── Error: Caused by error in `col_vals_not_null()`: ℹ In argument: `all_of("z")`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Element `z` doesn't exist. Backtrace: ▆ 1. ├─... %>% interrogate() at test-tidyselect_fails_safely.R:29:3 2. ├─pointblank::interrogate(.) 3. ├─pointblank::col_vals_gt(., vars(c), 1, na_pass = TRUE) 4. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 5. │ └─pointblank:::apply_preconditions_for_cols(x, preconditions) 6. │ └─pointblank:::is_ptblank_agent(x) 7. └─pointblank::col_vals_not_null(., all_of("z")) 8. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:94:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% col_vals_not_null(z)` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:94:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% col_vals_not_null(z) 7. ├─pointblank::col_vals_not_null(., z) 8. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. │ ├─base::tryCatch(...) 10. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 11. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 12. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 13. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 14. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 15. │ └─tidyselect:::eval_select_impl(...) 16. │ ├─tidyselect:::with_subscript_errors(...) 17. │ │ └─base::withCallingHandlers(...) 18. │ └─tidyselect:::vars_select_eval(...) 19. │ └─tidyselect:::walk_data_tree(expr, data_mask, context_mask) 20. │ └─tidyselect:::as_indices_sel_impl(...) 21. │ └─tidyselect:::as_indices_impl(...) 22. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 23. │ └─vctrs::vec_as_location(...) 24. └─vctrs (local) ``() 25. └─vctrs:::stop_subscript_oob(...) 26. └─vctrs:::stop_subscript(...) 27. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:95:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% col_vals_not_null("z")` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:95:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% col_vals_not_null("z") 7. ├─pointblank::col_vals_not_null(., "z") 8. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. │ ├─base::tryCatch(...) 10. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 11. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 12. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 13. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 14. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 15. │ └─tidyselect:::eval_select_impl(...) 16. │ ├─tidyselect:::with_subscript_errors(...) 17. │ │ └─base::withCallingHandlers(...) 18. │ └─tidyselect:::vars_select_eval(...) 19. │ └─tidyselect:::as_indices_sel_impl(...) 20. │ └─tidyselect:::as_indices_impl(...) 21. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 22. │ └─vctrs::vec_as_location(...) 23. └─vctrs (local) ``() 24. └─vctrs:::stop_subscript_oob(...) 25. └─vctrs:::stop_subscript(...) 26. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:96:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% col_vals_not_null(all_of("z"))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(\"z\")`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:96:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% col_vals_not_null(all_of("z")) 7. └─pointblank::col_vals_not_null(., all_of("z")) 8. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:97:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% col_vals_not_null(all_of(nonexistent_col))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(nonexistent_col)`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:97:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% col_vals_not_null(all_of(nonexistent_col)) 7. └─pointblank::col_vals_not_null(., all_of(nonexistent_col)) 8. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:100:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% expect_col_vals_not_null(z)` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:100:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% expect_col_vals_not_null(z) 7. ├─pointblank::expect_col_vals_not_null(., z) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. ├─pointblank::col_vals_not_null(...) 11. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. │ ├─base::tryCatch(...) 13. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 14. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 15. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 16. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 17. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 18. │ └─tidyselect:::eval_select_impl(...) 19. │ ├─tidyselect:::with_subscript_errors(...) 20. │ │ └─base::withCallingHandlers(...) 21. │ └─tidyselect:::vars_select_eval(...) 22. │ └─tidyselect:::walk_data_tree(expr, data_mask, context_mask) 23. │ └─tidyselect:::as_indices_sel_impl(...) 24. │ └─tidyselect:::as_indices_impl(...) 25. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 26. │ └─vctrs::vec_as_location(...) 27. └─vctrs (local) ``() 28. └─vctrs:::stop_subscript_oob(...) 29. └─vctrs:::stop_subscript(...) 30. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:101:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% expect_col_vals_not_null("z")` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:101:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% expect_col_vals_not_null("z") 7. ├─pointblank::expect_col_vals_not_null(., "z") 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. ├─pointblank::col_vals_not_null(...) 11. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. │ ├─base::tryCatch(...) 13. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 14. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 15. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 16. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 17. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 18. │ └─tidyselect:::eval_select_impl(...) 19. │ ├─tidyselect:::with_subscript_errors(...) 20. │ │ └─base::withCallingHandlers(...) 21. │ └─tidyselect:::vars_select_eval(...) 22. │ └─tidyselect:::as_indices_sel_impl(...) 23. │ └─tidyselect:::as_indices_impl(...) 24. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 25. │ └─vctrs::vec_as_location(...) 26. └─vctrs (local) ``() 27. └─vctrs:::stop_subscript_oob(...) 28. └─vctrs:::stop_subscript(...) 29. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:102:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% expect_col_vals_not_null(all_of("z"))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(\"z\")`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:102:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% expect_col_vals_not_null(all_of("z")) 7. ├─pointblank::expect_col_vals_not_null(., all_of("z")) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. └─pointblank::col_vals_not_null(...) 11. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:103:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% expect_col_vals_not_null(all_of(nonexistent_col))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(nonexistent_col)`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:103:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% ... 7. ├─pointblank::expect_col_vals_not_null(., all_of(nonexistent_col)) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. └─pointblank::col_vals_not_null(...) 11. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:106:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% test_col_vals_not_null(z)` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:106:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% test_col_vals_not_null(z) 7. ├─pointblank::test_col_vals_not_null(., z) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. ├─pointblank::col_vals_not_null(...) 11. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. │ ├─base::tryCatch(...) 13. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 14. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 15. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 16. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 17. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 18. │ └─tidyselect:::eval_select_impl(...) 19. │ ├─tidyselect:::with_subscript_errors(...) 20. │ │ └─base::withCallingHandlers(...) 21. │ └─tidyselect:::vars_select_eval(...) 22. │ └─tidyselect:::walk_data_tree(expr, data_mask, context_mask) 23. │ └─tidyselect:::as_indices_sel_impl(...) 24. │ └─tidyselect:::as_indices_impl(...) 25. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 26. │ └─vctrs::vec_as_location(...) 27. └─vctrs (local) ``() 28. └─vctrs:::stop_subscript_oob(...) 29. └─vctrs:::stop_subscript(...) 30. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:107:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% test_col_vals_not_null("z")` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:107:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% test_col_vals_not_null("z") 7. ├─pointblank::test_col_vals_not_null(., "z") 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. ├─pointblank::col_vals_not_null(...) 11. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. │ ├─base::tryCatch(...) 13. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 14. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 15. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 16. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 17. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 18. │ └─tidyselect:::eval_select_impl(...) 19. │ ├─tidyselect:::with_subscript_errors(...) 20. │ │ └─base::withCallingHandlers(...) 21. │ └─tidyselect:::vars_select_eval(...) 22. │ └─tidyselect:::as_indices_sel_impl(...) 23. │ └─tidyselect:::as_indices_impl(...) 24. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 25. │ └─vctrs::vec_as_location(...) 26. └─vctrs (local) ``() 27. └─vctrs:::stop_subscript_oob(...) 28. └─vctrs:::stop_subscript(...) 29. └─rlang::abort(...) ── Failure ('test-tidyselect_fails_safely.R:108:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% test_col_vals_not_null(all_of("z"))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(\"z\")`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:108:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% test_col_vals_not_null(all_of("z")) 7. ├─pointblank::test_col_vals_not_null(., all_of("z")) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. └─pointblank::col_vals_not_null(...) 11. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:109:3'): tidyselect errors *are* immediate for assertion/expectation/test ── `small_table %>% test_col_vals_not_null(all_of(nonexistent_col))` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "\nCaused by error in `col_vals_not_null()`:\nℹ In argument: `all_of(nonexistent_col)`.\nCaused by error in `all_of()`:\n! Can't subset elements that don't exist.\n✖ Element `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:109:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─small_table %>% ... 7. ├─pointblank::test_col_vals_not_null(., all_of(nonexistent_col)) 8. │ └─... %>% .$validation_set 9. ├─pointblank::interrogate(.) 10. └─pointblank::col_vals_not_null(...) 11. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 12. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Failure ('test-tidyselect_fails_safely.R:116:3'): tidyselect errors cannot be downgraded in assertion/expectation on table ── `{ ... }` threw an error with unexpected message. Expected match: "Can't subset columns that don't exist." Actual message: "Can't select columns that don't exist.\n✖ Column `z` doesn't exist." Backtrace: ▆ 1. ├─testthat::expect_error(...) at test-tidyselect_fails_safely.R:116:3 2. │ └─testthat:::quasi_capture(...) 3. │ ├─testthat (local) .capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─... %>% col_vals_not_null(b) at test-tidyselect_fails_safely.R:117:5 7. ├─pointblank::col_vals_not_null(., b) 8. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 9. │ └─pointblank:::apply_preconditions_for_cols(x, preconditions) 10. │ └─pointblank:::is_ptblank_agent(x) 11. ├─pointblank::col_vals_not_null(., z, actions = warn_on_fail()) 12. │ └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 13. │ ├─base::tryCatch(...) 14. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 15. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 16. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 17. │ └─pointblank:::resolve_columns_internal(tbl, var_expr, ..., call = call) 18. │ └─tidyselect::eval_select(var_expr, tbl, error_call = call, ...) 19. │ └─tidyselect:::eval_select_impl(...) 20. │ ├─tidyselect:::with_subscript_errors(...) 21. │ │ └─base::withCallingHandlers(...) 22. │ └─tidyselect:::vars_select_eval(...) 23. │ └─tidyselect:::walk_data_tree(expr, data_mask, context_mask) 24. │ └─tidyselect:::as_indices_sel_impl(...) 25. │ └─tidyselect:::as_indices_impl(...) 26. │ └─tidyselect:::chr_as_locations(x, vars, call = call, arg = arg) 27. │ └─vctrs::vec_as_location(...) 28. └─vctrs (local) ``() 29. └─vctrs:::stop_subscript_oob(...) 30. └─vctrs:::stop_subscript(...) 31. └─rlang::abort(...) ── Error ('test-tidyselect_fails_safely_batch.R:50:5'): `col_*()`s show expected column selection failure/success behavior ── Error: Caused by error in `col_vals_lt()`: ℹ In argument: `all_of(mixed_cols)`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Element `z` doesn't exist. Backtrace: ▆ 1. ├─agent %>% col_vals_lt({{ select_expr }}, value = 5) %>% ... at test-tidyselect_fails_safely_batch.R:61:5 2. ├─pointblank (local) check_behaviors(., expr_name) 3. │ ├─base::suppressMessages(interrogate(agent)) at test-tidyselect_fails_safely_batch.R:50:5 4. │ │ └─base::withCallingHandlers(...) 5. │ └─pointblank::interrogate(agent) 6. └─pointblank::col_vals_lt(...) 7. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions) 8. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Error ('test-tidyselect_fails_safely_batch.R:110:5'): `rows_*()`s show expected column selection failure/success behavior ── Error: Caused by error in `rows_distinct()`: ℹ In argument: `all_of(mixed_cols)`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Element `z` doesn't exist. Backtrace: ▆ 1. ├─agent %>% rows_distinct({{ select_expr }}) %>% ... at test-tidyselect_fails_safely_batch.R:121:5 2. ├─pointblank (local) check_behaviors(., expr_name) 3. │ ├─base::suppressMessages(interrogate(agent)) at test-tidyselect_fails_safely_batch.R:110:5 4. │ │ └─base::withCallingHandlers(...) 5. │ └─pointblank::interrogate(agent) 6. └─pointblank::rows_distinct(...) 7. └─pointblank:::resolve_columns(x = x, var_expr = columns, preconditions = NULL) 8. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) ── Error ('test-tidyselect_fails_safely_batch.R:146:5'): `col_exists()`s show expected column selection failure/success behavior ── Error: Caused by error in `col_exists()`: ℹ In argument: `all_of(mixed_cols)`. Caused by error in `all_of()`: ! Can't subset elements that don't exist. ✖ Element `z` doesn't exist. Backtrace: ▆ 1. ├─agent %>% col_exists({{ select_expr }}) %>% ... at test-tidyselect_fails_safely_batch.R:157:5 2. ├─pointblank (local) check_behaviors(., expr_name) 3. │ ├─base::suppressMessages(interrogate(agent)) at test-tidyselect_fails_safely_batch.R:146:5 4. │ │ └─base::withCallingHandlers(...) 5. │ └─pointblank::interrogate(agent) 6. └─pointblank::col_exists(...) 7. ├─base::tryCatch(...) 8. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 9. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 10. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 11. └─pointblank:::resolve_columns(...) 12. └─rlang::cnd_signal(rlang::error_cnd("resolve_eval_err", parent = out)) [ FAIL 19 | WARN 0 | SKIP 0 | PASS 1540 ] Error: Test failures Execution halted