[pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.921071673-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.921986538-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.921994968-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.921999267-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922002327-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922005457-05:00 COPY . /prsrc [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922008597-05:00 WORKDIR /prsrc [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922011757-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922014837-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922017817-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-8mkj2-live-build-pod/step-prepare-dockerfile] 2026-07-17T16:54:23.922022127-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.118532809-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.118575549-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.140787706-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.140817136-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.147977996-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.147992536-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.147998046-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.148010096-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.148023976-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.148169175-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.148469273-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.192755908-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:8e2b0ceeab1930e147393c3f373fb50c0fb1dd9a9b5fbc329c7044185496adf7... [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.212375239-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:24.212391759-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:32.998571560-05:00 INFO[0008] COPY . /prsrc [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.127409795-05:00 INFO[0009] Taking snapshot of files... [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.310880117-05:00 INFO[0009] WORKDIR /prsrc [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.310895877-05:00 INFO[0009] Cmd: workdir [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.310900717-05:00 INFO[0009] Changed working directory to /prsrc [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.311182245-05:00 INFO[0009] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.311200055-05:00 INFO[0009] 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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.311205765-05:00 INFO[0009] Initializing snapshotter ... [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:33.311212345-05:00 INFO[0009] Taking snapshot of full filesystem... [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:39.505575413-05:00 INFO[0015] Cmd: /bin/sh [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:39.514158075-05:00 INFO[0015] 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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:39.514177125-05:00 INFO[0015] 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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:39.865697992-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:39.867999989-05:00 Installing build dependencies: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.000105735-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.000886641-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.130686009-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.131561914-05:00 Getting requirements to build editable: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.304178874-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.305506547-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.481108900-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.520673850-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.521616205-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.721653643-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.722484198-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=a72b3e47be11c08a57bb21cf65f4ce76954935f65b67b7f75e7425876a3c7452 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.722604807-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-uw4p9muz/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.724915785-05:00 Successfully built storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.725120943-05:00 Installing collected packages: storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.725248593-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.764506834-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.770212813-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.771941903-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.835566969-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.835747648-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.946745861-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.946769581-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:42.946775421-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:43.426952560-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:43.429183687-05:00 Installing build dependencies: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.625913655-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.626850390-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.759356592-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.760405716-05:00 Getting requirements to build editable: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.969233154-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:45.970909275-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.180467388-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.261161089-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.262257823-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.263204518-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.263915564-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.264724529-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.266114032-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.267565894-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.268271300-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.440176843-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.502956673-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.515260765-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.516024281-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.516920526-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.517793711-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.518538757-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.520722124-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.521262851-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.522022887-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.525700997-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.526609262-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.527378957-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.529968323-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.572881564-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.610905062-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.612017006-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.654072782-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.677243573-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.681416800-05:00 Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (26.2) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.712814005-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.729076615-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.732371136-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.741000108-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.742101642-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.743065797-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.743888032-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.797460014-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.803129363-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.826792311-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.827672196-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.828850659-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.839568840-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.914698561-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.968879490-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 7.5 MB/s eta 0:00:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:46.989597455-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.016077677-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.023528026-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.158498254-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.159072841-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.160090155-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.347560252-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.348169848-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=c0a47f62a4fa979d65069272ae377430365f6ae4826281aa6c7f5830f28eefb2 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.348303587-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-mp9as73q/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:47.350064818-05:00 Successfully built storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.229266582-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.471979671-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.513695298-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.515348109-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.699104166-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.911423043-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:48.911754252-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-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:49.129430089-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:49.130014016-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:49.130021296-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:49.276767599-05:00 INFO[0025] Taking snapshot of full filesystem... [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:51.371073301-05:00 INFO[0027] Pushing layer registry.storeminder.ai/images/cache:8e2b0ceeab1930e147393c3f373fb50c0fb1dd9a9b5fbc329c7044185496adf7 to cache now [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:51.371251710-05:00 INFO[0027] Pushing image to registry.storeminder.ai/images/cache:8e2b0ceeab1930e147393c3f373fb50c0fb1dd9a9b5fbc329c7044185496adf7 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:51.499007318-05:00 INFO[0027] Pushed registry.storeminder.ai/images/cache@sha256:0180ab33b0fb8d0268535751b4f97402e5d20a467776e9d15443c45a84348a40 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:51.502600768-05:00 INFO[0027] Pushing image to registry.storeminder.ai/images/storeminder-report-live:0a23154cced2e434ce6416e24b6235d5cd1f1b76 [pod/analytics-report-live-8mkj2-live-build-pod/step-build-pr-image] 2026-07-17T16:54:51.690282182-05:00 INFO[0027] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:217683693c72262e8b747d2ddd7f8cab70283c060834fc08532fc272736a70f2 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:54:52.317098469-05:00 /tekton/scripts/script-2-blf2t: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:54:52.430811175-05:00 job.batch/report-live-0a23154 created [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:02.897863559-05:00 ----- live Job logs (report-live-0a23154) ----- [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089372159-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089476139-05:00 ============================= test session starts ============================== [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089485429-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089492549-05:00 cachedir: .pytest_cache [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089499319-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089505809-05:00 configfile: pyproject.toml [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089512459-05:00 plugins: anyio-4.14.2 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089519159-05:00 collecting ... collected 10 items [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089525079-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089531608-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089538218-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089544348-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089550278-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089556168-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089564458-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089570978-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089577378-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089583328-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089590258-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089596258-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089602358-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089608698-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089614878-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089620978-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089627398-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089633958-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089640178-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089646388-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089653148-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089659918-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089667318-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089674228-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089680958-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089687648-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089694678-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089701368-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089708197-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089729687-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089734317-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089738687-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089742607-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089747147-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089751377-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089755647-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089760137-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089764177-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089768457-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089772997-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089777937-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089782247-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089786907-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089791407-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089795687-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089800037-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089804497-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089841157-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089848597-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089855537-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089866067-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089873247-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089880817-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089887676-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089894816-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089902176-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089908816-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089915856-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089920246-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089924666-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089929136-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089933426-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089937866-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089942306-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089946816-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089951206-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089955476-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089959886-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089964446-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089968836-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089973246-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089984626-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089989276-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.089993746-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090005116-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090008126-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090011256-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090014216-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090017526-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090020366-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090023426-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090026316-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090029216-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090032246-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090035246-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090038346-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090041426-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090044496-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090048336-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090051356-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090054336-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090057366-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090060366-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090063886-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090066886-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090069885-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090072855-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090076885-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090079945-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090082915-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090086075-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090089185-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090092345-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090096355-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090099535-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090102515-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090105525-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090108525-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090111355-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090114315-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090117445-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090120415-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090123355-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090126185-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090129145-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090132175-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090135095-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090138145-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090141145-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090149915-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090152895-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090155815-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090158715-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090161645-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090164555-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090167495-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090170375-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090173425-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090176275-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090179145-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090182095-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090185115-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090188185-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090191265-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090194355-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090197345-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090200325-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090203265-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090206415-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090209505-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090212505-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090215475-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090218655-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090221805-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090225095-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090228255-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090231225-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090234175-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090237125-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090240065-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090243075-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090246095-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090249014-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090251904-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090254884-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090257734-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090260664-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090267674-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090270794-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090273744-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090276654-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090279624-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090282644-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090285604-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090293744-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090296814-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090299774-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090302704-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090305624-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090308554-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090311474-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090315934-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090319024-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090322064-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090325084-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090327964-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090330884-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090333834-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090336824-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090354894-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090357884-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090360934-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090363944-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090366944-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090369994-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090372984-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090375934-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090378934-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090381944-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090384934-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090387914-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090390944-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090393914-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090396854-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090399884-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090403084-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090408864-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090412014-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090415094-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090417984-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090420924-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090423914-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090426743-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090429663-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090432643-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090435653-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090438623-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090441523-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090450123-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090453133-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090456153-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090459193-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090462133-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090465173-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090468113-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090471063-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090474003-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090477473-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090480413-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090483423-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090486263-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090489253-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090492113-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090495053-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090498043-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090501023-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090504043-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090507253-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090510443-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090513683-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090516693-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090519613-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090522623-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090525613-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090528743-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090531683-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090534633-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090537613-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090540563-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090543533-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090546563-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090549503-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090552703-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090555813-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090562463-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090565553-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090568513-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090571503-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090574533-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090577393-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090580313-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090583283-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090591383-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090594413-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090597263-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090600173-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090603152-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090606102-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090609092-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090612112-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090615112-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090618172-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090621192-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090624112-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090627022-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090630002-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090632992-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090635852-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090638872-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090641732-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090644622-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090647782-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090650902-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090654072-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090657272-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090660252-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090663262-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090666272-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090669222-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090672202-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090675132-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090678082-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090681092-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090685092-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090688192-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090691152-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090695512-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090700142-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090704872-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090709412-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090714072-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090718502-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090721702-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090724622-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090727612-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090730642-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090738942-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090741932-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090744932-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090747862-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090750892-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090753732-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090756792-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090759902-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090762942-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090765972-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090768962-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090771942-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090774951-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090777911-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090781401-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090784361-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090787271-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090790231-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090793091-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090796061-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090799001-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090801951-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090804981-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090807981-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090811031-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090814031-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090817071-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090820041-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090823071-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090826051-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090829071-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090832011-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090835771-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090839371-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090846171-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090849341-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090852351-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090855451-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090858681-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090861741-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090864791-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090867791-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090870731-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090873881-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090881681-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090884791-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090888431-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090891361-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090894381-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090898151-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090901081-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090904071-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090906911-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090909891-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090912891-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090915861-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090918781-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090921751-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090924731-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090927711-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090930631-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090933761-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090936731-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090939681-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090942651-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090945541-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090948491-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090951430-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090954400-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090957390-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090960420-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090963450-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090966490-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090969500-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090972500-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090975490-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090978520-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090981740-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090984850-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090988090-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090991740-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090995040-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.090998170-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091001190-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091004180-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091007220-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091010180-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091013120-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091016050-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091019050-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091027010-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091030000-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091032990-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091035930-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091038800-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091042540-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091045570-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091048540-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091051510-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091054390-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091057340-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091060410-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091063410-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091066370-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091069310-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091072340-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091075330-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091078330-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091081250-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091084230-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091087150-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091090090-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091092930-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091095880-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091098760-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091101790-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091104740-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091107770-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091110820-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091113860-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091119790-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091122930-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091125969-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091129129-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091132299-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091135269-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091138269-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091141319-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091144349-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091147349-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091150379-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091153529-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091156669-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091159869-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091168109-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091171099-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091174129-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091177169-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091180109-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091183039-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091186079-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091188929-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091191879-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091194839-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091197849-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091200809-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091203659-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091206569-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091209599-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091212579-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091215509-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091218479-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091221749-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091224659-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091227649-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091230599-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091233679-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091237169-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091240369-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091243339-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091246219-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091249079-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091252119-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091255089-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091258169-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091261329-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091264639-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091267829-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091270729-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091273729-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091276699-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091279679-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091282649-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091285649-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091288579-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091292409-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091295589-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091298738-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091312608-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091315608-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091318558-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091321508-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091324428-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091327448-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091330908-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091333768-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091336728-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091348718-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091351748-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091354948-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091357938-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091360928-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091363888-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091366818-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091369918-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091372928-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091375838-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091382158-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091385198-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091388178-05:00 ============================== 10 errors in 0.80s ============================== [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091391158-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091395268-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091398888-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091401878-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091404808-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091407598-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091410518-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091413518-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091417048-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091420108-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091423108-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091426078-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091429018-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091436998-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091439968-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091442868-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091445798-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091449768-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091453888-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091458208-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091462478-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091466948-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091471598-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091476288-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091480867-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091485577-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091490367-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091495097-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091499957-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091504527-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091508817-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091513457-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091517947-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091522947-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091527207-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091531547-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091536377-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091540807-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091545137-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091549507-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091553947-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091558997-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091563347-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091568157-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091572337-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091577427-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091581797-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091586607-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091590847-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091594987-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091599417-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091604007-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091608677-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091613107-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091625537-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091630117-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091634447-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091639017-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091643587-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091648137-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091652757-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091657107-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091661176-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091665746-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091669596-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091673556-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091684606-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091689466-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091693926-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091698396-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091703126-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091707396-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091711766-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091716006-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091721146-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091725416-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091730566-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091734926-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091739316-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091743936-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091748706-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091753406-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091757546-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091761886-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091766476-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091770726-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091775616-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091782716-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091787086-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091791826-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091796476-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091801456-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091806736-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091811226-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091815646-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091820336-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091832796-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091838106-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091842955-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091847215-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091851795-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091856635-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091861465-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091866005-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091870325-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091874845-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091879025-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091883755-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091887815-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091892015-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091896565-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091901135-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091905715-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091910055-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091914395-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091918425-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091922435-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091926615-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091930825-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091935135-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091939575-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091943645-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091948025-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091952405-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091956775-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091961015-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091965275-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091969725-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091974165-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091978685-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091983345-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091988165-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091992055-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.091997005-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092001675-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092006305-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092019514-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092024014-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092028594-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092051644-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092064174-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092068444-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092078104-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092081904-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092085834-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092089254-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092093314-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092096554-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092099934-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092103674-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092107224-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092111064-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092114254-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092117564-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092121474-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092124884-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092128614-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092132004-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092135744-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092139034-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092142354-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092146154-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092149704-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092153014-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092156534-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092160084-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092163734-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092167244-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092170754-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092174384-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092177634-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092181174-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092184584-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092188044-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092191424-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092195264-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092198704-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092202493-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092216553-05:00 def daily_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092220083-05:00 > return _run("daily") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092223483-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092226793-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092230413-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092234063-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092237483-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092240933-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092244483-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092248113-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092251553-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092255113-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092258733-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092262083-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092265583-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092269073-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092272243-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092275523-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092278723-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092282173-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092285683-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092289173-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092292683-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092295963-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092299273-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092302623-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092305903-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092309203-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092312453-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092316103-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092319683-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092323213-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092326793-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092330263-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092334103-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092342603-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092352013-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092355683-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092359283-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092362943-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092366403-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092375933-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092387132-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092391542-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092395112-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092398462-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092401922-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092405102-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092408872-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092412662-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092416222-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092419892-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092423572-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092427142-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092430472-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092433982-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092437462-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092440832-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092444182-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092447992-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092451292-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092455032-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092458202-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092461762-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092465222-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092468802-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092472552-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092476102-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092479522-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092483012-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092486662-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092490012-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092493512-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092497002-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092500822-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092504342-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092507982-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092511402-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092514942-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092518352-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092521942-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092525232-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092528722-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092532122-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092542702-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092546412-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092549682-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092553242-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092556782-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092560282-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092563711-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092567351-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092570881-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092574301-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092578641-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092582161-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092585651-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092589731-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092593171-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092596731-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092600251-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092603881-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092607261-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092610681-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092614101-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092617711-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092621021-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092624371-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092627961-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092631411-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092635161-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092639141-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092642881-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092651491-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092655171-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092658771-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092662331-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092665791-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092669191-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092672941-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092676551-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092680141-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092683751-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092687331-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092696651-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092700301-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092703781-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092707241-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092710771-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092714981-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092718501-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092722181-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092725751-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092729581-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092733031-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092736491-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092739821-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092743610-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092748200-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092751610-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092754990-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092758440-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092762010-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092765660-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092769920-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092773420-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092776830-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092780400-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092783730-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092787240-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092790440-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092794000-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092797460-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092801210-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092805100-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092808770-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092812440-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092815950-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092819500-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092822960-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092826420-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092829830-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092833480-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092836910-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092840520-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092844050-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092853280-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092856770-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092860380-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092863900-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092867430-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092870870-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092874530-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092878670-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092882160-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092885800-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092889300-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092893040-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092896910-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092900330-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092903880-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092907390-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092910910-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092914440-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092918010-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092921560-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092929409-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092932919-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092936829-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092940169-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092943779-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092947499-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092950769-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092954679-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092957909-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092961539-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092965149-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092968579-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092972139-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092975669-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092979129-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092982639-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092986209-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092989569-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092992999-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.092996489-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093000079-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093009589-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093013209-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093016529-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093020089-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093023489-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093027199-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093030819-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093034389-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093037839-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093041249-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093045199-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093048409-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093051839-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093055349-05:00 def weekly_report(): [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093058959-05:00 > return _run("weekly") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093062459-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093065999-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093069489-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093073649-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093077309-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093080719-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093084239-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093087579-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093091079-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093094479-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093098169-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093101689-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093105428-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093108988-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093112238-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093115748-05:00 store_id = 'Fastime' [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093119138-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093122908-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093126428-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093130318-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093134118-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093137608-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093141188-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093144548-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093147928-05:00 """ [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093157058-05:00 base = _require_base() [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093160618-05:00 try: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093164248-05:00 import requests [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093167728-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093171068-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093174558-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093178178-05:00 raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093181668-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093185308-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093188868-05:00 if r.status_code == 404: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093192358-05:00 return None [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093195858-05:00 if r.status_code != 200: [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093199218-05:00 > raise ManageApiError( [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093202858-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093206258-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093209708-05:00 [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093221188-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.093225048-05:00 ----- end live Job logs ----- [pod/analytics-report-live-8mkj2-live-build-pod/step-run-live] 2026-07-17T16:55:03.121543810-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-8mkj2-live-build-pod/prepare] 2026-07-17T16:54:18.249001293-05:00 2026/07/17 21:54:18 Entrypoint initialization [pod/analytics-report-live-8mkj2-live-build-pod/place-scripts] 2026-07-17T16:54:18.639952151-05:00 2026/07/17 21:54:18 Decoded script /tekton/scripts/script-0-njs6n [pod/analytics-report-live-8mkj2-live-build-pod/place-scripts] 2026-07-17T16:54:18.663271162-05:00 2026/07/17 21:54:18 Decoded script /tekton/scripts/script-2-blf2t