[pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.952462758-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953529882-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953554282-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953558312-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953561542-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953564532-05:00 COPY . /prsrc [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953567512-05:00 WORKDIR /prsrc [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953570762-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953573792-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953577062-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-lvgn6-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:20:23.953581392-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.155802903-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.155849072-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.177318818-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.177348758-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183474275-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183493705-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183501215-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183516765-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183522975-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183605034-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.183858293-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.255670469-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:4db19174da77b4c1ca6a6f8e95e738b23ac08e634c4abf43ddbea3c8310b3725... [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.297327747-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:24.297359747-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.427036207-05:00 INFO[0011] COPY . /prsrc [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.657977383-05:00 INFO[0011] Taking snapshot of files... [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952257970-05:00 INFO[0011] WORKDIR /prsrc [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952281440-05:00 INFO[0011] Cmd: workdir [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952286800-05:00 INFO[0011] Changed working directory to /prsrc [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952712398-05:00 INFO[0011] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952743498-05:00 INFO[0011] 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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952749248-05:00 INFO[0011] Initializing snapshotter ... [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:35.952753398-05:00 INFO[0011] Taking snapshot of full filesystem... [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:45.344189322-05:00 INFO[0021] Cmd: /bin/sh [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:45.344372921-05:00 INFO[0021] 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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:45.344414761-05:00 INFO[0021] 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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:45.862692258-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:45.866139560-05:00 Installing build dependencies: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.565807516-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.566563872-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.707418188-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.708562722-05:00 Getting requirements to build editable: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.948124490-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:48.952862255-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.222272223-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.287020477-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.288046611-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.522274218-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.523038224-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=8251b80d89bbd71cc988bd5da46c5020d0511a69439a13a4adbe5f9b2e7164ae [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.523208683-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-d76glc0s/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.526108947-05:00 Successfully built storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.526327106-05:00 Installing collected packages: storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.526497865-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.577739101-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.583457251-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.587608528-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.663142784-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.663373263-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.789479688-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.789499998-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:49.789507848-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:50.278740210-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:50.281116827-05:00 Installing build dependencies: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:52.679969448-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:52.680838983-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:52.826114586-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:52.827256029-05:00 Getting requirements to build editable: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.013148704-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.014762176-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.275668519-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.364193535-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.365947146-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.367595087-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.368814430-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.370286642-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.372323412-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.374527960-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.375552724-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.555767210-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.619806207-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.644925032-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.646500984-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.648366174-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.650108914-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.651556367-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.656076563-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.657799123-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.659505584-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.666772685-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.668198698-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.669561860-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.674662163-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.773266605-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.813078362-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.814047647-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.850251743-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.864550406-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.866805114-05:00 Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (25.0) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.897305621-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.910939968-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.913681593-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.921965529-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.923010804-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.923902949-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.924692315-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.980918264-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:53.988287784-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.014202775-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.015160590-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.016397564-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.028271870-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.160952810-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.360162713-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 1.5 MB/s eta 0:00:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.380726343-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.400142779-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.412310854-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.561940863-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.561987063-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.562001593-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.777889947-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.778827092-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=623a3053ba03791c78b67f284456cece72827a9b4f046a7cb622dcfc0eb99df9 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.779030241-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-58140fzq/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:54.781611217-05:00 Successfully built storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:55.849522889-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.138636121-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.191429539-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.193462678-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.420281983-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.653060377-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.653309535-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-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.795235845-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.795268145-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.795276415-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:56.933100717-05:00 INFO[0032] Taking snapshot of full filesystem... [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:59.388561447-05:00 INFO[0035] Pushing layer registry.storeminder.ai/images/cache:4db19174da77b4c1ca6a6f8e95e738b23ac08e634c4abf43ddbea3c8310b3725 to cache now [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:59.388796646-05:00 INFO[0035] Pushing image to registry.storeminder.ai/images/cache:4db19174da77b4c1ca6a6f8e95e738b23ac08e634c4abf43ddbea3c8310b3725 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:59.515556427-05:00 INFO[0035] Pushed registry.storeminder.ai/images/cache@sha256:eb6ac9ee6f3c09e921dbc39a8c9c8b05b68ec6cd2da90e9f63bbbd24fdc50b2a [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:59.516230573-05:00 INFO[0035] Pushing image to registry.storeminder.ai/images/storeminder-report-live:469c2ebdfd58deeed9801aa59826767d1b077dc2 [pod/analytics-report-live-lvgn6-live-build-pod/step-build-pr-image] 2026-07-19T21:20:59.692861177-05:00 INFO[0035] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:b7f2ac941c0e4003fd8a1cb687e52828725e8d481b83e201ffe756007e12fa2c [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:00.498508942-05:00 /tekton/scripts/script-2-lplb8: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:00.720143214-05:00 job.batch/report-live-469c2eb created [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.249186207-05:00 ----- live Job logs (report-live-469c2eb) ----- [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460301535-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460336815-05:00 ============================= test session starts ============================== [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460403835-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460413985-05:00 cachedir: .pytest_cache [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460421925-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460427365-05:00 configfile: pyproject.toml [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460433255-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460438805-05:00 collecting ... collected 10 items [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460443715-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460449545-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460455854-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460461474-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460468384-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460474844-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460480584-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460486404-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460493054-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460498644-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460504624-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460509964-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460516454-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460522234-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460527884-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460534084-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460539664-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460545224-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460550894-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460557044-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460562264-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460568234-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460574724-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460581174-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460586874-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460592174-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460598084-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460603724-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460609174-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460628204-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460632374-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460641954-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460645863-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460649693-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460653513-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460657073-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460661063-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460664903-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460668953-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460672763-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460681133-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460685343-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460689283-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460693453-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460697913-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460701833-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460705593-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460710013-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460713903-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460718023-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460721973-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460726213-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460730083-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460734773-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460738223-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460741713-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460745443-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460749803-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460753053-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460756393-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460760833-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460764463-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460768223-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460773083-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460776913-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460780663-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460784273-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460788043-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460791973-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460795753-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460799893-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460814943-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460819263-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460823093-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460835152-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460839772-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460843352-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460847242-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460851352-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460854932-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460858692-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460862372-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460866032-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460869882-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460873452-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460877402-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460881352-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460885312-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460889312-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460892902-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460896822-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460900492-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460904442-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460908142-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460912002-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460915542-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460919852-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460923582-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460927622-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460931452-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460935332-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460939472-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460943662-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460947782-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460951672-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460955312-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460959192-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460963002-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460966502-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460970522-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460974312-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460978192-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460981882-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460985632-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460989192-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460993032-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.460996652-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461000702-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461004552-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461016242-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461020651-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461024521-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461028661-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461032561-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461036321-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461040271-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461043991-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461047731-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461051551-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461055991-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461060311-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461063841-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461067691-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461072151-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461076301-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461080481-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461084341-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461088111-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461091971-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461096091-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461099781-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461103841-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461107571-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461111501-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461115271-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461119361-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461123081-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461127091-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461130821-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461134441-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461138171-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461142161-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461145691-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461149531-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461153271-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461157081-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461160871-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461171811-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461175731-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461179931-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461183511-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461187421-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461192301-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461204411-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461208250-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461212330-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461215900-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461219740-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461225360-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461229190-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461233450-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461237060-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461241000-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461244940-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461248910-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461252830-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461256450-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461260280-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461264010-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461268640-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461272630-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461276410-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461280120-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461283920-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461287730-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461291650-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461295440-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461299530-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461303470-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461307190-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461310850-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461314780-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461318910-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461322650-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461326490-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461330410-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461334480-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461359590-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461366440-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461370300-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461373990-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461378210-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461381560-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461385450-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461390140-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461394059-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461397809-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461401459-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461405099-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461415529-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461419049-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461422879-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461426839-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461430819-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461434239-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461438139-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461442249-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461446209-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461449979-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461453799-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461457199-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461461029-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461464299-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461468389-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461472089-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461476019-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461479759-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461483609-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461487509-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461491579-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461495489-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461499039-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461502819-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461506639-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461510709-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461514469-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461518889-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461522539-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461526389-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461530049-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461533609-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461537109-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461540679-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461544139-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461550719-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461554479-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461558119-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461561809-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461566569-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461570239-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461575369-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461579379-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461590568-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461594188-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461597558-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461601128-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461604858-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461608588-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461612238-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461615858-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461619548-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461623118-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461626678-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461630238-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461633928-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461637388-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461640958-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461644398-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461647828-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461651198-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461654738-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461658618-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461662148-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461665878-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461669508-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461673328-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461676988-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461680658-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461684498-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461688338-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461691958-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461695558-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461699398-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461703008-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461706568-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461710548-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461714258-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461717878-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461721728-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461725678-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461729398-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461733198-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461736958-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461740438-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461744088-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461747828-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461757478-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461761248-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461764798-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461768418-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461772367-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461775717-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461779537-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461783327-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461787447-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461791157-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461795347-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461799207-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461802837-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461806437-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461810067-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461813577-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461817147-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461820727-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461824047-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461827567-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461830947-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461835287-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461838897-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461842737-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461846637-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461850307-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461853907-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461857757-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461861377-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461865217-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461868817-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461872297-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461875947-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461879847-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461890707-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461894727-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461898327-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461902067-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461907027-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461910927-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461914527-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461918267-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461921847-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461925547-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461936487-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461940117-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461943717-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461947097-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461950687-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461954407-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461958136-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461961836-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461965346-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461968966-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461972786-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461976326-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461980156-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461983956-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461987786-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461991816-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461995716-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.461999276-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462003066-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462006576-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462010376-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462013686-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462017246-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462020676-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462024296-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462027816-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462031356-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462035246-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462039826-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462043776-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462047476-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462051216-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462054946-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462058456-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462062156-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462066296-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462069966-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462073576-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462077656-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462081506-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462085396-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462089436-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462093446-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462097516-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462101486-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462105536-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462117776-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462121666-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462125606-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462129596-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462132966-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462136786-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462140416-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462144286-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462147915-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462151485-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462155025-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462159355-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462163085-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462167395-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462171255-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462175885-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462179755-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462183775-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462187315-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462191065-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462194715-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462198595-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462202155-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462206685-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462210265-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462213885-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462218295-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462221925-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462226325-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462230135-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462241815-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462245805-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462249885-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462253535-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462257535-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462261515-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462265515-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462269235-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462273825-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462277575-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462281645-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462285405-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462289085-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462292875-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462303495-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462307175-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462311275-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462315555-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462319285-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462322875-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462326825-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462330145-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462334244-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462344464-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462351574-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462355474-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462359114-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462363224-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462367174-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462370874-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462374694-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462380434-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462384194-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462388164-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462391734-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462395854-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462399634-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462403504-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462407354-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462411004-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462414604-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462418254-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462422014-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462425754-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462429484-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462433404-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462437474-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462441494-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462445844-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462449744-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462453444-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462457284-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462460934-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462464924-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462468734-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462472454-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462476354-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462480054-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462490194-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462493724-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462497764-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462501354-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462507134-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462511044-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462515263-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462518653-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462522393-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462526273-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462530353-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462533873-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462538423-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462542163-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462545973-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462549633-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462553583-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462557263-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462561183-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462567813-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462571643-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462575523-05:00 ============================== 10 errors in 0.82s ============================== [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462579343-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462583573-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462588343-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462592003-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462595933-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462599363-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462603303-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462607103-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462611443-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462615163-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462620153-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462623703-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462627483-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462637933-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462641863-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462645613-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462649623-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462653483-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462657133-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462660963-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462664543-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462668443-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462672433-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462676333-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462680063-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462684013-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462687933-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462691913-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462695622-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462699562-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462703472-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462707342-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462711202-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462715032-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462718682-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462722412-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462725932-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462730102-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462733982-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462737912-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462741412-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462745142-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462748972-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462752662-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462756342-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462760732-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462764512-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462768332-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462772042-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462775542-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462779442-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462783032-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462786772-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462790592-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462800482-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462804472-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462808152-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462812012-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462815762-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462819542-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462823222-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462827002-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462830572-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462834222-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462837842-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462841592-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462852972-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462856832-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462861002-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462865552-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462869292-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462874412-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462878801-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462882791-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462886501-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462890391-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462894361-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462898301-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462902041-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462905901-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462909721-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462913641-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462917361-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462921271-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462925201-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462928841-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462932701-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462936501-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462940151-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462943891-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462947961-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462951551-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462955471-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462958841-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462962951-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462973971-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462977731-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462981501-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462986071-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462989811-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462993521-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.462997851-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463001381-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463005241-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463009341-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463013361-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463017021-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463020981-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463024601-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463028421-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463032221-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463036151-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463040081-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463043991-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463047871-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463051641-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463055461-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463059020-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463062930-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463066700-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463070670-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463074320-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463078070-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463081600-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463085470-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463088950-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463092710-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463096360-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463100000-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463103840-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463107630-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463111620-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463115280-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463119680-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463123610-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463127510-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463141820-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463145360-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463149370-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463181090-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463200480-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463204970-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463218660-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463224100-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463229940-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463234940-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463239899-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463244009-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463247609-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463251069-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463255479-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463259759-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463263329-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463266819-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463271199-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463274989-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463278729-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463282889-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463286829-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463290459-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463294199-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463298699-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463302339-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463305939-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463309899-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463313649-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463317619-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463321429-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463325209-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463328929-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463332899-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463336579-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463355519-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463363459-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463367619-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463372599-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463376119-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463381159-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463400309-05:00 def daily_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463404209-05:00 > return _run("daily") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463407919-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463411469-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463415509-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463419569-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463423578-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463428018-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463432018-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463436028-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463439988-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463444998-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463449008-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463452638-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463456798-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463460548-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463463928-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463467388-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463470618-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463474058-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463478188-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463481848-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463486078-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463489908-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463493668-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463497708-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463501258-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463504798-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463508438-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463511878-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463516028-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463520238-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463524818-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463529108-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463532928-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463538548-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463542308-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463545958-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463549708-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463553748-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463557688-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463572388-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463587208-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463591328-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463595258-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463599018-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463602668-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463606148-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463609837-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463613767-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463617197-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463624027-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463628167-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463632097-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463635937-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463639607-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463643727-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463647637-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463651567-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463656717-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463660377-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463664357-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463667817-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463671537-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463675537-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463679557-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463683247-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463687147-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463691347-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463695727-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463699377-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463703187-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463706977-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463710687-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463714537-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463718177-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463721927-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463725497-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463729337-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463733367-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463737047-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463740907-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463744537-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463748087-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463757777-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463761637-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463765057-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463768937-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463772607-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463776297-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463779827-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463783287-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463787157-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463790777-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463794547-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463798886-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463802736-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463806736-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463810446-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463814066-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463817576-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463823266-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463827096-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463831056-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463834616-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463839086-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463842926-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463846616-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463850536-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463855216-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463858706-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463861486-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463864196-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463870216-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463874716-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463878416-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463882356-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463886326-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463890216-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.463894176-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467399027-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467406307-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467411997-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467416207-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467430917-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467435277-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467438927-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467442607-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467446617-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467450597-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467454167-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467458957-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467464317-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467468187-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467472237-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467475847-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467480037-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467484137-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467487877-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467491587-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467496027-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467499557-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467503187-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467506817-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467510357-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467514167-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467518707-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467522347-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467525837-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467529617-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467533127-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467536667-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467540337-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467544197-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467547847-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467551836-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467555706-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467559616-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467563306-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467567066-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467570626-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467574446-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467578086-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467582146-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467586146-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467597686-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467602116-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467618626-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467622656-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467626626-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467630606-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467634386-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467638076-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467641726-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467645266-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467649306-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467652946-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467656456-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467660036-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467663386-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467666996-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467670646-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467674416-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467678046-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467681886-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467685646-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467701686-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467705446-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467709106-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467712826-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467716486-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467720306-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467723746-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467727536-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467730956-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467734466-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467742405-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467746525-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467750495-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467754165-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467760445-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467764215-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467767925-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467773185-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467776695-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467780295-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467784205-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467796485-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467800775-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467804565-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467808535-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467812505-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467816325-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467820105-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467823865-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467827935-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467831545-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467834385-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467836865-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467839915-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467843275-05:00 def weekly_report(): [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467845945-05:00 > return _run("weekly") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467848585-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467851055-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467853635-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467856305-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467859075-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467861675-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467865185-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467868995-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467872235-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467876125-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467880025-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467883745-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467887715-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467892535-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467896225-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467900555-05:00 store_id = 'Fastime' [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467904045-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467907875-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467911755-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467916025-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467920005-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467923984-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467928014-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467931864-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467940964-05:00 """ [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467943614-05:00 base = _require_base() [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467946264-05:00 try: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467948914-05:00 import requests [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467951744-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467954854-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467957514-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467960214-05:00 raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467962904-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467965614-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467968194-05:00 if r.status_code == 404: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467970874-05:00 return None [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467973434-05:00 if r.status_code != 200: [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467976034-05:00 > raise ManageApiError( [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467978694-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467981404-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467983894-05:00 [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.467997754-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.468003324-05:00 ----- end live Job logs ----- [pod/analytics-report-live-lvgn6-live-build-pod/step-run-live] 2026-07-19T21:21:11.517436319-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-lvgn6-live-build-pod/prepare] 2026-07-19T21:20:16.080169139-05:00 2026/07/20 02:20:16 Entrypoint initialization [pod/analytics-report-live-lvgn6-live-build-pod/place-scripts] 2026-07-19T21:20:17.498169794-05:00 2026/07/20 02:20:17 Decoded script /tekton/scripts/script-0-9hb8m [pod/analytics-report-live-lvgn6-live-build-pod/place-scripts] 2026-07-19T21:20:17.523008371-05:00 2026/07/20 02:20:17 Decoded script /tekton/scripts/script-2-lplb8