[pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.906986107-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.907987772-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908008671-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908011651-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908014261-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908016711-05:00 COPY . /prsrc [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908020151-05:00 WORKDIR /prsrc [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908022461-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908024721-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908027041-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-s2l4m-live-build-pod/step-prepare-dockerfile] 2026-07-18T12:26:06.908030511-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.068692806-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.068728236-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.090704143-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.090720213-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098430173-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098448713-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098452753-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098456393-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098459643-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098528893-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.098755951-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.135386253-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:e0eb99bdb9540de78a0542e5cd53cdd32b19da5bbfb9ae7acea76e0455c21c97... [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.154841393-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:07.154862533-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:16.938308073-05:00 INFO[0009] COPY . /prsrc [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.065399670-05:00 INFO[0010] Taking snapshot of files... [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250084300-05:00 INFO[0010] WORKDIR /prsrc [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250179500-05:00 INFO[0010] Cmd: workdir [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250186200-05:00 INFO[0010] Changed working directory to /prsrc [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250467008-05:00 INFO[0010] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250491348-05:00 INFO[0010] 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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250509488-05:00 INFO[0010] Initializing snapshotter ... [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:17.250514498-05:00 INFO[0010] Taking snapshot of full filesystem... [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:24.521488707-05:00 INFO[0017] Cmd: /bin/sh [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:24.521592217-05:00 INFO[0017] 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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:24.521608147-05:00 INFO[0017] 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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:24.904349849-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:24.906406438-05:00 Installing build dependencies: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.182771793-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.183523609-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.307477092-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.308409807-05:00 Getting requirements to build editable: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.477174409-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.478666101-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.691941615-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.747724948-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.749294500-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.970999750-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.971645286-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=b4f5f64650ce5c207c8c0e5ff03dbad61151bd48de23b65e8f9c4a563f2973ae [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.971776636-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-3ovs42a_/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.974327033-05:00 Successfully built storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.974569461-05:00 Installing collected packages: storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:27.974713121-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.017105473-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.022886063-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.024754583-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.086516586-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.086717035-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.222797465-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.222893314-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.222899334-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.752729660-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:28.755559635-05:00 Installing build dependencies: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.038191867-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.039152715-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.157137154-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.158075012-05:00 Getting requirements to build editable: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.336745202-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.337930369-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.528655158-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.611887988-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.612999566-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.613854695-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.614604333-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.615584022-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.616683390-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.618185637-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.618960836-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.771605492-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.837585604-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.858001757-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.859418135-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.860672132-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.861610351-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.862378689-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.864710115-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.865269724-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.866029363-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.870016416-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.870810204-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.871672623-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.874349558-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.916501092-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.953595856-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.954490244-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:31.991615308-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.010036545-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.012084691-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.046466259-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.066190524-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.069048978-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.079850289-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.081116877-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.082116005-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.083004914-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.137360316-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.144352104-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.168751639-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.169638828-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.170814366-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.181974856-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.264203268-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.506768980-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 1.6 MB/s eta 0:00:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.533867741-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.556072821-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.562829209-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.704270485-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.704937874-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.705989602-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.936492037-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.937080426-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=01474a4684953ab65f0c4ad3feade8a0ff06911e9b29896781499e14097e3c11 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.937191175-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-dynv2hxf/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:32.938861992-05:00 Successfully built storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:33.844585057-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.098456218-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.155743844-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.158452159-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.371828133-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.580963903-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.581159313-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-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.705420798-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.705506978-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.705512458-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:34.827417317-05:00 INFO[0027] Taking snapshot of full filesystem... [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:37.105678115-05:00 INFO[0030] Pushing layer registry.storeminder.ai/images/cache:e0eb99bdb9540de78a0542e5cd53cdd32b19da5bbfb9ae7acea76e0455c21c97 to cache now [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:37.105868575-05:00 INFO[0030] Pushing image to registry.storeminder.ai/images/cache:e0eb99bdb9540de78a0542e5cd53cdd32b19da5bbfb9ae7acea76e0455c21c97 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:37.232681382-05:00 INFO[0030] Pushed registry.storeminder.ai/images/cache@sha256:95720e3893b669e5b94312e3cc013b5d0ff16c6598b0a100163a635f8e5f4583 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:37.233308861-05:00 INFO[0030] Pushing image to registry.storeminder.ai/images/storeminder-report-live:9ac20edcbf7e965b6c3a920e8ef4f9d84edfa5a6 [pod/analytics-report-live-s2l4m-live-build-pod/step-build-pr-image] 2026-07-18T12:26:37.481256437-05:00 INFO[0030] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:44382588c110a8ec597dd2cd1951f51ec4359ccb80c4c01cdd2c10412789e5ba [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:38.295307843-05:00 /tekton/scripts/script-2-kk5xd: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:38.407474496-05:00 job.batch/report-live-9ac20ed created [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:48.925605261-05:00 ----- live Job logs (report-live-9ac20ed) ----- [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008241354-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008317944-05:00 ============================= test session starts ============================== [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008324954-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008329814-05:00 cachedir: .pytest_cache [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008334624-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008345384-05:00 configfile: pyproject.toml [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008351304-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008355574-05:00 collecting ... collected 10 items [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008359704-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008364044-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008368384-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008373184-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008377454-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008381824-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008386074-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008391804-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008396244-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008400574-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008404814-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008408944-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008413244-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008417594-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008421734-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008425964-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008430294-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008434494-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008438744-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008442854-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008447094-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008452674-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008457154-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008461414-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008465664-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008469864-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008474124-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008478304-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008482504-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008498523-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008504483-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008507433-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008510193-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008513063-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008515893-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008518863-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008521743-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008525293-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008529133-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008532053-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008534943-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008537793-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008540703-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008543593-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008546513-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008549403-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008552303-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008555263-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008558193-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008561073-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008563953-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008566803-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008569643-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008572553-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008575433-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008578303-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008581213-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008584123-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008586873-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008589733-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008592603-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008595403-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008598283-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008601203-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008604073-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008606953-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008609693-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008612533-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008615483-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008618383-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008621393-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008629973-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008633003-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008635893-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008644473-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008647443-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008682393-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008686773-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008691083-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008695223-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008699423-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008703553-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008708063-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008716723-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008721933-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008727013-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008733283-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008739903-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008745573-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008749863-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008754123-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008758423-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008762743-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008767163-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008771443-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008775683-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008780013-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008784293-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008788543-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008794303-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008798693-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008802913-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008807223-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008811533-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008815783-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008819913-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008824113-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008828493-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008832643-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008836833-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008841103-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008845373-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008849593-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008853713-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008857953-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008862293-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008866553-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008870913-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008875233-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008885663-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008888633-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008891673-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008894473-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008897333-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008900233-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008903413-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008906133-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008909133-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008911963-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008914813-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008917713-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008920633-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008923613-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008926563-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008929463-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008932453-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008935423-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008938363-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008941203-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008944033-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008947013-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008949883-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008952793-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008955643-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008958593-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008961483-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008964323-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008967163-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008970243-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008973063-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008975903-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008978863-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008981623-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008984473-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008987553-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008990333-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.008993223-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009000073-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009003133-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009006003-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009008773-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009011693-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009014693-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009022993-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009025963-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009028932-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009031782-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009034632-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009037462-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009040272-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009043142-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009046022-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009048912-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009051632-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009054422-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009057202-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009060002-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009062842-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009065692-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009068632-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009071542-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009075772-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009079452-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009082372-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009085262-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009088162-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009091092-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009094082-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009097022-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009099892-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009102802-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009106122-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009109072-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009111982-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009114912-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009117872-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009120772-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009123682-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009126672-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009129452-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009132282-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009135202-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009137952-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009140852-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009143722-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009146622-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009149452-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009152182-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009159982-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009162932-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009165812-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009168772-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009171692-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009174562-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009177382-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009180192-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009183012-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009185822-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009188672-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009191902-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009194622-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009197412-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009200152-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009203002-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009205862-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009208732-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009211672-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009214642-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009217632-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009220542-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009223402-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009226362-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009229182-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009232052-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009234892-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009237802-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009240692-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009243542-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009246402-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009249272-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009252132-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009254972-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009257802-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009260732-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009266652-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009269662-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009272472-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009275322-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009278182-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009280932-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009283842-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009286772-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009295552-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009298462-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009301212-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009304072-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009306922-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009309812-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009312742-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009315652-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009318582-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009321402-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009324262-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009327112-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009329942-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009332802-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009335712-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009344992-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009349682-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009352502-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009355312-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009358162-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009361082-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009364212-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009367482-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009370372-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009373352-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009376182-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009379512-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009382382-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009385202-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009388282-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009391192-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009394102-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009397022-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009399862-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009402792-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009405662-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009408552-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009411432-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009414292-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009417142-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009420082-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009422832-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009425732-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009428682-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009442692-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009445622-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009448542-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009451502-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009454382-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009457192-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009460012-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009462932-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009465782-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009468632-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009471582-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009474442-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009477292-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009480112-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009482922-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009485792-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009488612-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009491482-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009494282-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009497062-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009499802-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009502662-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009505532-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009508392-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009511342-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009514172-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009516602-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009519422-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009521702-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009523982-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009526292-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009528542-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009530962-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009533252-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009538181-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009540571-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009542871-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009545221-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009547481-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009549751-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009552001-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009554321-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009556611-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009559051-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009565231-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009567571-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009570001-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009572221-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009574561-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009576901-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009579191-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009581461-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009583651-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009585931-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009588331-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009590691-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009592961-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009595321-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009597991-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009601501-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009605011-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009608421-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009611671-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009615221-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009617631-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009619921-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009622181-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009624421-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009626651-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009628981-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009631311-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009633681-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009636321-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009638721-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009641041-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009643321-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009645651-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009647931-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009650321-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009652701-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009655011-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009657371-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009659661-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009661991-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009664261-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009666541-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009668861-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009671141-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009673431-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009680601-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009682951-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009685161-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009687401-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009689741-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009692001-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009694251-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009696541-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009698901-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009701181-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009703371-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009705641-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009707961-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009710221-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009712661-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009715001-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009717401-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009719671-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009721941-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009724221-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009726511-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009728811-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009731121-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009733371-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009735751-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009737961-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009744361-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009746711-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009749071-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009751381-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009753741-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009759781-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009763201-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009766681-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009769721-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009772051-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009774321-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009776611-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009778911-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009781241-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009783521-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009785881-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009788211-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009790551-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009797481-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009799861-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009802181-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009804641-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009806951-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009809161-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009811441-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009813741-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009815981-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009818211-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009820481-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009822831-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009825121-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009827341-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009829591-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009831941-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009834271-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009836541-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009839041-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009841411-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009843681-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009846821-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009849071-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009851311-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009853571-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009855951-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009858131-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009860431-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009862621-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009864851-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009867241-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009869521-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009873081-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009875501-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009877831-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009880201-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009882551-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009885941-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009888261-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009890571-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009892891-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009895201-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009897491-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009899821-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009902221-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009908581-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009910911-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009913201-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009915461-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009917911-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009920201-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009923221-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009925441-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009927681-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009930061-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009932611-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009935001-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009937331-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009939661-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009942651-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009945031-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009947321-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009949581-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009951851-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009957621-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009961121-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009964841-05:00 ============================== 10 errors in 0.99s ============================== [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009967771-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009970561-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009973481-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009975821-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009978111-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009980321-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009982571-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009984921-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009987191-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009989581-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009991931-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.009994211-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010000641-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010003041-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010005361-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010007751-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010010031-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010012351-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010014561-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010016800-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010019080-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010021380-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010024670-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010028130-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010030600-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010032920-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010035310-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010037710-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010040020-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010042370-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010044750-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010047120-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010049460-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010051740-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010054030-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010056430-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010058700-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010060960-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010063220-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010065580-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010067850-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010070120-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010072390-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010074750-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010077000-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010079650-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010081960-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010084310-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010086590-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010088860-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010091120-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010093460-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010095720-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010098000-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010106100-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010108560-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010110850-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010113120-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010115380-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010117620-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010119930-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010122270-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010124450-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010126750-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010128950-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010131200-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010137180-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010140710-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010144070-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010146900-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010149370-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010151820-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010154130-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010156440-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010158740-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010161020-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010163370-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010165660-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010168030-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010170320-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010172710-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010174990-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010177340-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010179620-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010181960-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010184220-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010186590-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010188950-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010191210-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010193520-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010195810-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010198070-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010200480-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010202690-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010205130-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010207430-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010214170-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010216560-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010218830-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010221110-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010223400-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010225750-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010228160-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010230450-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010232830-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010235210-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010237430-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010239760-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010241950-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010244190-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010246590-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010248880-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010251280-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010254240-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010256590-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010258930-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010261220-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010263500-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010265880-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010268210-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010270480-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010272750-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010275020-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010277720-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010280040-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010282370-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010284720-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010287010-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010289270-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010291530-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010293800-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010296340-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010298530-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010301150-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010303580-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010305860-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010312630-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010314940-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010317190-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010330960-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010348350-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010355140-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010360610-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010363100-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010365770-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010368290-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010370660-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010372920-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010375310-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010377720-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010379910-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010383180-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010385440-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010387770-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010390350-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010392670-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010395160-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010397520-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010400450-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010402940-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010405300-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010408350-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010410650-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010412900-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010416170-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010418570-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010420940-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010423280-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010425690-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010428000-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010430330-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010432600-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010434940-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010437230-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010439610-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010442330-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010444550-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010447270-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010455930-05:00 def daily_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010458370-05:00 > return _run("daily") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010460730-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010462920-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010465220-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010467570-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010469990-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010472330-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010474690-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010477030-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010479450-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010481720-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010483980-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010486360-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010488690-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010491030-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010493240-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010495630-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010497890-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010500130-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010502570-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010505010-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010507400-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010509820-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010512169-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010514599-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010516999-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010519369-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010521839-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010524129-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010526469-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010528869-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010531169-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010533449-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010536019-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010538429-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010540709-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010542979-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010545319-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010547649-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010549989-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010555309-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010557579-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010563009-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010570059-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010572689-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010575049-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010578219-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010581469-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010583919-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010586249-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010588639-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010591009-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010593409-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010595689-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010598069-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010600379-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010602729-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010605079-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010607399-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010609669-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010611979-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010614189-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010616809-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010619719-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010622139-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010624589-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010626959-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010629309-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010631629-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010633939-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010636229-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010638529-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010640949-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010643319-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010645639-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010647939-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010650239-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010652589-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010655129-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010657429-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010659779-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010662129-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010664459-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010666779-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010674859-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010677129-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010679519-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010682779-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010685199-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010687609-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010689819-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010692079-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010694409-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010696769-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010699039-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010701379-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010703739-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010706099-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010708469-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010710749-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010713169-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010716619-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010719029-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010721239-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010723589-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010725849-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010728139-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010730459-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010732769-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010735819-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010738199-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010740549-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010745219-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010747589-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010749969-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010752269-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010754529-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010756819-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010759149-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010761489-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010763899-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010766329-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010768609-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010770869-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010773129-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010779839-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010782189-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010784609-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010786939-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010789129-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010791519-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010793819-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010796099-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010798439-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010800649-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010803039-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010805899-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010808169-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010810559-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010812959-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010815249-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010817579-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010819849-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010822189-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010824569-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010827339-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010829929-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010832139-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010834409-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010836679-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010838949-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010841319-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010843609-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010845889-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010848219-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010850549-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010852969-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010855239-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010857489-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010859819-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010862099-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010864349-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010866639-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010868919-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010871179-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010873529-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010880629-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010883049-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010885369-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010887669-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010889979-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010892309-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010894689-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010896899-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010899289-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010901649-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010903999-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010906309-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010908509-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010910779-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010913079-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010915419-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010917769-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010920199-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010922519-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010927139-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010929499-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010932269-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010934659-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010936919-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010939319-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010941539-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010943799-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010945999-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010948319-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010950659-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010952959-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010955399-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010957819-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010960199-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010962529-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010964819-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010967089-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010969359-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010971629-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010973999-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010976349-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010982879-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010985269-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010987669-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010989969-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010992259-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010994569-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010996829-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.010999169-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011001499-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011003859-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011006069-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011008359-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011010679-05:00 def weekly_report(): [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011012959-05:00 > return _run("weekly") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011015319-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011017579-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011019829-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011022179-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011024539-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011026879-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011029199-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011031589-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011033889-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011036269-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011038549-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011040829-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011043088-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011045478-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011047678-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011049938-05:00 store_id = 'Fastime' [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011052158-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011054518-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011056878-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011059168-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011061468-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011063788-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011066288-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011068598-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011070918-05:00 """ [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011073258-05:00 base = _require_base() [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011079798-05:00 try: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011082158-05:00 import requests [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011084438-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011086868-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011089208-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011091488-05:00 raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011093758-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011096178-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011098538-05:00 if r.status_code == 404: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011100818-05:00 return None [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011103098-05:00 if r.status_code != 200: [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011105478-05:00 > raise ManageApiError( [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011107798-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011110178-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011112368-05:00 [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011119548-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.011121958-05:00 ----- end live Job logs ----- [pod/analytics-report-live-s2l4m-live-build-pod/step-run-live] 2026-07-18T12:26:49.040256363-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-s2l4m-live-build-pod/prepare] 2026-07-18T12:26:00.648376331-05:00 2026/07/18 17:26:00 Entrypoint initialization [pod/analytics-report-live-s2l4m-live-build-pod/place-scripts] 2026-07-18T12:26:01.490651234-05:00 2026/07/18 17:26:01 Decoded script /tekton/scripts/script-0-jsgws [pod/analytics-report-live-s2l4m-live-build-pod/place-scripts] 2026-07-18T12:26:01.514508232-05:00 2026/07/18 17:26:01 Decoded script /tekton/scripts/script-2-kk5xd