[pod/analytics-report-live-t2z6t-live-build-pod/prepare] 2026-07-14T20:41:17.126235993-05:00 2026/07/15 01:41:17 Entrypoint initialization [pod/analytics-report-live-t2z6t-live-build-pod/place-scripts] 2026-07-14T20:41:18.212786786-05:00 2026/07/15 01:41:18 Decoded script /tekton/scripts/script-0-kg9rr [pod/analytics-report-live-t2z6t-live-build-pod/place-scripts] 2026-07-14T20:41:18.233066070-05:00 2026/07/15 01:41:18 Decoded script /tekton/scripts/script-2-tr24n [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.436592794-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437285380-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437288330-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437290220-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437292060-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437293640-05:00 COPY . /prsrc [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437295300-05:00 WORKDIR /prsrc [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437296960-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437298660-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437300280-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-t2z6t-live-build-pod/step-prepare-dockerfile] 2026-07-14T20:41:22.437302710-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.633419436-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.633461786-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.655113913-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.655129223-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663732528-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663745308-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663749498-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663759468-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663763188-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.663848927-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.664086786-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.693339543-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:187400e2446e8270a798807285773b860147387f9cfa61499219a08a8d0c1d63... [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.712462253-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:22.712479493-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.771940941-05:00 INFO[0008] COPY . /prsrc [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.856135910-05:00 INFO[0008] Taking snapshot of files... [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990140040-05:00 INFO[0008] WORKDIR /prsrc [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990154100-05:00 INFO[0008] Cmd: workdir [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990159800-05:00 INFO[0008] Changed working directory to /prsrc [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990424938-05:00 INFO[0008] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990435588-05:00 INFO[0008] 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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990440708-05:00 INFO[0008] Initializing snapshotter ... [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:30.990445098-05:00 INFO[0008] Taking snapshot of full filesystem... [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:36.699501847-05:00 INFO[0014] Cmd: /bin/sh [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:36.699605597-05:00 INFO[0014] 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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:36.699623047-05:00 INFO[0014] 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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:36.998064885-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:36.999668197-05:00 Installing build dependencies: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.054908781-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.055625158-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.183483884-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.184421699-05:00 Getting requirements to build editable: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.317943675-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.318898980-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.454791834-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.497800008-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.498409205-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.690435963-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.691151039-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=5344451dacf6486319bc7018e5720e0913f9031a92d337ae341c924053b53bcc [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.691349108-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-8o80expm/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.693700376-05:00 Successfully built storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.693887705-05:00 Installing collected packages: storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.694030414-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.727967285-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.733516516-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.735419076-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.789739910-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.789889899-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.926821858-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.927010507-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:39.927020376-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:40.311012563-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:40.313006312-05:00 Installing build dependencies: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.207545537-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.208149334-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.316120125-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.317042520-05:00 Getting requirements to build editable: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.487140883-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.488384537-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.672582186-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.737860252-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.738898796-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.739857651-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.740577097-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.741355083-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.742746716-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.744182758-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.745048644-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.910194463-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.983048929-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.995409354-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.996441199-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.997397444-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.998337439-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:42.999219124-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.001563162-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.002284278-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.003108584-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.007503420-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.008473745-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.009294381-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.012656393-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.065424135-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.108978835-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.110185859-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.153903428-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.169195478-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.171321126-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.204763920-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.227495430-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.230594154-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.237945715-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.238936380-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.240034694-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.240926090-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.292441718-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.299842679-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.332014159-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.333005904-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.334424186-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.347165209-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.427273347-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.494119274-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 6.0 MB/s eta 0:00:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.510872116-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.528456383-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.532705831-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.652139151-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.652728618-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.653652223-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.819643248-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.820278995-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=340c0dbbeb5016bce9045c498609c566ff03a2e8d37094689b42d2d0b7eabe66 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.820408264-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-h3ut1wbx/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:43.822179655-05:00 Successfully built storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:44.543911049-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:44.731214981-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:44.767973787-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:44.769464699-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:44.924736500-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.083111915-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.083336354-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-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.207292940-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.207402080-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.207408760-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:45.366342331-05:00 INFO[0022] Taking snapshot of full filesystem... [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:47.240935242-05:00 INFO[0024] Pushing layer registry.storeminder.ai/images/cache:187400e2446e8270a798807285773b860147387f9cfa61499219a08a8d0c1d63 to cache now [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:47.241080761-05:00 INFO[0024] Pushing image to registry.storeminder.ai/images/cache:187400e2446e8270a798807285773b860147387f9cfa61499219a08a8d0c1d63 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:47.361257667-05:00 INFO[0024] Pushed registry.storeminder.ai/images/cache@sha256:fe407046c39a8d4845ef70b4ff51507f342189cc797d3440ba49882c4e2b5bb6 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:47.361982723-05:00 INFO[0024] Pushing image to registry.storeminder.ai/images/storeminder-report-live:83f033079baa62a11a257e781e264888125fb384 [pod/analytics-report-live-t2z6t-live-build-pod/step-build-pr-image] 2026-07-14T20:41:47.558204518-05:00 INFO[0024] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:52636be616bfcead40399ddfa5d1ff61d32412fc5e2f0d0ea46498315f8a3257 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:47.849322522-05:00 /tekton/scripts/script-2-tr24n: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:47.948562528-05:00 job.batch/report-live-83f0330 created [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.388116993-05:00 ----- live Job logs (report-live-83f0330) ----- [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.574956286-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575056045-05:00 ============================= test session starts ============================== [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575061375-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575066535-05:00 cachedir: .pytest_cache [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575070165-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575073425-05:00 configfile: pyproject.toml [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575076825-05:00 plugins: anyio-4.14.2 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575081545-05:00 collecting ... collected 10 items [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575084885-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575088815-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575092345-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575096125-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575099975-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575103445-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575107045-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575110805-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575114585-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575118245-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575121635-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575124855-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575128365-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575132125-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575135925-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575139285-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575142865-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575146205-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575149475-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575152775-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575156165-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575159785-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575163695-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575167695-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575171045-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575174365-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575178384-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575181784-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575185034-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575198804-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575201284-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575203574-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575205714-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575207984-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575210144-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575212384-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575215114-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575217564-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575219864-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575222974-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575225284-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575227594-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575229964-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575232234-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575234564-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575236804-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575239124-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575241484-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575243794-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575246114-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575248534-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575250754-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575253624-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575256044-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575258254-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575261154-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575263514-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575265914-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575268214-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575270484-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575272904-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575275074-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575277464-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575279694-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575282114-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575284384-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575288104-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575290514-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575292874-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575295284-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575297934-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575305954-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575308314-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575310704-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575318004-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575320344-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575324714-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575327054-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575329524-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575331704-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575333944-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575336174-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575338404-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575345554-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575347954-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575350954-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575353344-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575355664-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575358084-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575360874-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575363194-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575365683-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575368053-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575370713-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575373053-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575375353-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575378203-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575380803-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575383013-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575385473-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575387713-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575390013-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575392343-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575394643-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575397043-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575399253-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575401513-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575404413-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575406603-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575409003-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575411563-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575414203-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575416453-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575418643-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575420843-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575423273-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575426123-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575428423-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575430723-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575437193-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575440563-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575442893-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575445133-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575448683-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575450973-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575453603-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575455743-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575457963-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575460183-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575463013-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575466143-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575468373-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575470703-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575473183-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575475483-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575477853-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575480143-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575482403-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575484943-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575493513-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575497543-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575499873-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575502113-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575504973-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575507303-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575509583-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575511983-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575514213-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575516553-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575518793-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575521203-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575526293-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575528483-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575530883-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575533233-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575535403-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575537773-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575543953-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575546393-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575548603-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575551173-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575553522-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575555902-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575558162-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575565912-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575568302-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575570522-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575573022-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575575332-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575577642-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575579902-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575582162-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575584492-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575586632-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575588822-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575591002-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575593242-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575595562-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575597792-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575600132-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575602482-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575604822-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575607172-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575610072-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575612352-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575614672-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575616902-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575620022-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575622332-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575624532-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575627112-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575629892-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575632152-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575634452-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575636852-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575639162-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575641372-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575643652-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575646042-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575648182-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575650392-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575652982-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575655132-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575657382-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575659632-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575661922-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575664132-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575666322-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575672862-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575675272-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575677542-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575679812-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575682202-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575684562-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575687142-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575689362-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575691602-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575693892-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575696212-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575698492-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575700622-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575702902-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575705102-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575707272-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575709602-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575711822-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575714162-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575716492-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575718922-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575721182-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575723492-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575725702-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575728082-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575730282-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575732562-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575734852-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575737082-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575739362-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575742871-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575745131-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575747581-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575750481-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575752781-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575755071-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575762211-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575765281-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575767661-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575770111-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575772431-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575774581-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575776821-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575779041-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575785151-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575787511-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575789701-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575791921-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575794281-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575796571-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575799321-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575801661-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575803921-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575806211-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575808521-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575810761-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575813001-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575815271-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575817561-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575819701-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575822731-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575824901-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575827071-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575829421-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575831911-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575834251-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575836591-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575838951-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575842031-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575844331-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575846551-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575848821-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575851121-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575853421-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575857721-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575860471-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575863491-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575865921-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575868151-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575870441-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575872781-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575875051-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575877281-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575879591-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575881881-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575884121-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575886381-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575888861-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575895641-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575897881-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575900661-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575902901-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575905131-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575907281-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575909531-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575912471-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575914691-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575917071-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575919481-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575921701-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575923971-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575926191-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575928501-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575930750-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575932980-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575935590-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575937740-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575940010-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575942160-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575944340-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575946660-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575948940-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575951260-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575953590-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575955880-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575958190-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575960420-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575962990-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575965300-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575967610-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575969910-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575972630-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575978260-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575980690-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575982980-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575985460-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575987930-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575990240-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575992550-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575994930-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575997310-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.575999630-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576005780-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576008030-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576010410-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576012550-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576014840-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576017150-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576019440-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576021650-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576023770-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576026030-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576028340-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576030620-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576032910-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576035240-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576037450-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576039750-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576041960-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576044880-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576047140-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576049360-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576051640-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576053760-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576055970-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576058130-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576060550-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576062900-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576065190-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576067570-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576069920-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576072130-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576074380-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576076650-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576078870-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576081110-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576083380-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576085670-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576087910-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576090210-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576092430-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576094720-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576096970-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576099190-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576101430-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576103660-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576105860-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576108100-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576114210-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576116389-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576118639-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576121469-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576123689-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576125929-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576128189-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576130419-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576132639-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576134789-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576137029-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576139389-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576141669-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576143919-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576146499-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576148739-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576150999-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576153219-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576155459-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576157659-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576159919-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576162169-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576164309-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576166529-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576168679-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576170869-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576173169-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576175409-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576177759-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576180119-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576185769-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576188179-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576190419-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576193039-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576195269-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576197539-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576199859-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576202159-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576204399-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576206669-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576208919-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576211139-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576214909-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576217189-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576225809-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576228069-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576230739-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576235009-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576238319-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576241629-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576244829-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576247949-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576251609-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576254879-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576259809-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576263209-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576266279-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576269469-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576272799-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576276449-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576279579-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576282729-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576285869-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576289479-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576292919-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576296329-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576299619-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576303309-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576306448-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576309678-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576313048-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576316018-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576319558-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576323008-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576326328-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576330128-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576333648-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576336838-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576340328-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576343498-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576346748-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576349788-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576353088-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576356308-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576359458-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576362618-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576365778-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576369208-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576379988-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576383968-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576387488-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576391058-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576394358-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576397928-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576401418-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576404518-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576407698-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576411448-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576414758-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576418178-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576421668-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576424838-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576428388-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576431858-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576435118-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576438428-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576441618-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576451678-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576456278-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576459838-05:00 ============================== 10 errors in 0.91s ============================== [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576463268-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576467278-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576471218-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576474638-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576478128-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576481138-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576484378-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576506847-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576512857-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576516267-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576519587-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576522877-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576526237-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576537617-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576540977-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576544227-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576547707-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576551607-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576554897-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576558237-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576561337-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576564557-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576567847-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576571257-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576574867-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576577697-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576580047-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576582847-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576585157-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576587497-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576589787-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576592057-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576594337-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576596617-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576598857-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576601107-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576603467-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576605797-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576608037-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576610357-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576612597-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576614977-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576617837-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576620217-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576622397-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576625147-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576627437-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576629697-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576632037-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576634227-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576636467-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576638747-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576641017-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576643357-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576651297-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576653617-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576655877-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576658147-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576660407-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576662657-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576664927-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576667287-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576669477-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576671717-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576673897-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576676137-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576683207-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576685657-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576688146-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576690506-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576692886-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576695166-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576697456-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576699706-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576702016-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576704376-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576706756-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576709036-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576711306-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576713566-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576715966-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576718226-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576720486-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576722766-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576725046-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576727316-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576729596-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576733286-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576735526-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576737846-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576740136-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576742416-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576744716-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576746896-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576749146-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576751486-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576757776-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576760076-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576762346-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576764736-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576767956-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576770286-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576772546-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576774876-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576777176-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576779526-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576781786-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576784166-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576786356-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576788606-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576790886-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576793186-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576795466-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576797796-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576800136-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576802426-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576805506-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576808946-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576812336-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576815856-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576819716-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576823556-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576827226-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576830826-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576834206-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576839186-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576842716-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576846156-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576849236-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576852666-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576854976-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576857376-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576859556-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576862336-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576864606-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576866866-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576875166-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576877386-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576879606-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576895805-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576907375-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576910345-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576919345-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576923075-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576925905-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576928425-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576930735-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576933105-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576935325-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576937835-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576940025-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576942395-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576944585-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576946925-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576949405-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576951755-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576954165-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576956485-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576958835-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576961085-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576963355-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576965825-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576968145-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576970435-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576972725-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576975035-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576977265-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576979485-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576981725-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576983985-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576986225-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576988475-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576992045-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576995545-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.576998905-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577002085-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577004265-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577006935-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577016475-05:00 def daily_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577018795-05:00 > return _run("daily") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577021065-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577023235-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577025475-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577027745-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577030045-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577032365-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577034615-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577036945-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577039195-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577041415-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577043615-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577045845-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577048045-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577050305-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577052485-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577054695-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577056865-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577059095-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577061335-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577063595-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577066975-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577070565-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577074075-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577077964-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577080314-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577082584-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577084914-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577087144-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577089494-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577091844-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577094104-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577098124-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577100474-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577102764-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577104984-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577107264-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577109574-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577111854-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577114234-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577121544-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577128704-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577132844-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577135344-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577137674-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577140084-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577143134-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577146684-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577150234-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577152664-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577154994-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577157244-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577159574-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577161944-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577164214-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577166504-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577168804-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577171094-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577173444-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577175614-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577177854-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577180054-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577182384-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577185404-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577187674-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577190064-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577192494-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577194824-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577197214-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577199564-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577201854-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577204674-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577207004-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577209334-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577212384-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577214644-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577217124-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577220764-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577223874-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577227074-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577230634-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577233974-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577237374-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577246804-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577250444-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577253724-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577257144-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577259614-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577262024-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577264274-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577266454-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577268714-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577271154-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577273593-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577276013-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577278323-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577280573-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577283003-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577285273-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577287573-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577290493-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577292803-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577295133-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577297303-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577299533-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577301693-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577304033-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577306893-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577309483-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577312783-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577316533-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577320053-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577327453-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577329973-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577332743-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577336153-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577339583-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577343083-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577346333-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577349443-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577353673-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577358213-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577361263-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577364663-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577373693-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577376103-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577378413-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577380673-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577383043-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577385233-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577387983-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577391453-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577394823-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577398283-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577401483-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577404183-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577406543-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577408783-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577411183-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577413513-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577415903-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577418253-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577420493-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577422963-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577425283-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577427513-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577429903-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577432083-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577434423-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577436603-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577438933-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577441253-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577443603-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577447083-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577450773-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577455453-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577458933-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577462243-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577465473-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577468582-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577471582-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577474602-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577477572-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577480642-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577483882-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577510192-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577516872-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577519212-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577521462-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577523742-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577526122-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577528872-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577531352-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577533562-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577536002-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577538272-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577540942-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577543322-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577545472-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577547782-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577550062-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577552302-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577555472-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577558492-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577560742-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577567862-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577570342-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577572692-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577574992-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577577392-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577580332-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577582502-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577584772-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577586922-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577589172-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577591852-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577594122-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577596502-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577598902-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577601242-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577603612-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577605912-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577608142-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577611032-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577613272-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577616032-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577622602-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577624952-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577627302-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577630952-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577633262-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577635642-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577637912-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577640202-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577642412-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577644852-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577647262-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577649502-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577651902-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577654242-05:00 def weekly_report(): [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577656581-05:00 > return _run("weekly") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577658841-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577660991-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577663301-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577665621-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577667961-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577670501-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577672831-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577675151-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577677501-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577679791-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577682011-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577684221-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577686571-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577688911-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577691141-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577694421-05:00 store_id = 'Fastime' [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577696621-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577698951-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577701231-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577703561-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577705951-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577708251-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577710661-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577712951-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577715381-05:00 """ [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577721571-05:00 base = _require_base() [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577723841-05:00 try: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577726431-05:00 import requests [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577728871-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577731211-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577733561-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577735871-05:00 raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577738291-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577740501-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577742731-05:00 if r.status_code == 404: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577744961-05:00 return None [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577747571-05:00 if r.status_code != 200: [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577750821-05:00 > raise ManageApiError( [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577754701-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577758601-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577761711-05:00 [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577773151-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.577775571-05:00 ----- end live Job logs ----- [pod/analytics-report-live-t2z6t-live-build-pod/step-run-live] 2026-07-14T20:41:58.663066720-05:00 ==> live build: status=Failed conclusion=failure