Adds inst/extdata/fixture_corpus/ — a 3.6 MB two-year (2019/2020) slice of the published corpus (OH+VT+WY fixture from cog_pipeline test profile plus all 50 states). Includes canonical_fips_xwalk.parquet, summary_categories.parquet, docs/, and a trimmed manifest.json. setup.R now points USCOGDATA_URL at the bundled fixture automatically, bypassing HTTP / Nextcloud entirely. DuckDB reads local parquet via the existing .is_local_path() fast-path in manifest.R; no httpfs required. session is reset between test files via withr::defer(cog_close()). helper-fixture.R gains fixture_corpus_path(), a richer skip_if_no_corpus() that checks the bundled fixture first, and with_fixture_corpus() for tests that need explicit session isolation. test-spending.R: adjust the inflate-column test to use 2019 (fixture year) instead of 2015 (absent from fixture). Result: 181 PASS / 0 FAIL / 0 SKIP — all tests run against real parquet data with real DuckDB queries and no network dependency.
14 lines
563 B
R
14 lines
563 B
R
# tests/testthat/setup.R
|
|
# Priority: bundled fixture > USCOGDATA_FIXTURE_URL env var > whatever is already set.
|
|
local({
|
|
p <- system.file("extdata/fixture_corpus", package = "uscogdata")
|
|
if (nzchar(p) && file.exists(file.path(p, "manifest.json"))) {
|
|
Sys.setenv(USCOGDATA_URL = paste0(p, "/"))
|
|
} else if (nzchar(Sys.getenv("USCOGDATA_FIXTURE_URL", ""))) {
|
|
Sys.setenv(USCOGDATA_URL = Sys.getenv("USCOGDATA_FIXTURE_URL"))
|
|
}
|
|
})
|
|
|
|
# Reset DuckDB session between test files so each file starts clean.
|
|
withr::defer(uscogdata:::cog_close(), teardown_env())
|