MyNixOS website logo
Description

Download Indicators from UNICEF Data Warehouse.

An R client to fetch SDMX (Statistical Data and Metadata eXchange) CSV series from the UNICEF Data Warehouse <https://data.unicef.org/>. Part of a trilingual suite also available for 'Python' and 'Stata'. Features include automatic pagination, caching with memoisation, country name lookups, metadata versioning (vintages), and comprehensive indicator support for SDG (Sustainable Development Goals) monitoring.

API Response Fixtures

This directory contains mock API response files used for testing across all language implementations (Python, Stata, R, etc.).

Purpose

These files simulate responses from the UNICEF SDMX API without requiring actual network requests. This allows tests to:

  • Run without internet connectivity
  • Avoid API rate limits and 403 errors
  • Execute quickly (no network latency)
  • Work in CI/CD environments
  • Produce deterministic results

Files

Dataflow List Endpoint

dataflows.xml

  • SDMX 2.1 XML response listing available dataflows
  • Used by: List dataflows functionality
  • Endpoint: GET /dataflow/UNICEF
  • Contains: CME, NUTRITION, MNCH, GLOBAL_DATAFLOW

Data Retrieval Endpoints

cme_albania_valid.csv

  • Valid CME indicator data for Albania (ALB)
  • Indicator: CME_MRY0T4 (Under-5 mortality rate)
  • Years: 2020-2022
  • Used by: Valid indicator tests

cme_usa_valid.csv

  • Valid CME indicator data for USA
  • Indicator: CME_MRY0T4
  • Years: 2020-2021
  • Used by: Fallback and multi-country tests

empty_response.csv

  • Empty CSV with headers only (no data rows)
  • Used by: Invalid indicator and 404 fallback tests
  • Simulates: Indicator not found or no data available

nutrition_multi_country.csv

  • Nutrition stunting data for 3 countries (IND, ETH, BGD)
  • Indicator: NT_ANT_HAZ_NE2 (Stunting prevalence)
  • Includes AGE disaggregation (Y0T4)
  • Used by: Multi-country and disaggregation tests

cme_disaggregated_sex.csv

  • CME data for Brazil with sex disaggregation
  • Indicator: CME_MRY0T4, SEX: _T, M, F
  • Years: 2020-2021
  • Used by: Sex disaggregation and cross-language validation tests

vaccination_multi_indicator.csv

  • Two vaccination indicators for 2 countries (GHA, KEN)
  • Indicators: IM_DTP3, IM_MCV1
  • Used by: Multi-indicator and cross-language validation tests

Usage

Python (pytest)

# conftest.py reads these files
import pathlib

fixtures_dir = pathlib.Path(__file__).parent.parent.parent / "tests" / "fixtures" / "api_responses"

@pytest.fixture
def mock_csv_valid_cme():
    return (fixtures_dir / "cme_albania_valid.csv").read_text()

Stata

* From stata/tests/ directory
local root_dir = subinstr("`c(pwd)'", "\stata\tests", "", .)
local fixtures_dir "`root_dir'/tests/fixtures/api_responses"

* Load fixture file
import delimited "`fixtures_dir'/cme_albania_valid.csv", clear

* Verify data
assert ref_area[1] == "ALB"
assert obs_value[1] == 8.5

Run Stata tests:

cd stata/tests
stata-mp -b do run_tests.do

See: stata/tests/README.md

R

# Read fixture file
fixtures_dir <- file.path("tests", "fixtures", "api_responses")
data <- read.csv(file.path(fixtures_dir, "cme_albania_valid.csv"))

Maintenance

When updating these fixtures:

  1. Ensure CSV headers match actual API response schema
  2. Use realistic data values for the indicator type
  3. Test across all language implementations
  4. Update documentation if response structure changes

Reference

  • UNICEF SDMX API: https://data.unicef.org/sdmx-api-documentation/
  • Mock Design Documentation: ../mock_design/
Metadata

Version

2.3.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows