[pod/analytics-report-live-wqtm8-live-build-pod/prepare] 2026-07-19T21:07:18.081162464-05:00 2026/07/20 02:07:18 Entrypoint initialization [pod/analytics-report-live-wqtm8-live-build-pod/place-scripts] 2026-07-19T21:07:19.345484838-05:00 2026/07/20 02:07:19 Decoded script /tekton/scripts/script-0-bj4wk [pod/analytics-report-live-wqtm8-live-build-pod/place-scripts] 2026-07-19T21:07:19.370259880-05:00 2026/07/20 02:07:19 Decoded script /tekton/scripts/script-2-jc296 [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.051297206-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052025342-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052031272-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052033832-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052036392-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052038762-05:00 COPY . /prsrc [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052041172-05:00 WORKDIR /prsrc [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052043322-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052046162-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052048462-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-wqtm8-live-build-pod/step-prepare-dockerfile] 2026-07-19T21:07:25.052051412-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.352715739-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.352754458-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.377232001-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.377334530-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384786997-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384798977-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384804017-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384816737-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384824717-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.384968677-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.385212056-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.433215684-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:18e8b8bac3067a31788cc1f386020858c37bbf6349fe1030ac3439d7e3ce20cc... [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.532713226-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:25.532823926-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.199258259-05:00 INFO[0010] COPY . /prsrc [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.376976602-05:00 INFO[0011] Taking snapshot of files... [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609101084-05:00 INFO[0011] WORKDIR /prsrc [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609201794-05:00 INFO[0011] Cmd: workdir [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609208114-05:00 INFO[0011] Changed working directory to /prsrc [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609478273-05:00 INFO[0011] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609496803-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609503233-05:00 INFO[0011] Initializing snapshotter ... [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:36.609509743-05:00 INFO[0011] Taking snapshot of full filesystem... [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:44.150669297-05:00 INFO[0018] Cmd: /bin/sh [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:44.150816107-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:44.150835557-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:44.596648105-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:44.599014074-05:00 Installing build dependencies: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.465217132-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.466329187-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.621781345-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.623066909-05:00 Getting requirements to build editable: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.838358391-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:47.840092643-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.006369572-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.055792132-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.056710038-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.298649290-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.299565146-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=613cb54fbb1e3bf09abb857d416a89b5f9f82c13b55eee64682cfe84b5813f94 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.299718516-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-3k8mngq_/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.303212940-05:00 Successfully built storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.303456689-05:00 Installing collected packages: storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.303597948-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.356878911-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.364680606-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.367080836-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.439147025-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.439403563-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.581968768-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.581996548-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:48.582002298-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:49.297951728-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:49.301616542-05:00 Installing build dependencies: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:51.856453309-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:51.858096172-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.026889829-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.029480927-05:00 Getting requirements to build editable: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.259921638-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.261735480-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.488980966-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.582874597-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.584176371-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.585195807-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.586109623-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.587148428-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.588357963-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.589961105-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.590795562-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.787114615-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.859883980-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.873530420-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.874374136-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.875290782-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.876238557-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.877100914-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.879447353-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.880024861-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.880818967-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.885105978-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.885967984-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.886793010-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.889509728-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.937635153-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.975584284-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:52.976477420-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.018881441-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.041839348-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.046056789-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.094077515-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.107214886-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.111190169-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.125742163-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.127506686-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.128642910-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.129699396-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.222621851-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.234116770-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.261112189-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.262070775-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.263429119-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.275115226-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.333406786-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.391961155-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 7.0 MB/s eta 0:00:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.415091701-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.440142939-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.444601340-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.586306037-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.586795374-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.587754430-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.811792770-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.812375067-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=1d097a436037e7bc3e2627723f6749c5b7bb25dc06d2326db79f5afb9072722c [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.812485527-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-flhdaiq2/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:53.814232259-05:00 Successfully built storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:54.733533022-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.149246824-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.235955446-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.239147012-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.482479354-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.776132252-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.776604460-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-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.913280149-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.913311938-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:55.913317898-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:56.176447602-05:00 INFO[0030] Taking snapshot of full filesystem... [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:58.730499704-05:00 INFO[0033] Pushing layer registry.storeminder.ai/images/cache:18e8b8bac3067a31788cc1f386020858c37bbf6349fe1030ac3439d7e3ce20cc to cache now [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:58.730688033-05:00 INFO[0033] Pushing image to registry.storeminder.ai/images/cache:18e8b8bac3067a31788cc1f386020858c37bbf6349fe1030ac3439d7e3ce20cc [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:58.853572213-05:00 INFO[0033] Pushed registry.storeminder.ai/images/cache@sha256:f0e2f38e0220c78474d0fbd571ce45797626fd2ea0450883ddb500a9637a6c1b [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:58.854261300-05:00 INFO[0033] Pushing image to registry.storeminder.ai/images/storeminder-report-live:ce5e8ea04b8b7a7856fa951548a5b490d49e00cd [pod/analytics-report-live-wqtm8-live-build-pod/step-build-pr-image] 2026-07-19T21:07:59.052988430-05:00 INFO[0033] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:d420288587145db0577abfe2397595f75169462406b42d9141880f5b0b129ff7 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:07:59.476017605-05:00 /tekton/scripts/script-2-jc296: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:07:59.609492757-05:00 job.batch/report-live-ce5e8ea created [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.418590262-05:00 ----- live Job logs (report-live-ce5e8ea) ----- [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565782158-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565809718-05:00 ============================= test session starts ============================== [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565816408-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565822198-05:00 cachedir: .pytest_cache [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565827658-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565833328-05:00 configfile: pyproject.toml [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565839468-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565844598-05:00 collecting ... collected 10 items [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565849598-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565855418-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565860638-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565866388-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565871518-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565876828-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565882227-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565887617-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565893947-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565899387-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565904547-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565909347-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565914427-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565919747-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565924627-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565929817-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565935047-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565940957-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565946267-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565951107-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565956097-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565961407-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565966697-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565972597-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565978377-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565984267-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565989777-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.565996037-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566001647-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566022387-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566026007-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566029347-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566032777-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566035517-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566037837-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566040207-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566042777-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566045207-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566048397-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566051167-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566053617-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566056047-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566061277-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566063817-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566066287-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566068667-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566071167-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566073747-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566076207-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566078667-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566081617-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566083987-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566086367-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566088757-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566091397-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566093857-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566096357-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566098977-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566101386-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566103986-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566107196-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566109506-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566111936-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566114316-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566116706-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566119206-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566121496-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566123886-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566126346-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566128726-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566131246-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566136786-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566139256-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566141716-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566149636-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566152056-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566154506-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566157156-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566159686-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566162036-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566164496-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566166986-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566169486-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566172006-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566174416-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566176926-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566179396-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566183186-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566186646-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566190446-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566194096-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566197566-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566201156-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566205696-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566209136-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566212726-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566215476-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566218036-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566220446-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566222916-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566225376-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566227756-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566230186-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566233506-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566236146-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566238456-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566240856-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566243396-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566245706-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566248136-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566250526-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566252946-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566255396-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566257796-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566260256-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566262756-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566265136-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566267766-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566270226-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566278246-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566280656-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566283026-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566285376-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566287836-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566290236-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566292656-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566294956-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566297486-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566299876-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566302226-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566304766-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566307126-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566309686-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566312186-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566314676-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566317256-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566319846-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566322385-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566325545-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566327935-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566330635-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566333015-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566335505-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566355365-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566360345-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566362765-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566365245-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566367645-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566370055-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566372565-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566375325-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566378705-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566381145-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566383515-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566386065-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566388365-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566390745-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566394795-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566397305-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566399815-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566402125-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566405055-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566408285-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566418775-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566421285-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566423935-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566426455-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566428875-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566431265-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566433655-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566436155-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566438885-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566442055-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566444345-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566446725-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566449025-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566451375-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566453875-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566456325-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566458835-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566461475-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566463985-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566466465-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566468905-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566471295-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566473755-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566476255-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566478705-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566481115-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566483525-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566485965-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566488385-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566490805-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566493245-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566495805-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566498285-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566500635-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566503195-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566505755-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566508065-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566510415-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566512885-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566515315-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566517835-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566520405-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566522925-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566525525-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566527815-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566534935-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566537405-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566539895-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566542344-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566544864-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566547254-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566549844-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566552344-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566554814-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566557194-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566560224-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566562654-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566564934-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566567274-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566569644-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566572014-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566574494-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566576854-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566579424-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566581964-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566584434-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566587514-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566590074-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566592484-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566594894-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566597864-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566600334-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566602744-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566605134-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566607614-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566610874-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566613284-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566615644-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566618104-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566620474-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566622854-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566626374-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566628894-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566631204-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566633554-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566636044-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566638314-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566640674-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566643184-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566650374-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566652834-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566655124-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566657584-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566660024-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566662374-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566664884-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566667354-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566669804-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566672334-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566674824-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566677204-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566679544-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566682674-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566685244-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566687554-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566690194-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566692664-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566695134-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566697554-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566700024-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566702504-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566704974-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566707414-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566709824-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566712224-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566714894-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566717294-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566719754-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566722254-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566724684-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566727104-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566729554-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566732234-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566734774-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566737354-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566740794-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566743304-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566746334-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566749594-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566752064-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566754454-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566756904-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566759294-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566765983-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566768373-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566770853-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566773233-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566775643-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566777953-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566780423-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566782813-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566785253-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566787823-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566790433-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566792883-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566795263-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566797733-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566800163-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566802563-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566805003-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566807793-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566810163-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566812693-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566815003-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566817533-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566820133-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566822513-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566825033-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566827573-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566830043-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566832553-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566834943-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566837383-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566839883-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566842503-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566845283-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566847963-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566851493-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566853973-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566856503-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566859003-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566861413-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566863803-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566866193-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566868663-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566871133-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566873633-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566880243-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566882733-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566885903-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566888203-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566890563-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566893063-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566895483-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566898103-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566900583-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566903083-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566905523-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566907923-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566910473-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566913123-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566915503-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566918023-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566921563-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566924023-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566926393-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566928763-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566931263-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566933623-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566936033-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566938363-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566940783-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566943443-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566945863-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566948353-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566950833-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566953353-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566955913-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566958293-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566960713-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566963143-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566965533-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566967973-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566971193-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566974743-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566977213-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566979703-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566982803-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566985202-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566987592-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566989972-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566992542-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.566999802-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567002302-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567004692-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567007082-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567009632-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567012052-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567014482-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567017102-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567019512-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567021912-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567024222-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567027162-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567029632-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567032112-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567034572-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567037162-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567039682-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567043942-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567046432-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567049532-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567051902-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567054252-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567056752-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567059052-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567061412-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567063722-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567066062-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567068542-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567070932-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567073462-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567076012-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567080092-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567083822-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567087502-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567091312-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567094872-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567098252-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567101882-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567105602-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567109552-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567113602-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567117622-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567121312-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567124952-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567141672-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567145302-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567149032-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567152612-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567156862-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567160202-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567163902-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567167182-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567169482-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567171872-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567174262-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567176792-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567179182-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567181592-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567184252-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567186862-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567189492-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567192062-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567194672-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567197372-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567199972-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567202492-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567205052-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567207531-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567209911-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567212371-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567214671-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567217091-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567219461-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567221881-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567224441-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567226841-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567229291-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567231891-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567234381-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567237181-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567239661-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567242041-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567244491-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567246881-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567249351-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567251751-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567254211-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567256591-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567259091-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567266521-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567269141-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567271691-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567274221-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567276791-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567279831-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567282501-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567284811-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567287631-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567290101-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567293231-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567295801-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567298311-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567300931-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567303421-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567305881-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567308431-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567310961-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567313411-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567317631-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567320981-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567323511-05:00 ============================== 10 errors in 0.96s ============================== [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567325931-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567328991-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567332691-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567335371-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567343371-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567347601-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567350061-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567352861-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567355291-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567357751-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567360361-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567362731-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567370491-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567372931-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567375431-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567377861-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567380251-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567382681-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567385091-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567387521-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567389821-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567392221-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567394701-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567397201-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567399741-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567402331-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567404971-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567407661-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567410071-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567412491-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567414881-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567417281-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567419841-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567422261-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567424761-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567427161-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567430170-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567432680-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567435080-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567437480-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567439940-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567442420-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567444900-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567447380-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567449670-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567452270-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567454690-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567457090-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567459470-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567461820-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567464330-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567466980-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567469540-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567472130-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567478850-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567481770-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567484160-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567486590-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567489020-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567491540-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567494120-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567496770-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567499080-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567501450-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567503750-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567506120-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567509930-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567512400-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567517450-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567520060-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567522700-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567525190-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567527640-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567530160-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567532610-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567535000-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567537590-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567540030-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567542440-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567544820-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567547370-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567550440-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567552820-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567555220-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567557680-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567560110-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567562560-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567566320-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567568830-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567571370-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567573780-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567576170-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567578760-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567581050-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567583420-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567590460-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567592940-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567595480-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567597910-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567600280-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567602720-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567605170-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567607630-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567610070-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567612570-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567615610-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567617930-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567620290-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567622600-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567624990-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567627610-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567630020-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567632590-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567635130-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567637630-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567640210-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567642640-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567645080-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567647480-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567650579-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567653139-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567655699-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567658339-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567661039-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567663579-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567665999-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567668389-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567670789-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567673279-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567675729-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567678189-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567680699-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567682999-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567685659-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567688079-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567690499-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567697309-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567699699-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567702109-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567705489-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567708019-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567710519-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567776989-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567780339-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567782939-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567785369-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567787739-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567790179-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567792679-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567795249-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567798209-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567801639-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567804869-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567809219-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567812709-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567816179-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567819389-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567822089-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567824619-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567827119-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567829699-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567832119-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567834529-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567837069-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567839559-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567841989-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567844469-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567846909-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567849399-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567851799-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567855139-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567857559-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567860599-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567863119-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567865649-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567868159-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567870488-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567873128-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567883378-05:00 def daily_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567887158-05:00 > return _run("daily") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567890668-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567893998-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567896528-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567899028-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567901478-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567903978-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567906538-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567908948-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567911338-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567913728-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567916268-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567918758-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567921348-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567923838-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567926208-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567929318-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567931678-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567934338-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567936848-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567939358-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567942358-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567944918-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567947408-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567949888-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567952368-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567954758-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567957688-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567961348-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567964958-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567968548-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567971688-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567974128-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567976638-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567979988-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567982408-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567984918-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567987298-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567989848-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567992358-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.567996498-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568003778-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568006328-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568008998-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568011378-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568013858-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568016158-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568018678-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568021148-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568023588-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568026858-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568030488-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568034128-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568037618-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568040928-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568044568-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568047898-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568051088-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568055248-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568058358-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568061528-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568064638-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568067888-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568071228-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568074598-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568078128-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568081788-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568085718-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568089378-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568092777-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568096027-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568099177-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568102467-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568105597-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568108647-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568111817-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568115097-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568118427-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568121647-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568124837-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568128007-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568131117-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568134197-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568143637-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568146987-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568150017-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568153337-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568156527-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568159577-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568162667-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568165587-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568168757-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568171887-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568174967-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568178127-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568181467-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568184577-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568187767-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568191027-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568194347-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568197417-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568200537-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568204257-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568207667-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568211287-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568214437-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568217877-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568221257-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568223787-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568226627-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568229087-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568231607-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568235677-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568238147-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568240627-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568243127-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568245517-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568248037-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568250447-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568252877-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568255357-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568257987-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568261167-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568268247-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568270677-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568273077-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568275607-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568278147-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568280717-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568283027-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568285647-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568288147-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568290577-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568292967-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568295267-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568297617-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568300097-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568302477-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568305737-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568308297-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568310687-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568313166-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568315636-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568318176-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568320546-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568322916-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568325496-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568327796-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568330826-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568333256-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568335676-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568344846-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568351256-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568354056-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568356946-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568359596-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568362256-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568364676-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568367346-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568369846-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568372966-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568375476-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568378026-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568380636-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568388606-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568391106-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568393856-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568396986-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568399526-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568401966-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568404566-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568407216-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568409786-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568412236-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568414936-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568417856-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568420306-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568422696-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568425046-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568427446-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568429906-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568432516-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568435086-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568437636-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568440046-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568444156-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568446686-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568449096-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568451496-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568453866-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568456536-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568458946-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568461326-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568463636-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568466036-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568468476-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568470946-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568473456-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568476376-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568478976-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568481446-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568483876-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568486296-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568488756-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568492596-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568495906-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568503096-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568505526-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568508106-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568510736-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568513266-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568515876-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568518376-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568520896-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568524156-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568526796-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568529296-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568531626-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568534905-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568537375-05:00 def weekly_report(): [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568539825-05:00 > return _run("weekly") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568542815-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568545215-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568547825-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568550595-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568553215-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568555815-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568558685-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568561265-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568564025-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568566565-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568569085-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568572565-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568575975-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568579725-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568583075-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568586495-05:00 store_id = 'Fastime' [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568590085-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568593575-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568597175-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568599645-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568602575-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568605245-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568607715-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568610695-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568613235-05:00 """ [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568620695-05:00 base = _require_base() [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568623185-05:00 try: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568625565-05:00 import requests [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568628065-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568630525-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568632925-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568635365-05:00 raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568637855-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568640345-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568642765-05:00 if r.status_code == 404: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568645145-05:00 return None [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568648505-05:00 if r.status_code != 200: [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568651015-05:00 > raise ManageApiError( [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568653545-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568656055-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568658485-05:00 [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568664695-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.568667195-05:00 ----- end live Job logs ----- [pod/analytics-report-live-wqtm8-live-build-pod/step-run-live] 2026-07-19T21:08:15.650848284-05:00 ==> live build: status=Failed conclusion=failure