[pod/analytics-report-live-kmg4p-live-build-pod/prepare] 2026-07-19T20:42:06.484077331-05:00 2026/07/20 01:42:06 Entrypoint initialization [pod/analytics-report-live-kmg4p-live-build-pod/place-scripts] 2026-07-19T20:42:07.697525041-05:00 2026/07/20 01:42:07 Decoded script /tekton/scripts/script-0-r9lnm [pod/analytics-report-live-kmg4p-live-build-pod/place-scripts] 2026-07-19T20:42:07.732516541-05:00 2026/07/20 01:42:07 Decoded script /tekton/scripts/script-2-pn58x [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.367298012-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368029568-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368036478-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368039438-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368042418-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368044868-05:00 COPY . /prsrc [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368047288-05:00 WORKDIR /prsrc [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368049728-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368052128-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368054718-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-kmg4p-live-build-pod/step-prepare-dockerfile] 2026-07-19T20:42:14.368057388-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.618697785-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.618731024-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.637399718-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.637417958-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643408493-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643427243-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643434363-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643444353-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643460203-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.643614212-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.644748146-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.716664634-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:c0a126e4ec5d8d7db7f5ab3a18d92b08ae45ec75f98c19eab8df2c17e4a75704... [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.733515548-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:14.733536148-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:26.564879277-05:00 INFO[0011] COPY . /prsrc [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:26.808065056-05:00 INFO[0012] Taking snapshot of files... [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.169963477-05:00 INFO[0012] WORKDIR /prsrc [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.169992247-05:00 INFO[0012] Cmd: workdir [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.170004216-05:00 INFO[0012] Changed working directory to /prsrc [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.170405844-05:00 INFO[0012] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.170425264-05:00 INFO[0012] 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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.170430574-05:00 INFO[0012] Initializing snapshotter ... [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:27.170441574-05:00 INFO[0012] Taking snapshot of full filesystem... [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:34.524427836-05:00 INFO[0019] Cmd: /bin/sh [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:34.525119482-05:00 INFO[0019] 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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:34.525142612-05:00 INFO[0019] 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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:34.967447643-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:34.969890469-05:00 Installing build dependencies: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.135803525-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.136811699-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.266122490-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.267531791-05:00 Getting requirements to build editable: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.459834592-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.461091145-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.644618286-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.689921436-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.690817081-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.899112470-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.899942116-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=af4851e058924d08646c5bae7337a7f48e2e8c4ab122d2863c5e8818ce99e126 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.900086465-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-9vw3yku_/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.902770390-05:00 Successfully built storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.902964778-05:00 Installing collected packages: storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.903109948-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.943525026-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.949310153-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:37.951095123-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.022486135-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.022670094-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.158969965-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.159008214-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.159015484-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.740229581-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:38.742420279-05:00 Installing build dependencies: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.326694313-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.327646007-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.492590744-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.493961497-05:00 Getting requirements to build editable: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.753855281-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:41.755209123-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.074974335-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.165594956-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.166681560-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.167515695-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.168247051-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.169364535-05:00 Requirement already satisfied: anthropic>=0.25.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (0.117.0) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.170888466-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.172823595-05:00 Requirement already satisfied: boto3>=1.34 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.173603901-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.369212912-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.440285266-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.461031627-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.462348290-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.463714852-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.465145954-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.466322507-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.470076066-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.470939391-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.472108474-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.478610777-05:00 Requirement already satisfied: botocore<1.44.0,>=1.43.51 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.479822170-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.480989443-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.485095530-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.557505496-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.617774101-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.618977894-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.663820008-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.679820266-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.683572605-05:00 Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (25.0) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.732558435-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.753904983-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.757690061-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.771757251-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.773392991-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.774866263-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.776223435-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.875255309-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.887384000-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.932432402-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.933946263-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.935996752-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:42.956697813-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.063150445-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.236718092-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 2.4 MB/s eta 0:00:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.255973102-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.274793564-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.291048142-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.460633162-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.461126589-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.462167463-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.711429488-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.712389473-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2011 sha256=9dfbf78c4f0718ceda018a90e97834b44da26962c25b8ed18357892d94b45500 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.712616241-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-n52717uu/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:43.715537655-05:00 Successfully built storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:44.848676356-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.232398582-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.300059185-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.303285237-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.601505622-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.880565086-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:45.880778845-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-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:46.009956426-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:46.009988676-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:46.009994876-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:46.277928464-05:00 INFO[0031] Taking snapshot of full filesystem... [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:49.115197102-05:00 INFO[0034] Pushing layer registry.storeminder.ai/images/cache:c0a126e4ec5d8d7db7f5ab3a18d92b08ae45ec75f98c19eab8df2c17e4a75704 to cache now [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:49.116106097-05:00 INFO[0034] Pushing image to registry.storeminder.ai/images/cache:c0a126e4ec5d8d7db7f5ab3a18d92b08ae45ec75f98c19eab8df2c17e4a75704 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:49.271422899-05:00 INFO[0034] Pushed registry.storeminder.ai/images/cache@sha256:3d17b9d581b875a39428fbbde8031a116875a091996c421380f009833a803615 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:49.272428533-05:00 INFO[0034] Pushing image to registry.storeminder.ai/images/storeminder-report-live:0968ab374fb8a178549324091498a852a2241061 [pod/analytics-report-live-kmg4p-live-build-pod/step-build-pr-image] 2026-07-19T20:42:49.488263849-05:00 INFO[0034] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:372096d57911994925d236d1c3a3a1c29b37a2736fd103533d8736ea1f79e8f1 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:42:49.949885480-05:00 /tekton/scripts/script-2-pn58x: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:42:50.124755780-05:00 job.batch/report-live-0968ab3 created [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:00.770765264-05:00 ----- live Job logs (report-live-0968ab3) ----- [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063219742-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063241402-05:00 ============================= test session starts ============================== [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063248062-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063253702-05:00 cachedir: .pytest_cache [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063257902-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063261452-05:00 configfile: pyproject.toml [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063265332-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063268822-05:00 collecting ... collected 10 items [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063273802-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063279202-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063285312-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063289642-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063293222-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063296762-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063300332-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063304732-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063308292-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063311752-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063315552-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063318922-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063322462-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063326082-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063329482-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063332922-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063336492-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063352312-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063356592-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063360012-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063363491-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063367091-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063370951-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063374511-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063378381-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063381861-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063386581-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063390111-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063393631-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063410421-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063413441-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063415901-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063418181-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063421271-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063423571-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063425991-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063428371-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063431051-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063433551-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063435911-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063438381-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063440811-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063443231-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063445661-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063448081-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063450411-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063452831-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063456521-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063458951-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063461291-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063464331-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063466681-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063469001-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063471331-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063473631-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063476021-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063478401-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063480921-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063483231-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063485601-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063490541-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063492881-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063495241-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063497571-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063499901-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063502221-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063504441-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063506791-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063509311-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063511681-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063514131-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063521941-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063524411-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063526791-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063534391-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063536990-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063539330-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063541680-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063544160-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063546470-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063548810-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063551130-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063553450-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063556060-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063558480-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063561610-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063564010-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063566430-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063568950-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063571390-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063573770-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063576130-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063578490-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063580870-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063583240-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063585600-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063587960-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063590420-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063592740-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063595070-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063597410-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063599730-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063602040-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063604450-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063606880-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063609170-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063611550-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063613970-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063616240-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063618570-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063620900-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063623230-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063625570-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063627850-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063630180-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063632600-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063634950-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063637350-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063639750-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063646400-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063648810-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063651270-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063653660-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063655980-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063658310-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063660760-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063663030-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063665340-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063667600-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063669990-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063672340-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063674700-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063677140-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063679600-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063682050-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063684430-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063686780-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063689230-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063691610-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063693940-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063696510-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063698850-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063701190-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063703530-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063705990-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063708390-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063710749-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063713159-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063715469-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063717829-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063720239-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063722669-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063724929-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063727519-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063730019-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063732339-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063734669-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063740149-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063742799-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063745169-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063747479-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063749889-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063752279-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063754639-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063761769-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063764179-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063766499-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063768809-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063771219-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063773539-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063776069-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063778379-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063780779-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063783029-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063785359-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063787639-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063789969-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063792389-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063794749-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063797219-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063799659-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063802059-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063804429-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063806819-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063809239-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063811609-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063813949-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063816409-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063818759-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063821079-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063823419-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063825799-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063828199-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063830569-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063834769-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063839509-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063841989-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063844419-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063846859-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063849099-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063851539-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063853949-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063856269-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063858549-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063861779-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063864289-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063866709-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063868949-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063871309-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063878729-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063881169-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063885748-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063888228-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063890658-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063893058-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063896228-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063898678-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063901048-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063903408-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063905828-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063908078-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063910418-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063912678-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063914968-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063917498-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063919848-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063922368-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063924858-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063927258-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063929618-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063931988-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063934318-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063936768-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063939098-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063941488-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063943838-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063946308-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063948648-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063951578-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063954028-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063956518-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063958868-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063961258-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063963648-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063968548-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063971028-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063973288-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063977558-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063980028-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063982288-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063984728-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063989758-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063992228-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.063999688-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064001998-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064004488-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064006928-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064010018-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064012398-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064014768-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064017098-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064019428-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064021748-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064024108-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064026428-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064028808-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064031268-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064033668-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064037398-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064039688-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064042018-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064044478-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064046858-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064049268-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064051768-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064054158-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064056488-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064058827-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064061307-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064063747-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064066087-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064068477-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064070877-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064073207-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064075547-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064077887-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064080267-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064082657-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064085267-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064087617-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064089937-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064092417-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064094827-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064097107-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064099397-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064101777-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064108757-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064112477-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064114987-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064117337-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064119677-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064121987-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064124297-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064126667-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064128987-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064131327-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064133657-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064135957-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064138267-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064140587-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064142897-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064145257-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064147557-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064149947-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064152197-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064154487-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064156717-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064158997-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064161327-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064163707-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064166127-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064168537-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064170947-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064173277-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064175597-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064178007-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064180337-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064182767-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064185817-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064188177-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064193667-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064196087-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064198537-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064201027-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064203407-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064205747-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064208067-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064210367-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064212777-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064215417-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064217667-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064223967-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064226457-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064228757-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064231067-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064233416-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064235746-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064238076-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064240376-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064242686-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064245136-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064247486-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064249896-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064252306-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064255506-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064257826-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064260146-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064263156-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064265566-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064267916-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064270256-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064272526-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064274896-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064277136-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064279496-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064281926-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064284336-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064286766-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064289136-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064291526-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064293876-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064296276-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064298626-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064300986-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064303376-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064305746-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064308106-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064310466-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064312826-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064315236-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064317586-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064319936-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064322336-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064324946-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064327296-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064329906-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064345886-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064350556-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064352906-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064355386-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064357696-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064360066-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064362526-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064364946-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064367266-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064369506-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064371816-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064374246-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064376716-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064379136-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064381576-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064383936-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064386296-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064388676-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064390996-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064393306-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064395726-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064398106-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064400346-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064402666-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064404896-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064407326-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064409665-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064412035-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064414485-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064416895-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064422135-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064424615-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064426995-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064429455-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064431805-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064435355-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064437745-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064440155-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064442515-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064444835-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064447265-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064449565-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064451975-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064454325-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064461595-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064463985-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064466405-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064468795-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064471065-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064473465-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064475915-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064478245-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064480625-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064482985-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064485315-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064487655-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064489895-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064492265-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064494685-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064497145-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064499545-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064501935-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064504255-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064506585-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064508885-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064511215-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064513545-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064515905-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064518295-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064520545-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064522845-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064525105-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064527455-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064529865-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064532215-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064534685-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064537155-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064539595-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064542015-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064544385-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064546725-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064549055-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064551395-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064553775-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064556175-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064558515-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064560865-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064563355-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064571405-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064573835-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064576265-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064578695-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064581015-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064583354-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064585764-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064588044-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064590364-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064592724-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064595154-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064597704-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064600054-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064602444-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064604764-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064607124-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064609504-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064611894-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064614264-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064619224-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064621664-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064624014-05:00 ============================== 10 errors in 0.72s ============================== [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064626424-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064630424-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064633964-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064636444-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064638864-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064641134-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064643464-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064645884-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064648924-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064651384-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064653794-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064656104-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064658524-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064664994-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064667364-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064669694-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064672104-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064674494-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064676774-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064679114-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064681454-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064683854-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064687464-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064689894-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064692384-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064696134-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064698614-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064701024-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064703434-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064705904-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064708274-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064710664-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064713074-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064715654-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064718024-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064720414-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064722924-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064725304-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064727644-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064729994-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064732324-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064734654-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064737284-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064739724-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064742014-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064745084-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064747464-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064749794-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064752124-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064754364-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064756703-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064759133-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064761533-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064763893-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064775393-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064777953-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064780313-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064782643-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064785713-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064788083-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064790573-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064792953-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064795293-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064797583-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064799833-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064802103-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064807153-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064809613-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064812103-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064814533-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064816993-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064819363-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064821703-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064824073-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064826433-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064828883-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064831243-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064833643-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064836063-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064838403-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064840873-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064843213-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064845563-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064847943-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064850273-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064852613-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064855023-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064858103-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064860373-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064862803-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064865173-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064867583-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064869943-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064872203-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064874493-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064876983-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064884263-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064886703-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064889353-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064891873-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064894863-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064897243-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064899563-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064901863-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064904173-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064906553-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064908793-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064911183-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064913443-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064915753-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064918083-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064920453-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064922873-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064925243-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064927653-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064930173-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064932542-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064934902-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064937962-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064940282-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064942692-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064945012-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064947352-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064949752-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064952152-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064954622-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064956952-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064959282-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064962362-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064964722-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064967082-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064969492-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064971772-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064975732-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064978132-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064980492-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064987342-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064989632-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.064991932-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065009012-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065024122-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065028422-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065039022-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065043032-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065046462-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065049582-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065052582-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065055532-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065058522-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065061482-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065064362-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065068542-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065071422-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065074532-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065077852-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065080842-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065083812-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065086782-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065089682-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065092622-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065095582-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065099012-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065102122-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065105081-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065108101-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065111111-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065114611-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065117771-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065120741-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065123771-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065126681-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065129591-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065132491-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065135421-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065138361-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065141891-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065144741-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065148601-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065161311-05:00 def daily_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065164421-05:00 > return _run("daily") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065167391-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065170211-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065173171-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065176201-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065179171-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065182211-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065185201-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065188151-05:00 analytics/src/storeminder/runner.py:317: in run_daily [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065191041-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065194001-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065198281-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065201591-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065204581-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065207601-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065210441-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065213361-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065216221-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065219161-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065222411-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065225461-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065228501-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065231561-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065234591-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065237601-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065240571-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065243551-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065246591-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065249501-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065252491-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065255561-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065258581-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065261581-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065264601-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065267531-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065271071-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065273981-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065276961-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065279920-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065282950-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065290920-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065299880-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065303500-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065306590-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065309670-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065312630-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065315490-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065318630-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065321820-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065324760-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065327760-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065330790-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065333710-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065336730-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065354800-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065357740-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065361750-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065366110-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065370630-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065374890-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065379130-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065383510-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065388460-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065393080-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065397540-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065402110-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065406850-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065411870-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065416220-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065420690-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065425210-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065429650-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065434010-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065439220-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065444130-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065448710-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065452940-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065458229-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065462889-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065467609-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065471839-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065476519-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065481679-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065496419-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065501359-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065505549-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065511399-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065515979-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065520419-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065527479-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065531449-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065535629-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065540459-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065544539-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065548949-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065552979-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065557589-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065561819-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065566109-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065570439-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065577249-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065581829-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065586279-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065590449-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065595159-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065599259-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065603559-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065607719-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065611499-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065615479-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065619449-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065623999-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065636138-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065640888-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065644968-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065649298-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065653758-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065658148-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065662278-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065666498-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065670758-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065675178-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065679678-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065684058-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065697488-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065701718-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065705948-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065710388-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065715078-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065719118-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065723888-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065728638-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065733308-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065737968-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065742568-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065746988-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065751348-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065755958-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065760378-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065765138-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065769788-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065774638-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065778898-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065783268-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065787868-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065792388-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065796908-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065800868-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065805597-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065809787-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065813937-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065817987-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065822187-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065826357-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065830587-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065834907-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065839187-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065843607-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065847827-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065852097-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065856657-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065863197-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065867567-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065871647-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065875637-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065887607-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065891807-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065896197-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065900887-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065905077-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065909107-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065913637-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065917977-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065922067-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065926567-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065930857-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065935177-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065939877-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065944167-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065948617-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065953227-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065957207-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065961827-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065966837-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065971157-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065985966-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065990516-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065995006-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.065999826-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066004026-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066008826-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066013126-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066017656-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066021856-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066026216-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066031036-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066035616-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066040286-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066044876-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066049426-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066054176-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066058366-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066063956-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066068186-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066072936-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066077386-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066090526-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066095076-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066099676-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066104016-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066108336-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066112916-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066117866-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066121846-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066126136-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066130816-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066135046-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066139006-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066143456-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066147696-05:00 def weekly_report(): [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066152165-05:00 > return _run("weekly") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066156705-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066160635-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066164975-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066169215-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066173385-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066177605-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066181995-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066186295-05:00 analytics/src/storeminder/runner.py:336: in run_weekly [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066190455-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066195615-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066199725-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066204535-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066209015-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066213385-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066217465-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066221795-05:00 store_id = 'Fastime' [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066226035-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066230325-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066235045-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066239565-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066245715-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066250575-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066255365-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066260015-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066265275-05:00 """ [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066277965-05:00 base = _require_base() [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066282955-05:00 try: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066287605-05:00 import requests [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066292335-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066296785-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066301375-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066305185-05:00 raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066308375-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066311295-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066314275-05:00 if r.status_code == 404: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066317585-05:00 return None [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066322165-05:00 if r.status_code != 200: [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066326614-05:00 > raise ManageApiError( [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066330984-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066335404-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066345954-05:00 [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066365894-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.066369274-05:00 ----- end live Job logs ----- [pod/analytics-report-live-kmg4p-live-build-pod/step-run-live] 2026-07-19T20:43:01.102687527-05:00 ==> live build: status=Failed conclusion=failure