===== analytics-report-live-t8cpd-archive-logs-pod.log ===== [pod/analytics-report-live-t8cpd-archive-logs-pod/prepare] 2026-07-19T22:43:11.611438313-05:00 2026/07/20 03:43:11 Entrypoint initialization [pod/analytics-report-live-t8cpd-archive-logs-pod/place-scripts] 2026-07-19T22:43:13.043717307-05:00 2026/07/20 03:43:13 Decoded script /tekton/scripts/script-0-xdlmq [pod/analytics-report-live-t8cpd-archive-logs-pod/place-scripts] 2026-07-19T22:43:13.070482532-05:00 2026/07/20 03:43:13 Decoded script /tekton/scripts/script-1-sl5v5 [pod/analytics-report-live-t8cpd-archive-logs-pod/step-collect-logs] 2026-07-19T22:43:17.467587986-05:00 ==> collecting pod logs for PipelineRun=analytics-report-live-t8cpd ===== analytics-report-live-t8cpd-clone-pod.log ===== [pod/analytics-report-live-t8cpd-clone-pod/place-scripts] 2026-07-19T22:42:03.200550334-05:00 2026/07/20 03:42:03 Decoded script /tekton/scripts/script-0-mwk9w [pod/analytics-report-live-t8cpd-clone-pod/step-clone] 2026-07-19T22:42:09.665715094-05:00 From https://github.com/storeminder-ai/storeminder [pod/analytics-report-live-t8cpd-clone-pod/step-clone] 2026-07-19T22:42:09.665740964-05:00 * branch b152a7fdf35a35058009a00977bd4015c1c567c5 -> FETCH_HEAD [pod/analytics-report-live-t8cpd-clone-pod/step-clone] 2026-07-19T22:42:09.733362422-05:00 Cloned b152a7fdf35a35058009a00977bd4015c1c567c5 [pod/analytics-report-live-t8cpd-clone-pod/prepare] 2026-07-19T22:42:02.661458369-05:00 2026/07/20 03:42:02 Entrypoint initialization ===== analytics-report-live-t8cpd-live-build-pod.log ===== [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.964220890-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965036710-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965044950-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965049220-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965052670-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965056130-05:00 COPY . /prsrc [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965061210-05:00 WORKDIR /prsrc [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965064710-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965068540-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965072020-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-t8cpd-live-build-pod/step-prepare-dockerfile] 2026-07-19T22:42:23.965076180-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.190136302-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.190163442-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.211140462-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.211161452-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218587128-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218603448-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218606868-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218614028-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218616658-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.218810608-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.220657807-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.276830530-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:bd46e214ac3ebf846662cc1205639bd8acb65d6d81be43092e1db0185fd4c4d9... [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.294844971-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:24.294871171-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:34.899513934-05:00 INFO[0010] COPY . /prsrc [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.092069303-05:00 INFO[0010] Taking snapshot of files... [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368853891-05:00 INFO[0011] WORKDIR /prsrc [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368888930-05:00 INFO[0011] Cmd: workdir [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368893700-05:00 INFO[0011] Changed working directory to /prsrc [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368897330-05:00 INFO[0011] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368902580-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368907520-05:00 INFO[0011] Initializing snapshotter ... [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:35.368911460-05:00 INFO[0011] Taking snapshot of full filesystem... [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:43.142615476-05:00 INFO[0018] Cmd: /bin/sh [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:43.142659276-05:00 INFO[0018] 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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:43.142667906-05:00 INFO[0018] 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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:43.503527008-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:43.505839466-05:00 Installing build dependencies: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:45.844673677-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:45.845810856-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.012858063-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.014309542-05:00 Getting requirements to build editable: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.203647262-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.204763491-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.386896956-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.437604981-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.438530030-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.645494678-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.646172387-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=69b1b774db0ac05e210321fcecb0e19acd30375d4f3db86eae96d3a3c9b5f1f3 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.646295297-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-11mbd4jn/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.648670465-05:00 Successfully built storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.648848475-05:00 Installing collected packages: storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.648977465-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.693549765-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.699812780-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.701797489-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.788960569-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.789219749-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.908096057-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.908123807-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:46.908129367-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:47.383297897-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:47.385429385-05:00 Installing build dependencies: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:49.818924765-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:49.819771444-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:49.989841293-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:49.991056942-05:00 Getting requirements to build editable: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.174298949-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.175522578-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.342918067-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.420884290-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.422993799-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.424421118-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.425583407-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.427003806-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.428643965-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.430884153-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.431925992-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.624544603-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.768691589-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.781670949-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.783247848-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.784753197-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.786223536-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.787402515-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.790911292-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.791718822-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.792799691-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.797532148-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.798294177-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.799064776-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.801623305-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.858324454-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.905529609-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.906482389-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.959144610-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.978639466-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:50.981959884-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.014637320-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.029740719-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.032481357-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.040413171-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.041318801-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.042147240-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.042890259-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.102907375-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.109377291-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.132735224-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.133606053-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.134796832-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.144963665-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.218942630-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.276401318-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 6.9 MB/s eta 0:00:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.298470862-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.314844280-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.320207006-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.470137446-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.470614056-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.471485705-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.734764852-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.735576301-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=f12dedd96d3ee1e3fb6b05153968bb8ab783ab2d53d62a75f515465edb0adaa3 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.736060761-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-y0up_q5z/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:51.737700330-05:00 Successfully built storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:52.945528255-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.272139430-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.332415625-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.334317363-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.542255497-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.783277396-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.783546415-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-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.919690743-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.919727763-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:53.919734363-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:54.077441354-05:00 INFO[0029] Taking snapshot of full filesystem... [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:56.642219732-05:00 INFO[0032] Pushing layer registry.storeminder.ai/images/cache:bd46e214ac3ebf846662cc1205639bd8acb65d6d81be43092e1db0185fd4c4d9 to cache now [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:56.642403232-05:00 INFO[0032] Pushing image to registry.storeminder.ai/images/cache:bd46e214ac3ebf846662cc1205639bd8acb65d6d81be43092e1db0185fd4c4d9 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:56.743531013-05:00 INFO[0032] Pushed registry.storeminder.ai/images/cache@sha256:4fcb99620289cb9851e713f7471dfeeab5ce1627281e1f42cec243068addf4e3 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:56.744071052-05:00 INFO[0032] Pushing image to registry.storeminder.ai/images/storeminder-report-live:b152a7fdf35a35058009a00977bd4015c1c567c5 [pod/analytics-report-live-t8cpd-live-build-pod/step-build-pr-image] 2026-07-19T22:42:56.943763617-05:00 INFO[0032] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:3d233d4e0f98b90416f658546a2a6f881734c0bea46f01e15afe8d4ee6969a7a [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:42:57.459787161-05:00 /tekton/scripts/script-2-x6cdh: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:42:57.625461660-05:00 job.batch/report-live-b152a7f created [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.094029542-05:00 ----- live Job logs (report-live-b152a7f) ----- [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300502059-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300538659-05:00 ============================= test session starts ============================== [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300547199-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300553979-05:00 cachedir: .pytest_cache [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300560869-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300565009-05:00 configfile: pyproject.toml [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300570179-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300574219-05:00 collecting ... collected 10 items [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300578149-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300582329-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300586569-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300591319-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300597779-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300601879-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300606199-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300611369-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300615459-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300619539-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300623529-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300627439-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300631529-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300636119-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300640039-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300644909-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300648969-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300653039-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300657049-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300660958-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300664978-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300669048-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300673598-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300677638-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300681738-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300685808-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300689878-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300693878-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300697988-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300723208-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300726178-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300729648-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300732288-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300734988-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300737578-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300740358-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300743078-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300745848-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300749268-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300752018-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300754748-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300757628-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300760638-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300763398-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300766098-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300768798-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300771508-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300774208-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300776918-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300779648-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300782478-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300785158-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300787838-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300790598-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300793268-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300795948-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300798708-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300801618-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300804198-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300809738-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300812568-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300815208-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300817878-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300820628-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300823348-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300826148-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300828738-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300831478-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300834278-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300836988-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300839778-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300848228-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300851238-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300853948-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300862188-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300864948-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300867628-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300870278-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300873048-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300875718-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300878498-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300881128-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300883908-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300889508-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300892378-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300895958-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300898718-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300901528-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300904338-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300907128-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300909918-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300912668-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300915378-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300918168-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300920938-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300923838-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300926638-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300929418-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300932128-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300934838-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300937548-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300940218-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300942918-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300947148-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300950078-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300952698-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300955428-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300958328-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300961068-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300963848-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300966578-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300969298-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300972108-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300974728-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300977418-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300980238-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300982958-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300985748-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300988478-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300997078-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.300999908-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301002638-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301005338-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301008078-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301010778-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301013478-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301016118-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301018778-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301021408-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301024058-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301026828-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301029548-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301032318-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301035848-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301038608-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301041408-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301044198-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301046918-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301049638-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301052368-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301055088-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301057878-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301060648-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301063478-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301066968-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301069798-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301072598-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301075328-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301078028-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301080718-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301083428-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301086208-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301088828-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301091498-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301094328-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301096978-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301099678-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301106178-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301109038-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301111808-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301114428-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301117098-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301119878-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301127338-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301130158-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301132938-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301135638-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301138468-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301141358-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301144188-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301146918-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301149608-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301152408-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301155018-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301157758-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301160398-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301163058-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301165748-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301168888-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301172788-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301175658-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301178448-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301181188-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301183998-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301186718-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301189588-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301192408-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301195208-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301197918-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301200648-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301203558-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301206418-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301209128-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301211848-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301214588-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301217288-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301219958-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301222678-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301225518-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301228228-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301230938-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301233828-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301236458-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301239138-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301241838-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301244528-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301247238-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301249848-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301257038-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301259928-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301262708-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301265508-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301268278-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301270998-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301273838-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301276628-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301279318-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301282018-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301284718-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301287538-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301290138-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301292828-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301295448-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301298168-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301300878-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301303618-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301306348-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301309078-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301311848-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301314618-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301317358-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301320118-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301322828-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301325618-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301328378-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301331098-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301334098-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301336878-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301350248-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301353118-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301355938-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301358648-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301361348-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301364038-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301370728-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301373778-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301376478-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301379198-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301382208-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301384888-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301387708-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301390768-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301398488-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301401318-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301403948-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301406758-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301409628-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301412328-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301415048-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301417888-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301420618-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301423398-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301426168-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301428878-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301431548-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301434248-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301437068-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301439658-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301442368-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301444978-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301447678-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301451038-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301453808-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301456578-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301459408-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301462218-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301464978-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301467678-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301470598-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301473368-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301476108-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301478888-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301482618-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301485428-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301488218-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301490908-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301493898-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301496638-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301499358-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301502088-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301504768-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301507558-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301511588-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301514238-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301516968-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301519688-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301527078-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301529848-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301532568-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301535268-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301537958-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301540608-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301543308-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301546058-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301548768-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301551478-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301554228-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301556978-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301559788-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301562528-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301565288-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301568078-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301570788-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301573548-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301576138-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301578818-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301581418-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301584138-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301586978-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301589738-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301593198-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301595958-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301598738-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301601448-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301604158-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301607548-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301610378-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301613118-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301615878-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301618628-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301624298-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301627088-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301630548-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301633348-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301636048-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301638758-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301641438-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301644128-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301646828-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301649618-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301657188-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301660048-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301662828-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301665448-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301668108-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301670818-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301673528-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301676388-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301678978-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301681678-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301684778-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301687518-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301690218-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301693008-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301695738-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301698498-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301701178-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301703958-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301706648-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301709338-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301712238-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301714868-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301717518-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301720138-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301724428-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301727308-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301730078-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301733538-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301736288-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301739018-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301741758-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301744478-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301747238-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301749998-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301752708-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301755508-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301758238-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301760958-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301763658-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301766988-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301769748-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301772528-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301775228-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301777918-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301782508-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301790248-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301793128-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301795738-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301798398-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301801138-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301803768-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301806438-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301809157-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301811907-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301814647-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301817227-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301819897-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301822647-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301825407-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301828257-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301831087-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301833797-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301836497-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301839227-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301841947-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301844697-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301847417-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301850217-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301852867-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301855537-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301858137-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301860787-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301863467-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301866927-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301869797-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301872637-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301878277-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301881067-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301883857-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301886587-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301889387-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301892177-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301894907-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301897657-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301900357-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301903137-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301905907-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301908717-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301911537-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301918957-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301921807-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301924497-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301927287-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301930087-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301932687-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301935427-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301938237-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301940897-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301943547-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301946257-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301948947-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301951707-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301954297-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301956967-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301960677-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301963427-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301966447-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301969197-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301971897-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301974607-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301977307-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301979997-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301982767-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301985627-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301988347-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301990957-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301993627-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301996247-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.301998897-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302001607-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302004407-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302007217-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302010027-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302012757-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302015437-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302018177-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302020897-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302023627-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302026417-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302029137-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302031857-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302034537-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302037247-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302039947-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302047177-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302049947-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302052707-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302055427-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302058167-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302060887-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302063677-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302066297-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302068987-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302071727-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302074497-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302077277-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302080057-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302082777-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302085467-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302088207-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302090907-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302093607-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302096367-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302101787-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302104617-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302107337-05:00 ============================== 10 errors in 0.85s ============================== [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302110057-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302116647-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302120767-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302123557-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302126237-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302128847-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302131557-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302134327-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302137047-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302139767-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302142457-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302145257-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302152647-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302155397-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302158097-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302160797-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302163467-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302166277-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302168887-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302171707-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302174327-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302177057-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302179827-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302182597-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302186307-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302189167-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302191897-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302195567-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302198337-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302201077-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302203877-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302206577-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302209387-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302212117-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302214847-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302217607-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302220387-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302223107-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302225847-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302228767-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302231507-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302234237-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302236947-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302239797-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302242397-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302245477-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302248247-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302250957-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302253637-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302256257-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302258917-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302261707-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302264447-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302273537-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302276467-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302279227-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302282027-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302284807-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302287507-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302290347-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302293047-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302295957-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302298657-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302301327-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302303927-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302306627-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302312417-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302315287-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302317997-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302320737-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302323467-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302326287-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302329047-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302331737-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302334537-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302349357-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302354217-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302358237-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302361037-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302363797-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302367357-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302370087-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302372957-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302375687-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302378497-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302381167-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302383977-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302386997-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302389637-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302392477-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302395257-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302397987-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302400957-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302403577-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302406247-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302413987-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302416737-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302419627-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302422477-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302425137-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302427827-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302430567-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302433247-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302435987-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302438677-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302441437-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302444127-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302446817-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302449427-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302452097-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302454957-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302457697-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302460627-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302463417-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302466247-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302469017-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302471807-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302474527-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302477287-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302479987-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302482767-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302485487-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302488257-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302490987-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302493787-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302496527-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302499237-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302501987-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302504717-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302507507-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302510317-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302513137-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302515757-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302519227-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302521977-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302529297-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302532067-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302534667-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302537387-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302556527-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302571917-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302575647-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302584197-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302588697-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302592347-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302595107-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302597817-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302600557-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302605377-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302608267-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302611027-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302614377-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302617137-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302619847-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302622987-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302625737-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302628567-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302631337-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302634037-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302636797-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302640547-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302643737-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302646477-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302649217-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302652007-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302654797-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302657527-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302660197-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302662957-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302665677-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302668367-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302671057-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302673787-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302676467-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302679227-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302682427-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302685177-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302689687-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302701937-05:00 def daily_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302704757-05:00 > return _run("daily") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302707487-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302710157-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302712907-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302715667-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302718437-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302721137-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302723817-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302726617-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302729317-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302732007-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302734807-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302737537-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302740277-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302742987-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302745617-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302748407-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302751067-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302753757-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302756467-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302759227-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302762037-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302764817-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302767587-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302770477-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302773257-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302775997-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302778747-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302781457-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302784227-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302787027-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302789727-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302792417-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302795197-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302797887-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302800557-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302803247-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302806037-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302808727-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302811497-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302819327-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302828667-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302832097-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302834887-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302837707-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302840407-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302843057-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302845757-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302848507-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302851207-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302854437-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302857157-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302859987-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302862697-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302865407-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302868057-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302870727-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302873397-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302876097-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302878757-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302881507-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302885997-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302888817-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302891687-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302894467-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302897287-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302900107-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302902877-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302905667-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302908377-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302911147-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302913917-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302916647-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302919437-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302922167-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302924967-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302927727-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302930467-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302933247-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302935947-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302938657-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302941397-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302948927-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302951737-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302954557-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302957207-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302960026-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302962976-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302965716-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302968496-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302971126-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302973866-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302976616-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302979646-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302982436-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302985256-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302987946-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302990686-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302993426-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302996216-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.302998976-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303001656-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303004536-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303007166-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303009846-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303012496-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303015226-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303018256-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303021196-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303024016-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303027036-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303029896-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303035436-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303038306-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303041026-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303043866-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303046566-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303049356-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303052126-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303054846-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303057686-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303061086-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303063886-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303071986-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303074816-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303077506-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303080156-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303082926-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303085706-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303088326-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303091146-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303093926-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303096706-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303099476-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303102106-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303104776-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303107856-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303110586-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303113316-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303116236-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303118946-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303121656-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303124546-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303127386-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303130146-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303132866-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303135706-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303138406-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303141146-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303143756-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303146416-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303149186-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303151926-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303154636-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303157436-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303160246-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303163086-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303165796-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303168506-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303171246-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303173946-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303176646-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303179376-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303182196-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303189896-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303192656-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303195356-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303198056-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303200746-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303203516-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303206266-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303209086-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303211866-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303214476-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303217276-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303220046-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303222836-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303225586-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303228206-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303231006-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303233846-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303236576-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303239416-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303242106-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303244806-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303250376-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303253196-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303256166-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303258936-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303261676-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303265276-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303267936-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303270656-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303273256-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303276136-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303278906-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303281666-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303284416-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303287156-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303289906-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303292686-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303295376-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303298196-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303300926-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303303646-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303311316-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303314146-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303316856-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303319566-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303322276-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303325136-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303327946-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303330666-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303333416-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303336106-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303343986-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303352956-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303355666-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303358516-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303361416-05:00 def weekly_report(): [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303364236-05:00 > return _run("weekly") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303367186-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303369806-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303372476-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303375206-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303377906-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303380756-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303383566-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303386256-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303388946-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303391696-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303394416-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303397146-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303399826-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303402646-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303405266-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303407996-05:00 store_id = 'Fastime' [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303410606-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303413306-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303416076-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303418876-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303421596-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303424366-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303427096-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303429846-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303437706-05:00 """ [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303440476-05:00 base = _require_base() [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303443206-05:00 try: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303446026-05:00 import requests [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303448776-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303451566-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303454266-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303456986-05:00 raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303459766-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303462476-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303465186-05:00 if r.status_code == 404: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303467906-05:00 return None [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303470606-05:00 if r.status_code != 200: [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303473336-05:00 > raise ManageApiError( [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303476056-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303478926-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303481546-05:00 [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303491776-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.303494766-05:00 ----- end live Job logs ----- [pod/analytics-report-live-t8cpd-live-build-pod/step-run-live] 2026-07-19T22:43:08.337365766-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-t8cpd-live-build-pod/prepare] 2026-07-19T22:42:16.360071690-05:00 2026/07/20 03:42:16 Entrypoint initialization [pod/analytics-report-live-t8cpd-live-build-pod/place-scripts] 2026-07-19T22:42:17.093214613-05:00 2026/07/20 03:42:17 Decoded script /tekton/scripts/script-0-jqn87 [pod/analytics-report-live-t8cpd-live-build-pod/place-scripts] 2026-07-19T22:42:17.113229835-05:00 2026/07/20 03:42:17 Decoded script /tekton/scripts/script-2-x6cdh ===== analytics-report-live-t8cpd-notify-on-failure-pod.log ===== [pod/analytics-report-live-t8cpd-notify-on-failure-pod/prepare] 2026-07-19T22:43:11.558227532-05:00 2026/07/20 03:43:11 Entrypoint initialization [pod/analytics-report-live-t8cpd-notify-on-failure-pod/place-scripts] 2026-07-19T22:43:13.124611802-05:00 2026/07/20 03:43:13 Decoded script /tekton/scripts/script-0-vlkg4 ===== analytics-report-live-t8cpd-post-check-live-pod.log ===== [pod/analytics-report-live-t8cpd-post-check-live-pod/prepare] 2026-07-19T22:43:11.917049025-05:00 2026/07/20 03:43:11 Entrypoint initialization [pod/analytics-report-live-t8cpd-post-check-live-pod/place-scripts] 2026-07-19T22:43:13.045095446-05:00 2026/07/20 03:43:13 Decoded script /tekton/scripts/script-0-qp6gr [pod/analytics-report-live-t8cpd-post-check-live-pod/step-post-check] 2026-07-19T22:43:17.380560820-05:00 Installing PyJWT + cryptography + requests… ===== analytics-report-live-t8cpd-post-status-live-pod.log ===== [pod/analytics-report-live-t8cpd-post-status-live-pod/prepare] 2026-07-19T22:43:11.722742812-05:00 2026/07/20 03:43:11 Entrypoint initialization [pod/analytics-report-live-t8cpd-post-status-live-pod/place-scripts] 2026-07-19T22:43:13.052656449-05:00 2026/07/20 03:43:13 Decoded script /tekton/scripts/script-0-rk8g2 ===== analytics-report-live-t8cpd-reclaim-workspace-pod.log ===== [pod/analytics-report-live-t8cpd-reclaim-workspace-pod/prepare] 2026-07-19T22:43:12.762723387-05:00 2026/07/20 03:43:12 Entrypoint initialization [pod/analytics-report-live-t8cpd-reclaim-workspace-pod/place-scripts] 2026-07-19T22:43:14.290309156-05:00 2026/07/20 03:43:14 Decoded script /tekton/scripts/script-0-hvgdf