[pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.446898360-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447729011-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447741271-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447746191-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447749631-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447753051-05:00 COPY . /prsrc [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447756751-05:00 WORKDIR /prsrc [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447760221-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447763621-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447766991-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-z9d9t-live-build-pod/step-prepare-dockerfile] 2026-07-17T15:29:31.447770681-05:00 RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.604697870-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.604731740-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.643093889-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.643111629-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648144911-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648159661-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648167111-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648174981-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648179531-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648303511-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.648560281-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.688605831-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:267d4f0b44acee0e791a13249d5f4ffcea8c056bad96f13e04cfbfd421312d3c... [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.707711016-05:00 INFO[0000] No cached layer found for cmd RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:31.707722926-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.201585910-05:00 INFO[0008] COPY . /prsrc [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.355504791-05:00 INFO[0008] Taking snapshot of files... [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.543846677-05:00 INFO[0008] WORKDIR /prsrc [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.543962777-05:00 INFO[0008] Cmd: workdir [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.543969087-05:00 INFO[0008] Changed working directory to /prsrc [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.544191467-05:00 INFO[0008] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.544219247-05:00 INFO[0008] RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.544235787-05:00 INFO[0008] Initializing snapshotter ... [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:40.544242047-05:00 INFO[0008] Taking snapshot of full filesystem... [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:46.448082565-05:00 INFO[0014] Cmd: /bin/sh [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:46.448113405-05:00 INFO[0014] Args: [-c pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest)] [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:46.448131785-05:00 INFO[0014] Running: [/bin/sh -c pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest)] [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:46.783183596-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:46.785078706-05:00 Installing build dependencies: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:48.723790828-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:48.724745858-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:48.845051782-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:48.846068202-05:00 Getting requirements to build editable: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.000653458-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.001851768-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.164266103-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.203889364-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.204650754-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.418155689-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.418744099-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=7fe57885401a6467c1bddafff9d8dde9b8654ce0ba3092c1b998b7248acfe029 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.418857009-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-sdq6yh80/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.420882459-05:00 Successfully built storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.421033269-05:00 Installing collected packages: storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.421146149-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.452811770-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.457054180-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.458421610-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.507573911-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.507774421-05:00 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.629501525-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.629576575-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:49.629583455-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:50.055431695-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:50.058329605-05:00 Installing build dependencies: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:51.948723899-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:51.949448239-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.056805479-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.057718329-05:00 Getting requirements to build editable: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.200872147-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.201899817-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.351545716-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.412979345-05:00 Requirement already satisfied: pandas>=1.5.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (3.0.3) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.413882135-05:00 Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (2.4.6) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.414781025-05:00 Requirement already satisfied: requests>=2.28.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (2.34.2) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.415591955-05:00 Requirement already satisfied: openpyxl>=3.0.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (3.1.5) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.416352445-05:00 Requirement already satisfied: anthropic>=0.25.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (0.117.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.417706765-05:00 Requirement already satisfied: psycopg>=3.1 in /usr/local/lib/python3.11/site-packages (from psycopg[binary,pool]>=3.1->storeminder==0.1.0) (3.3.4) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.419059465-05:00 Requirement already satisfied: boto3>=1.34 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.419858635-05:00 Requirement already satisfied: PyYAML>=6.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (6.0.3) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.579626603-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.652659052-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.665914282-05:00 Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (4.14.2) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.666742552-05:00 Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (1.9.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.667637612-05:00 Requirement already satisfied: docstring-parser<1,>=0.15 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (0.18.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.668563582-05:00 Requirement already satisfied: httpx<1,>=0.25.0 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (0.28.1) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.669326742-05:00 Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (0.16.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.671642442-05:00 Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (2.13.4) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.672211182-05:00 Requirement already satisfied: sniffio in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (1.3.1) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.672981502-05:00 Requirement already satisfied: typing-extensions<5,>=4.14 in /usr/local/lib/python3.11/site-packages (from anthropic>=0.25.0->storeminder==0.1.0) (4.16.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.676984452-05:00 Requirement already satisfied: botocore<1.44.0,>=1.43.51 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.677791212-05:00 Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.1.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.678595622-05:00 Requirement already satisfied: s3transfer<0.20.0,>=0.19.0 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (0.19.1) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.681261852-05:00 Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.11/site-packages (from openpyxl>=3.0.0->storeminder==0.1.0) (2.0.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.727353462-05:00 Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/site-packages (from pandas>=1.5.0->storeminder==0.1.0) (2.9.0.post0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.761978061-05:00 Requirement already satisfied: psycopg-binary==3.3.4 in /usr/local/lib/python3.11/site-packages (from psycopg[binary,pool]>=3.1->storeminder==0.1.0) (3.3.4) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.762773051-05:00 Requirement already satisfied: psycopg-pool in /usr/local/lib/python3.11/site-packages (from psycopg[binary,pool]>=3.1->storeminder==0.1.0) (3.3.1) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.790108261-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.803693101-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.805991941-05:00 Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (26.2) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.843200400-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.868936250-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.868974470-05:00 Requirement already satisfied: pygments>=2.7.2 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (2.20.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.874580930-05:00 Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.28.0->storeminder==0.1.0) (3.4.9) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.875594270-05:00 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.28.0->storeminder==0.1.0) (3.18) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.876533080-05:00 Requirement already satisfied: urllib3<3,>=1.26 in /usr/local/lib/python3.11/site-packages (from requests>=2.28.0->storeminder==0.1.0) (2.7.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.877283050-05:00 Requirement already satisfied: certifi>=2023.5.7 in /usr/local/lib/python3.11/site-packages (from requests>=2.28.0->storeminder==0.1.0) (2026.6.17) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.934713989-05:00 Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.11/site-packages (from httpx<1,>=0.25.0->anthropic>=0.25.0->storeminder==0.1.0) (1.0.9) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.940714579-05:00 Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.11/site-packages (from httpcore==1.*->httpx<1,>=0.25.0->anthropic>=0.25.0->storeminder==0.1.0) (0.16.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.964196919-05:00 Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.11/site-packages (from pydantic<3,>=1.9.0->anthropic>=0.25.0->storeminder==0.1.0) (0.7.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.965039479-05:00 Requirement already satisfied: pydantic-core==2.46.4 in /usr/local/lib/python3.11/site-packages (from pydantic<3,>=1.9.0->anthropic>=0.25.0->storeminder==0.1.0) (2.46.4) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.966227019-05:00 Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.11/site-packages (from pydantic<3,>=1.9.0->anthropic>=0.25.0->storeminder==0.1.0) (0.4.2) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:52.976144539-05:00 Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=1.5.0->storeminder==0.1.0) (1.17.0) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.036043828-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.086453617-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 8.2 MB/s eta 0:00:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.104484866-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.120609486-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.124866066-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.253571323-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.254208983-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.255093003-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.427885249-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.428602029-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=464c3d27fb9c21e2e9d3ca1be277c5ccdcca2d88f322645d7a49474414e2f07d [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.428744039-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-afdj21wr/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:53.430844649-05:00 Successfully built storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.172898030-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.368405533-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.405275352-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.406656922-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.561565456-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.717784431-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.717990901-05:00 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.881446455-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.881562825-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:54.881570855-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:55.042899859-05:00 INFO[0023] Taking snapshot of full filesystem... [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:56.844658654-05:00 INFO[0025] Pushing layer registry.storeminder.ai/images/cache:267d4f0b44acee0e791a13249d5f4ffcea8c056bad96f13e04cfbfd421312d3c to cache now [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:56.844867534-05:00 INFO[0025] Pushing image to registry.storeminder.ai/images/cache:267d4f0b44acee0e791a13249d5f4ffcea8c056bad96f13e04cfbfd421312d3c [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:56.962798717-05:00 INFO[0025] Pushed registry.storeminder.ai/images/cache@sha256:0a72eef65c907c6ee4a26ffbd727664ddedcd09858eb23fe1f3a55f1a7c687b5 [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:56.963677287-05:00 INFO[0025] Pushing image to registry.storeminder.ai/images/storeminder-report-live:5a807bf2960dae3e575bfc4c7901bd765a1ad76a [pod/analytics-report-live-z9d9t-live-build-pod/step-build-pr-image] 2026-07-17T15:29:57.255552827-05:00 INFO[0025] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:b36841950fbe0695e6903f5aa9c1789a5597bad725e73a82ee89f0275273d228 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:29:57.799721528-05:00 /tekton/scripts/script-2-wwtq7: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:29:57.891433221-05:00 job.batch/report-live-5a807bf created [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.571887918-05:00 ----- live Job logs (report-live-5a807bf) ----- [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973136900-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973162210-05:00 ============================= test session starts ============================== [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973167670-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973172090-05:00 cachedir: .pytest_cache [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973176550-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973180270-05:00 configfile: pyproject.toml [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973183910-05:00 plugins: anyio-4.14.2 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973187940-05:00 collecting ... collected 10 items [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973191500-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973195400-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973199150-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973203110-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973206850-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973210860-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973214490-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973218260-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973222420-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973226140-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973229750-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973233310-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973237640-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973241330-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973244890-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973248640-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973252660-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973256360-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973260040-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973263590-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973269450-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973273210-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973277300-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973280960-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973284580-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973288390-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973294040-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973297750-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973301450-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973305100-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973320890-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973323630-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973326060-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973328630-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973331040-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973333630-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973336100-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973346040-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973360350-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973398350-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973403930-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973407600-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973412080-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973417270-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973425640-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973430740-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973435290-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973438980-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973442650-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973446340-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973450040-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973453790-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973457480-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973461220-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973464910-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973468590-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973472320-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973476290-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973479880-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973483550-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973487300-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973490860-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973494600-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973498270-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973501950-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973505700-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973509310-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973512980-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973516650-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973520280-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973523980-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973534140-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973537970-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973541900-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973545530-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973556070-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973559420-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973562020-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973565050-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973567440-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973570070-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973572470-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973574910-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973577530-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973580040-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973582520-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973585070-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973587530-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973590030-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973592520-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973595000-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973597540-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973599980-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973602520-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973605010-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973607500-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973610150-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973612660-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973615120-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973617560-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973620010-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973622430-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973624860-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973627310-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973629950-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973632390-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973634830-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973637360-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973639740-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973642160-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973644620-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973647130-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973649650-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973652050-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973655370-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973658560-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973661090-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973663560-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973666600-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973669090-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973676330-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973679400-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973681940-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973684970-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973687520-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973690100-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973692470-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973694870-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973697280-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973699720-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973702200-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973704670-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973707250-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973709810-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973713130-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973715620-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973718140-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973720650-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973723120-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973725620-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973728190-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973730630-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973733080-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973735590-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973738250-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973740700-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973743200-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973745660-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973748400-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973750850-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973753410-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973756010-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973758510-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973760940-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973763460-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973765800-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973768260-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973773530-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973776100-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973778650-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973781040-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973784030-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973786610-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973789130-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973791600-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973798450-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973800960-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973803500-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973806020-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973808460-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973810900-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973813460-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973816060-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973818420-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973820890-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973823330-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973826260-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973828730-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973831280-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973833820-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973836360-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973838950-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973841460-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973844020-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973846520-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973849010-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973851490-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973854020-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973856520-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973859010-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973861490-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973864060-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973866590-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973869050-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973871540-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973874020-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973876540-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973879030-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973881669-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973884159-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973886639-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973889199-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973891599-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973894099-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973896579-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973899059-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973901669-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973904139-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973906609-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973909149-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973911619-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973918359-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973920899-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973923419-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973925899-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973928499-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973930969-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973933409-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973935849-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973938319-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973940729-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973943189-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973945589-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973948089-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973950559-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973953039-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973955669-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973958259-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973960749-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973963259-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973965759-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973968319-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973970839-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973973289-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973975809-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973978429-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973980909-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973983399-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973985879-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973988419-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973990899-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973993369-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973995809-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.973998359-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974003639-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974006269-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974008719-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974011199-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974013759-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974016139-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974018569-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974021049-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974023589-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974026059-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974028479-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974035229-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974037799-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974040279-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974042809-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974045329-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974047879-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974050359-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974052869-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974055329-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974057829-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974060289-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974062819-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974065189-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974067709-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974070189-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974072689-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974075179-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974077669-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974080329-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974082929-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974085389-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974087849-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974090359-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974092869-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974095349-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974097809-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974100259-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974102719-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974105229-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974107769-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974110239-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974112779-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974115269-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974117899-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974120429-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974122899-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974125379-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974127919-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974130309-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974132849-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974135339-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974137729-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974140149-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974142689-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974149449-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974151979-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974154429-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974156949-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974159449-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974163479-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974165989-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974168469-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974170979-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974173479-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974175999-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974178559-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974180999-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974183439-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974185909-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974188429-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974190969-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974193369-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974195789-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974198309-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974200779-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974203289-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974205849-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974208379-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974210949-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974213419-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974215909-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974218479-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974220969-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974223459-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974226009-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974231069-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974233639-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974236249-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974238969-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974241599-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974244069-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974246529-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974249029-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974251519-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974255889-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974258339-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974260909-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974263459-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974269959-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974272449-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974274959-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974277429-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974279919-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974282669-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974286339-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974290239-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974293829-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974297489-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974300769-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974304069-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974307349-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974310619-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974314069-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974317559-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974320929-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974324329-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974327569-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974330759-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974334009-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974347469-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974353799-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974357119-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974360799-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974364289-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974367639-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974370949-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974374449-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974377689-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974381259-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974384579-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974389939-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974393549-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974397129-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974400999-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974404779-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974408499-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974412009-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974415539-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974419069-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974424129-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974427659-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974431359-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974441909-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974445639-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974449459-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974452979-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974457009-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974460659-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974464299-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974467919-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974471479-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974475159-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974479159-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974483209-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974486389-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974488979-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974491469-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974493939-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974496399-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974498889-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974501509-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974503979-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974508549-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974510979-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974513589-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974515999-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974518439-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974520939-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974523539-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974526059-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974528699-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974535759-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974538449-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974541019-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974543559-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974546119-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974548659-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974551219-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974553719-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974556249-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974558739-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974561229-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974563689-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974566269-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974568799-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974571269-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974574869-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974582599-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974585239-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974587639-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974590109-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974592669-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974595069-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974598559-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974601109-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974603599-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974606189-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974608549-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974610989-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974613479-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974615949-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974618579-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974621079-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974623609-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974626099-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974628569-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974631099-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974633629-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974636099-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974638669-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974641099-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974643549-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974645949-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974648359-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974650899-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974653599-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974656129-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974658719-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974661229-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974663809-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974666299-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974668799-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974671279-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974673799-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974676409-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974678949-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974681459-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974683959-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974686429-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974688979-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974691459-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974698919-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974701449-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974703889-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974706359-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974708979-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974711409-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974713859-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974716339-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974718939-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974721429-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974723949-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974726819-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974729289-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974731739-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974734189-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974736679-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974739259-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974744449-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974747069-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974750159-05:00 ============================== 10 errors in 0.82s ============================== [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974752749-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974757219-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974761459-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974764039-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974766539-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974768959-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974771419-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974774029-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974776589-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974779099-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974781679-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974784249-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974787519-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974790479-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974793039-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974800949-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974803469-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974806019-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974808409-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974810969-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974813399-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974815879-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974818449-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974820959-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974823549-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974826149-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974828669-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974831349-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974833919-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974836439-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974839009-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974841479-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974843989-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974846519-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974849119-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974851699-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974854249-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974856749-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974859249-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974861739-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974864229-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974866749-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974869249-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974871869-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974874289-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974877989-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974880539-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974883069-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974885569-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974888029-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974890539-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974893149-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974896889-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974899479-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974902019-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974904589-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974911409-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974913969-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974917009-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974919579-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974922179-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974924729-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974927139-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974929679-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974932079-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974934549-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974941419-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974944059-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974946599-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974949119-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974951639-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974954819-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974957919-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974960499-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974963389-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974965859-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974968369-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974970899-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974973519-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974976069-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974978629-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974981099-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974983669-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974986159-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974988639-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974991269-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974993769-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974996369-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.974998799-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975001379-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975003989-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975006499-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975008969-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975011409-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975013849-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975016519-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975019019-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975025709-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975028309-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975030779-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975033299-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975035769-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975038289-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975040749-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975043239-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975045769-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975048239-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975050709-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975053129-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975055609-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975058139-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975060659-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975063239-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975065809-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975068499-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975071049-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975073559-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975076029-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975078549-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975081009-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975083589-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975086089-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975089169-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975091719-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975094279-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975096749-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975099219-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975101699-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975104229-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975106689-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975109239-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975111819-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975114209-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975118009-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975120599-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975123129-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975125609-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975128009-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975137629-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975152359-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975163489-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975167659-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975175029-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975177779-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975181349-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975183819-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975186289-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975189009-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975191519-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975194079-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975196549-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975199389-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975201859-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975204399-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975207249-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975209809-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975212459-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975215019-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975217659-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975220209-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975222799-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975226319-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975228859-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975231399-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975234219-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975236749-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975239239-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975241719-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975244279-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975246769-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975249279-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975251819-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975254289-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975256909-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975259449-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975263039-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975265549-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975269299-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975279859-05:00 def daily_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975282549-05:00 > return _run("daily") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975285029-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975287459-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975289969-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975292559-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975295129-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975297639-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975300209-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975302939-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975305479-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975307959-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975310439-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975312949-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975315539-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975319719-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975322189-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975324779-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975327199-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975329759-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975332279-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975334859-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975343799-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975352949-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975356559-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975360469-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975364179-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975367789-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975371589-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975375129-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975378809-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975382509-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975385059-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975387519-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975390039-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975392589-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975395049-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975397549-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975400079-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975402709-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975405259-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975411389-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975413929-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975417209-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975425869-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975428499-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975430989-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975433389-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975436129-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975438829-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975441339-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975443899-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975446459-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975449019-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975451609-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975454409-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975456869-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975459479-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975461939-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975464619-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975467049-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975469639-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975472099-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975474599-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975477419-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975479949-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975482469-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975485089-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975487669-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975490339-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975492959-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975495479-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975497989-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975500559-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975503119-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975505639-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975508159-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975510739-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975513369-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975516229-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975518689-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975521189-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975523689-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975526169-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975528749-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975536039-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975538579-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975541149-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975543699-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975546199-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975548819-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975551269-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975553849-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975556499-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975559029-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975561539-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975564159-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975566699-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975569299-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975571769-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975574239-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975576789-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975579279-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975581769-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975584159-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975588889-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975591399-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975593919-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975596459-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975599049-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975601659-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975604229-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975606779-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975611749-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975614359-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975616869-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975619549-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975622029-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975624589-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975627079-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975629639-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975632139-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975635349-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975637909-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975640489-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975643039-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975645599-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975652859-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975655489-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975659119-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975662799-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975665469-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975668149-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975670689-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975673209-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975675649-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975678319-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975680869-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975683409-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975685959-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975688609-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975691199-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975693669-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975696209-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975698799-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975701399-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975703969-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975706529-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975709029-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975711619-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975714019-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975716489-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975719039-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975721549-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975724149-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975726739-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975729379-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975731909-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975734539-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975737059-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975739589-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975742049-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975744639-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975747149-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975749759-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975752319-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975754879-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975762059-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975764589-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975767179-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975769699-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975772249-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975774899-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975778169-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975780619-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975783249-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975785959-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975788499-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975791319-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975793739-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975796439-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975799059-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975803009-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975805789-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975808349-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975810849-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975816439-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975819179-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975821729-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975824219-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975826759-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975829369-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975831769-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975834239-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975836639-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975839839-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975842439-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975844929-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975847849-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975850459-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975853039-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975855829-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975858359-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975861009-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975863549-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975866019-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975868569-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975871139-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975878169-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975881439-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975883959-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975886549-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975889059-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975891549-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975894129-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975896669-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975899199-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975902229-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975904659-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975907349-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975909919-05:00 def weekly_report(): [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975912419-05:00 > return _run("weekly") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975916559-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975918999-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975921509-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975924089-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975926629-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975929579-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975932139-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975934639-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975937149-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975939629-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975942119-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975945179-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975947699-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975950419-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975952839-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975955319-05:00 store_id = 'Fastime' [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975957719-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975960219-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975962749-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975965269-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975967799-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975970439-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975973029-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975975529-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975978059-05:00 """ [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975980559-05:00 base = _require_base() [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975983039-05:00 try: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975991289-05:00 import requests [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975993899-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975996439-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.975999019-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976001509-05:00 raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976004099-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976006589-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976009139-05:00 if r.status_code == 404: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976011659-05:00 return None [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976014129-05:00 if r.status_code != 200: [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976016669-05:00 > raise ManageApiError( [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976019149-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976021769-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976024169-05:00 [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976032339-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:18.976035069-05:00 ----- end live Job logs ----- [pod/analytics-report-live-z9d9t-live-build-pod/step-run-live] 2026-07-17T15:30:19.004843770-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-z9d9t-live-build-pod/prepare] 2026-07-17T15:29:25.068704206-05:00 2026/07/17 20:29:25 Entrypoint initialization [pod/analytics-report-live-z9d9t-live-build-pod/place-scripts] 2026-07-17T15:29:26.129977051-05:00 2026/07/17 20:29:26 Decoded script /tekton/scripts/script-0-jrwmn [pod/analytics-report-live-z9d9t-live-build-pod/place-scripts] 2026-07-17T15:29:26.151719147-05:00 2026/07/17 20:29:26 Decoded script /tekton/scripts/script-2-wwtq7