[pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.293364142-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294251157-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294269857-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294273727-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294276637-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294280716-05:00 COPY . /prsrc [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294283396-05:00 WORKDIR /prsrc [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294285986-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294289316-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294291906-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-jpdg6-live-build-pod/step-prepare-dockerfile] 2026-07-13T18:58:15.294295406-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.506329800-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.506368599-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.532891878-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.532907368-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547186386-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547199526-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547203826-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547219356-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547242616-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547299556-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.547517354-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.575905351-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:1553b236ef96aa88c5b976d7bd3b8fce4a2eb1d863f16455aaefaec12939248f... [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.600154425-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:15.600175945-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:25.896502842-05:00 INFO[0010] COPY . /prsrc [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.001410644-05:00 INFO[0010] Taking snapshot of files... [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.104726266-05:00 INFO[0010] WORKDIR /prsrc [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.104839805-05:00 INFO[0010] Cmd: workdir [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.104847205-05:00 INFO[0010] Changed working directory to /prsrc [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.104986125-05:00 INFO[0010] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.105060545-05:00 INFO[0010] RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.105072925-05:00 INFO[0010] Initializing snapshotter ... [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:26.105077545-05:00 INFO[0010] Taking snapshot of full filesystem... [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:34.206854954-05:00 INFO[0018] Cmd: /bin/sh [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:34.206983504-05:00 INFO[0018] Args: [-c pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest)] [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:34.207004384-05:00 INFO[0018] Running: [/bin/sh -c pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest)] [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:34.659131849-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:34.662446645-05:00 Installing build dependencies: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.261563385-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.262362414-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.424199410-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.425759808-05:00 Getting requirements to build editable: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.665911026-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.667978354-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.874927603-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.910677578-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:37.911488557-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.121717841-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.187992807-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=02192b00fbedc9c223dee83444ef3bf2e626251c974754a36f239fe6b1a6c508 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.188013397-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-ul52dej7/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.191008693-05:00 Successfully built storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.191323133-05:00 Installing collected packages: storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.191533362-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.240238541-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.248800950-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.251323237-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.337811917-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.338078826-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.518455347-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.518594677-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:38.518606317-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:39.170815897-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:39.174510573-05:00 Installing build dependencies: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:41.980477720-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:41.981302629-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.108937052-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.109998091-05:00 Getting requirements to build editable: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.315368712-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.317174359-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.544879791-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.616905646-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.618005515-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.619133613-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.619994872-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.620989021-05:00 Requirement already satisfied: anthropic>=0.25.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (0.116.0) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.622582979-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.624336306-05:00 Requirement already satisfied: boto3>=1.34 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (1.43.47) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.625273265-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.800128356-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.868429456-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.881894119-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.883006017-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.883969466-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.884958975-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.885868513-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.888682770-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.889291659-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.890078118-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.895006502-05:00 Requirement already satisfied: botocore<1.44.0,>=1.43.47 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.43.47) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.896236070-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.897639528-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.900898144-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.960763915-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:42.999575044-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.000632223-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.032985420-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.051536786-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.054712582-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.098747943-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.114795672-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.117760548-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.127675685-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.128706104-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.129626833-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.130416802-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.180605335-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.187482986-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.210766985-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.211577624-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.212672793-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.222367880-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.287315924-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.533275239-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 1.6 MB/s eta 0:00:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.555014991-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.580310887-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.593938499-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.777163787-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.777962616-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:43.779301134-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:44.093831398-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:44.094976516-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=1ee6757aded56ace82e9f12f9450b26ead4978882d41dc514e0c3d432d2af301 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:44.095266396-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-_hpxpzlh/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:44.098616021-05:00 Successfully built storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:45.310616734-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:45.635275688-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:45.689214185-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:45.691016663-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:45.889632357-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.089093768-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.089269008-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-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.217587524-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.217614334-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.217620634-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:46.355682017-05:00 INFO[0030] Taking snapshot of full filesystem... [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:48.376174677-05:00 INFO[0032] Pushing layer registry.storeminder.ai/images/cache:1553b236ef96aa88c5b976d7bd3b8fce4a2eb1d863f16455aaefaec12939248f to cache now [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:48.376380366-05:00 INFO[0032] Pushing image to registry.storeminder.ai/images/cache:1553b236ef96aa88c5b976d7bd3b8fce4a2eb1d863f16455aaefaec12939248f [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:48.618884453-05:00 INFO[0033] Pushed registry.storeminder.ai/images/cache@sha256:f5ac5b3c57d35b6982afae59b7cdb5cbc6f2a521246c7bbf9f95d28991a89f6f [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:48.619554002-05:00 INFO[0033] Pushing image to registry.storeminder.ai/images/storeminder-report-live:0c191b7f0d04b3a8f73b12d5808b50d3eeeaaaa3 [pod/analytics-report-live-jpdg6-live-build-pod/step-build-pr-image] 2026-07-13T18:58:49.125734666-05:00 INFO[0033] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:59517e7c63c55e70593aedc0b4f54de479c87f0f2f261b567d21beb9d6d356d7 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:58:49.855767146-05:00 /tekton/scripts/script-2-7r4lh: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:58:49.939739610-05:00 job.batch/report-live-0c191b7 created [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.431183619-05:00 ----- live Job logs (report-live-0c191b7) ----- [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586366097-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586397127-05:00 ============================= test session starts ============================== [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586403327-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586408107-05:00 cachedir: .pytest_cache [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586412597-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586416477-05:00 configfile: pyproject.toml [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586420327-05:00 plugins: anyio-4.14.2 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586425587-05:00 collecting ... collected 10 items [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586429357-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586433367-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586437417-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586441397-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586445267-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586449147-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586453597-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586457547-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586461917-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586465777-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586469737-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586473497-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586477377-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586481377-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586485107-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586489147-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586493097-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586496937-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586500777-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586504527-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586508507-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586512437-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586516757-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586520727-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586524817-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586528657-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586532497-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586536327-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586540147-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586556937-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586559997-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586562677-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586565217-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586567867-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586570397-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586573067-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586575697-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586578347-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586581087-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586583787-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586586417-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586589137-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586591807-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586594487-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586597277-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586599917-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586602787-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586605467-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586608197-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586610887-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586613577-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586616287-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586618937-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586621547-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586624257-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586626947-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586629627-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586633207-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586635747-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586638407-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586641597-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586644147-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586646797-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586649457-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586652097-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586654727-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586657267-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586659897-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586662547-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586665167-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586667767-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586676707-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586679447-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586682037-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586689907-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586692547-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586697937-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586700637-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586703447-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586705967-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586708597-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586711127-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586713707-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586716437-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586719097-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586721807-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586724687-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586727377-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586730067-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586732707-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586735627-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586738267-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586740887-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586743627-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586746337-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586749037-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586752117-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586754717-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586757387-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586760037-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586763427-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586766067-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586768767-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586771457-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586774187-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586776707-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586780267-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586783047-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586785577-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586790776-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586793556-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586796176-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586798836-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586801376-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586804026-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586806736-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586809436-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586812676-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586815376-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586822586-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586825246-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586828106-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586832706-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586835396-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586838136-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586840876-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586843416-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586846106-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586848646-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586851226-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586854076-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586856746-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586859416-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586862106-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586864796-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586867496-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586870276-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586872926-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586875756-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586878406-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586881096-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586883706-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586887976-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586890666-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586893346-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586896066-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586898826-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586901456-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586904076-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586906856-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586909516-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586912286-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586914826-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586927706-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586932326-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586934896-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586937616-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586943076-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586945356-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586947456-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586949496-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586951636-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586953896-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586956036-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586963486-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586965746-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586967916-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586970026-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586972216-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586974366-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586976546-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586978646-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586980776-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586982866-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586985056-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586987096-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586989146-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586991856-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586994056-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586996236-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.586998436-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587000596-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587002766-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587004956-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587007056-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587009186-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587011356-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587013516-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587015756-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587018086-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587020216-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587022716-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587025916-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587028166-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587030866-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587032976-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587035286-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587037536-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587039766-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587041806-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587043996-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587046996-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587049066-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587051226-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587053916-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587056176-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587058316-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587060436-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587067386-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587069606-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587071786-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587073996-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587076176-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587078406-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587080616-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587082706-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587084846-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587087516-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587089706-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587091916-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587093926-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587096146-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587098176-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587100306-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587103216-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587105386-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587107586-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587110456-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587112646-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587114896-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587117096-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587119226-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587121316-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587124076-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587126256-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587128456-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587130536-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587132736-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587136806-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587139046-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587141166-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587143396-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587145486-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587147666-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587152546-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587155496-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587157586-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587159736-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587161966-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587164006-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587166166-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587168326-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587174426-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587176636-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587178726-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587180796-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587182976-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587185126-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587187376-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587189476-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587191816-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587194846-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587197286-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587199386-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587201466-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587203566-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587205686-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587207716-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587209826-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587211866-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587213916-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587216106-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587218186-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587220396-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587222536-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587224666-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587226936-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587229046-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587231146-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587233246-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587235326-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587237496-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587239606-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587241706-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587243836-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587246066-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587248176-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587250266-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587252386-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587254506-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587256616-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587258726-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587260906-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587262946-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587265066-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587267276-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587273056-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587275136-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587277306-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587279426-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587281596-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587283626-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587285776-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587287956-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587290036-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587292256-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587294416-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587296576-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587298716-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587300856-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587303036-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587305666-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587307866-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587310036-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587312046-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587314106-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587316186-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587318306-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587321036-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587323166-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587325456-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587327666-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587329876-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587332046-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587334166-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587336336-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587338426-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587340526-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587342806-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587344976-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587349466-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587351736-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587353836-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587356026-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587358126-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587360276-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587362516-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587364606-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587366776-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587369006-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587374816-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587376986-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587379176-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587381206-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587383276-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587385376-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587387566-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587389796-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587391816-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587393876-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587396046-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587398126-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587401006-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587403136-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587405236-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587407366-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587409456-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587411536-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587413626-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587415696-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587417796-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587419816-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587421906-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587424006-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587426056-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587428266-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587430416-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587432636-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587434746-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587436846-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587438936-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587441056-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587443176-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587445286-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587447396-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587449516-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587451606-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587453716-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587455856-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587458166-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587460276-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587462376-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587464476-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587466576-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587468665-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587474265-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587476485-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587478585-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587481195-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587483445-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587485505-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587487565-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587489655-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587491755-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587493865-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587495935-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587498045-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587500245-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587502355-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587504535-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587506645-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587508735-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587510815-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587513015-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587515125-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587517265-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587519355-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587521445-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587523465-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587525555-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587527575-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587529685-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587531805-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587533925-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587536115-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587538305-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587543965-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587546245-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587548395-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587550495-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587552635-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587554735-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587557005-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587559115-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587561235-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587563395-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587565615-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587567735-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587569815-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587575505-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587577645-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587579815-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587581965-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587584195-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587586295-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587588485-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587590655-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587592675-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587594805-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587596885-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587598995-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587601185-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587603335-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587605405-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587607585-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587609735-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587611905-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587614025-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587616125-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587618195-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587620375-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587622445-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587624535-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587626605-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587628705-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587630725-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587632815-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587634825-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587636965-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587639145-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587641245-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587643605-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587645735-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587647875-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587650015-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587652145-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587654255-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587656355-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587658455-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587660555-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587662665-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587664765-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587666865-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587668975-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587675535-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587677665-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587679775-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587681865-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587683955-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587686995-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587689175-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587691235-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587693355-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587695515-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587697715-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587699835-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587701935-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587704025-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587706235-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587708375-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587710635-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587712725-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587714925-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587719265-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587721435-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587723615-05:00 ============================== 10 errors in 0.87s ============================== [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587725745-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587729005-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587733255-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587735415-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587737505-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587739515-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587741585-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587744455-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587746585-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587748835-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587750985-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587753095-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587758955-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587761145-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587763255-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587765375-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587767605-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587769805-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587771845-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587773985-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587776025-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587778105-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587781035-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587783225-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587785485-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587787735-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587789975-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587792715-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587794845-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587796905-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587799095-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587801165-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587803345-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587805575-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587807695-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587809835-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587811985-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587814145-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587816235-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587818325-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587820425-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587822585-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587824735-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587826975-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587828995-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587832515-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587834665-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587836815-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587838975-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587841075-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587843195-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587845515-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587847605-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587849815-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587856085-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587858365-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587860485-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587862635-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587864735-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587866835-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587868915-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587871035-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587873055-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587875135-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587877165-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587879335-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587883465-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587885635-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587887785-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587890155-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587892355-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587894525-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587896655-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587898775-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587900905-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587902995-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587905165-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587907285-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587909515-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587911695-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587913935-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587916115-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587924275-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587929555-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587932935-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587935455-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587937755-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587940805-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587942905-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587945135-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587947355-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587949635-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587953275-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587955335-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587957515-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587964185-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587966445-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587968685-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587970885-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587973005-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587975895-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587978105-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587980305-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587982385-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587984575-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587987575-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587989605-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587991715-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587993825-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587995985-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.587998195-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588000315-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588002575-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588004755-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588007295-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588009545-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588011755-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588013975-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588016085-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588018855-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588021155-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588023265-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588025445-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588027655-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588029915-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588032095-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588034245-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588036335-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588038605-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588040775-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588042965-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588045165-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588047185-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588050545-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588052765-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588062055-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588064305-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588066355-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588068475-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588084885-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588087315-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588089525-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588092735-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588094955-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588097105-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588099275-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588101425-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588103505-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588105595-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588107775-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588109875-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588111965-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588113995-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588116175-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588118255-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588120455-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588122575-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588124715-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588126965-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588129155-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588131875-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588134075-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588136185-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588138345-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588140615-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588142775-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588145594-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588147764-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588149934-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588152124-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588154234-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588156414-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588158534-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588160614-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588163274-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588165534-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588167594-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588169874-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588176044-05:00 def daily_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588178204-05:00 > return _run("daily") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588180444-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588182454-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588184574-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588186744-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588188904-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588191104-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588193214-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588195444-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588197544-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588199654-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588201834-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588204014-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588206164-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588208294-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588210344-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588212434-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588214464-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588216564-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588218674-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588220814-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588223734-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588225924-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588228014-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588231004-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588233144-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588235244-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588237444-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588239584-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588241804-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588243924-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588246044-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588248134-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588250234-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588252324-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588254474-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588256564-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588258664-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588260864-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588262974-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588267624-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588273604-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588276124-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588278294-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588280434-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588282654-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588284714-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588286884-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588289054-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588291224-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588293454-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588295774-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588297894-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588300144-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588302264-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588304434-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588306604-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588309294-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588311504-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588313534-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588315664-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588319144-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588321814-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588323964-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588326104-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588328274-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588330624-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588332814-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588335944-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588338094-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588340204-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588342324-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588344424-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588346614-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588348814-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588350934-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588353064-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588355194-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588357294-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588359384-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588361504-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588363644-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588369394-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588371574-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588373784-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588375824-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588377974-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588380134-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588382244-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588384354-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588386454-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588388544-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588390674-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588392844-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588394964-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588397074-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588399184-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588401274-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588403404-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588405544-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588407664-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588409764-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588411944-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588413974-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588416074-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588418114-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588420244-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588422424-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588424544-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588426724-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588428844-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588430924-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588435374-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588437594-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588439704-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588441864-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588443974-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588446214-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588448384-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588450594-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588452714-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588454834-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588456934-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588463434-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588465604-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588467744-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588471774-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588473924-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588476104-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588478204-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588480424-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588482594-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588484694-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588486784-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588488784-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588490864-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588493034-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588495224-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588497324-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588499524-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588501654-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588503754-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588505844-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588507964-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588510044-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588512194-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588514324-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588516354-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588518464-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588520494-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588522624-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588524904-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588527034-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588529194-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588531404-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588533544-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588535744-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588537864-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588540014-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588542134-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588544224-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588546394-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588548514-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588550654-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588556914-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588559084-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588561184-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588563294-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588565614-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588567764-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588569884-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588572064-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588574524-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588576584-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588578884-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588581014-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588583254-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588585394-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588587454-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588589544-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588591654-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588593774-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588596124-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588598264-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588600394-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588605264-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588607424-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588609534-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588611624-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588613734-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588615924-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588617964-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588620074-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588622084-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588624164-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588626324-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588628434-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588630624-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588632734-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588634834-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588637054-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588639174-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588641274-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588643384-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588645464-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588651764-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588653964-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588656074-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588658234-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588660364-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588662464-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588664554-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588666634-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588668784-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588670944-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588673064-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588675824-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588677874-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588680094-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588682224-05:00 def weekly_report(): [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588684444-05:00 > return _run("weekly") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588686564-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588688594-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588690674-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588692774-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588694854-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588696974-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588699084-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588702154-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588704294-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588706394-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588708714-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588710834-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588712984-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588715084-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588717114-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588719214-05:00 store_id = 'Fastime' [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588721264-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588723404-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588725584-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588727764-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588729904-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588732134-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588734274-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588736364-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588742184-05:00 """ [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588744314-05:00 base = _require_base() [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588746514-05:00 try: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588748744-05:00 import requests [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588751804-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588753944-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588756064-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588758244-05:00 raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588760334-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588762454-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588764684-05:00 if r.status_code == 404: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588766834-05:00 return None [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588769254-05:00 if r.status_code != 200: [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588771494-05:00 > raise ManageApiError( [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588773684-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588775984-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588778024-05:00 [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588786904-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.588789234-05:00 ----- end live Job logs ----- [pod/analytics-report-live-jpdg6-live-build-pod/step-run-live] 2026-07-13T18:59:00.634536005-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-jpdg6-live-build-pod/prepare] 2026-07-13T18:58:08.508165138-05:00 2026/07/13 23:58:08 Entrypoint initialization [pod/analytics-report-live-jpdg6-live-build-pod/place-scripts] 2026-07-13T18:58:09.225158639-05:00 2026/07/13 23:58:09 Decoded script /tekton/scripts/script-0-pk2h9 [pod/analytics-report-live-jpdg6-live-build-pod/place-scripts] 2026-07-13T18:58:09.245196590-05:00 2026/07/13 23:58:09 Decoded script /tekton/scripts/script-2-7r4lh