[pod/analytics-report-live-8r5xk-live-build-pod/prepare] 2026-07-13T16:09:34.730432840-05:00 2026/07/13 21:09:34 Entrypoint initialization [pod/analytics-report-live-8r5xk-live-build-pod/place-scripts] 2026-07-13T16:09:35.717016283-05:00 2026/07/13 21:09:35 Decoded script /tekton/scripts/script-0-rlnmj [pod/analytics-report-live-8r5xk-live-build-pod/place-scripts] 2026-07-13T16:09:35.743308004-05:00 2026/07/13 21:09:35 Decoded script /tekton/scripts/script-2-gkcv6 [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.342338674-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343238729-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343250759-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343256319-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343261559-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343266669-05:00 COPY . /prsrc [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343271809-05:00 WORKDIR /prsrc [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343276859-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343282079-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343287249-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-8r5xk-live-build-pod/step-prepare-dockerfile] 2026-07-13T16:09:42.343293159-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.726815092-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.726862182-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.775812267-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.775832927-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791094666-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791120166-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791126796-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791139497-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791145317-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791318057-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.791613539-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.820248368-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:0db353b27b3dc6e7c99e07ffe279a9877260ede80b98dcc7f245095b422fc9df... [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.856084194-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:42.856126594-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.163030142-05:00 INFO[0009] COPY . /prsrc [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.257797933-05:00 INFO[0009] Taking snapshot of files... [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375461388-05:00 INFO[0009] WORKDIR /prsrc [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375493888-05:00 INFO[0009] Cmd: workdir [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375501108-05:00 INFO[0009] Changed working directory to /prsrc [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375707209-05:00 INFO[0009] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375728349-05:00 INFO[0009] RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375736099-05:00 INFO[0009] Initializing snapshotter ... [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:52.375752760-05:00 INFO[0009] Taking snapshot of full filesystem... [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:59.406726703-05:00 INFO[0016] Cmd: /bin/sh [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:59.406844813-05:00 INFO[0016] 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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:59.406856153-05:00 INFO[0016] 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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:59.803579743-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:09:59.805880324-05:00 Installing build dependencies: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.074069132-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.075501259-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.263794353-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.265049559-05:00 Getting requirements to build editable: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.444632112-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.445943718-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.620858179-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.658542277-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:02.659345101-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.430346762-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.431481008-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=44e660b26b012d4aa857b4ab09bbb864543942977b0784f15d79dc4c479a44db [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.431643749-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-5__6lp2r/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.434388402-05:00 Successfully built storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.434593193-05:00 Installing collected packages: storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.434726333-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.473253775-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.480440659-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.482167497-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.571117168-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.571314109-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.709634002-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.709730643-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:03.709737453-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:04.272126955-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:04.274561146-05:00 Installing build dependencies: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:06.798712463-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:06.799565467-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:06.923307904-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:06.924311118-05:00 Getting requirements to build editable: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.085001205-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.086174221-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.256885742-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.344774350-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.345901445-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.346904400-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.347776604-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.348521027-05:00 Requirement already satisfied: anthropic>=0.25.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (0.116.0) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.349772703-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.351114240-05:00 Requirement already satisfied: boto3>=1.34 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (1.43.46) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.351798013-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.502707033-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.573460611-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.586031299-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.587096894-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.587932968-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.588935993-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.589865127-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.592304948-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.592933521-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.593751125-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.597730023-05:00 Requirement already satisfied: botocore<1.44.0,>=1.43.46 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.43.46) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.598789918-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.599599122-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.602858657-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.650184397-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.687216648-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.688199543-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.722480312-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.741063438-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.743204488-05:00 Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/site-packages (from pytest>=7->storeminder==0.1.0) (26.2) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.773373558-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.789557083-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.792667408-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.800812765-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.801756070-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.802568853-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.803273567-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.848615977-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.854580365-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.877313250-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.878147954-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.879389680-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.891473776-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:07.951904836-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.177088277-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 1.9 MB/s eta 0:00:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.196832188-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.219002980-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.231071376-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.361633409-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.362257312-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.363525497-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.537002778-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.537684781-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=1920 sha256=d234f9094dc0e661e9449e6e377c2c35dd4cf1da0723600b42f6b5c14f7703f8 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.537831402-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-u1yrbh33/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:08.539742871-05:00 Successfully built storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:09.361004224-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:09.646697067-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:09.693893674-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:09.695481831-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:09.856158280-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.060366377-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.060552767-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-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.273903783-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.274015194-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.274025184-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:10.438626746-05:00 INFO[0027] Taking snapshot of full filesystem... [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:12.652796592-05:00 INFO[0029] Pushing layer registry.storeminder.ai/images/cache:0db353b27b3dc6e7c99e07ffe279a9877260ede80b98dcc7f245095b422fc9df to cache now [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:12.653040083-05:00 INFO[0029] Pushing image to registry.storeminder.ai/images/cache:0db353b27b3dc6e7c99e07ffe279a9877260ede80b98dcc7f245095b422fc9df [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:12.874061234-05:00 INFO[0030] Pushed registry.storeminder.ai/images/cache@sha256:617fec98c4c973a6ee9c3e0c6d8cd2c3d788f10884bc6d55a794721cfe57d35c [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:12.875004589-05:00 INFO[0030] Pushing image to registry.storeminder.ai/images/storeminder-report-live:cea04354793d24199128f9af45718588a672cc7b [pod/analytics-report-live-8r5xk-live-build-pod/step-build-pr-image] 2026-07-13T16:10:13.336971024-05:00 INFO[0030] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:7cef28412264c2be83e01c2c20d442f8a2ad664e0d2df1ed15d31b7f17d25108 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:13.435042406-05:00 /tekton/scripts/script-2-gkcv6: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:13.550239886-05:00 job.batch/report-live-cea0435 created [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.025420887-05:00 ----- live Job logs (report-live-cea0435) ----- [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334378288-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334488238-05:00 ============================= test session starts ============================== [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334494668-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334499318-05:00 cachedir: .pytest_cache [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334503918-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334508088-05:00 configfile: pyproject.toml [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334512378-05:00 plugins: anyio-4.14.2 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334516788-05:00 collecting ... collected 10 items [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334520868-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334525548-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334529808-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334534008-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334538288-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334542508-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334546958-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334551228-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334555488-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334559708-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334564538-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334568578-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334572938-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334577188-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334581238-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334585458-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334590639-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334594889-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334599059-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334603069-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334607299-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334611539-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334616089-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334620369-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334625379-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334629799-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334634809-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334638949-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334643199-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334658149-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334661119-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334664029-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334666779-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334669599-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334672299-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334675099-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334678139-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334681089-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334684049-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334686879-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334689669-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334692549-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334695439-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334698329-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334701239-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334704099-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334706959-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334709819-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334712679-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334715509-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334718329-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334721119-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334723969-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334726799-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334729609-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334732409-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334735269-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334738169-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334740899-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334743719-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334746589-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334749369-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334752179-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334755079-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334757889-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334760719-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334763409-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334766269-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334769199-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334772049-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334774899-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334784609-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334787699-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334790679-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334799259-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334803029-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334806199-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334809019-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334811929-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334814679-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334817559-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334820319-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334823209-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334826109-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334828990-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334831880-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334834760-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334837950-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334840770-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334843620-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334846480-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334849350-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334852180-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334855050-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334857950-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334860840-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334863660-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334866490-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334869340-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334872850-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334875760-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334878640-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334881470-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334884410-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334887280-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334890010-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334893990-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334896860-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334899610-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334902410-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334905940-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334908750-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334911590-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334914300-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334928830-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334936050-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334939880-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334942810-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334946550-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334955080-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334957970-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334960900-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334963750-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334966660-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334970040-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334972930-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334975660-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334978660-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334981400-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334984240-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334987150-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334990040-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334993400-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334996330-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.334999570-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335002450-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335005290-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335008160-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335010970-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335013830-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335016650-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335019460-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335022320-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335025210-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335028100-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335030980-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335033800-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335036640-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335039450-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335042290-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335045120-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335048050-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335050780-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335053630-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335056490-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335059240-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335062141-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335068781-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335071881-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335074871-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335077571-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335080451-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335083381-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335086241-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335095081-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335097961-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335100821-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335103661-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335106461-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335109301-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335112181-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335115011-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335118141-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335120731-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335123011-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335125231-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335127911-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335130261-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335132561-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335134991-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335137321-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335139601-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335141861-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335144141-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335146501-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335148771-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335151101-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335153451-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335155741-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335158001-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335160261-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335162581-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335164911-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335167151-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335169411-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335171681-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335173921-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335176191-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335178541-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335180701-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335182931-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335185211-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335187421-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335189641-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335191891-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335194141-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335196401-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335198551-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335200791-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335206931-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335209241-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335211511-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335213931-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335216211-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335218471-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335220711-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335222951-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335225191-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335227451-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335229791-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335231971-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335234241-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335236421-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335238671-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335240921-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335243211-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335245531-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335247851-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335250211-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335252491-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335254751-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335256991-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335259251-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335261481-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335263741-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335266021-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335268291-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335270561-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335272811-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335275051-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335277291-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335279581-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335282861-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335285151-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335289772-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335292172-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335294362-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335296702-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335298962-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335301142-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335303422-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335305722-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335307952-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335314142-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335316342-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335318592-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335321072-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335323352-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335325642-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335327892-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335330252-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335332502-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335334812-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335337092-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335339322-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335341572-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335343832-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335346012-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335348232-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335350412-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335352642-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335354962-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335357232-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335359652-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335362022-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335364292-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335366552-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335368812-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335371062-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335373342-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335375592-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335377892-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335380192-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335382462-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335384722-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335387562-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335389902-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335392182-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335394482-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335396782-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335399052-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335401352-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335403652-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335405842-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335408082-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335410342-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335417562-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335419842-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335422092-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335424342-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335426652-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335428802-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335431032-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335433282-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335435582-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335437852-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335440242-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335442502-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335444732-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335446972-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335449292-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335451512-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335454762-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335457112-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335459312-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335461532-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335463712-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335465942-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335468232-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335470522-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335472802-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335475132-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335477422-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335479742-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335482002-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335484242-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335486492-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335488722-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335491092-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335493352-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335498912-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335501252-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335503622-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335505892-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335508182-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335510452-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335512752-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335515053-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335517323-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335519663-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335521853-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335535263-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335537893-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335540073-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335542303-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335544613-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335546873-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335549123-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335551283-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335553563-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335555923-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335558163-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335560573-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335562843-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335565153-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335567383-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335569683-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335571903-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335574153-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335576413-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335578673-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335580863-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335583083-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335585263-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335587493-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335589753-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335592033-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335594413-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335596803-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335599093-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335601343-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335603593-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335605843-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335608093-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335610333-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335612623-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335614883-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335617163-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335619423-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335621673-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335623933-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335626203-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335628453-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335631233-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335633573-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335635823-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335642023-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335644213-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335646483-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335648723-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335650903-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335653163-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335655453-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335657793-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335660063-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335662233-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335664453-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335666783-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335669063-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335671363-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335673663-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335675923-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335678183-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335680423-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335682663-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335684913-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335687173-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335689443-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335691663-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335693903-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335696083-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335698323-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335700583-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335702863-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335705153-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335707503-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335713353-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335715723-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335718093-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335720403-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335722653-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335724963-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335727213-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335729463-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335731753-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335734013-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335736343-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335738593-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335740903-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335743154-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335749244-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335751524-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335753834-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335756184-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335758364-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335760584-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335762894-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335765074-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335767324-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335769574-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335771894-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335774224-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335776384-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335778614-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335780924-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335783174-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335785454-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335787804-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335790134-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335792444-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335794744-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335797034-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335799254-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335801564-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335803814-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335806034-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335808244-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335810414-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335812614-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335814874-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335817164-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335819544-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335821804-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335824064-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335826324-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335828574-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335830804-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335833044-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335835284-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335837964-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335840314-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335842574-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335844914-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335847234-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335853894-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335856194-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335858454-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335860734-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335863054-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335865334-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335867614-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335869794-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335872084-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335874464-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335876744-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335879014-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335881324-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335883664-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335885934-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335888244-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335890484-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335892734-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335894984-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335899614-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335902024-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335904304-05:00 ============================== 10 errors in 0.81s ============================== [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335906594-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335909664-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335912574-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335914994-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335923644-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335927864-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335930554-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335932854-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335935114-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335937384-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335939674-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335941954-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335944264-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335951204-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335953564-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335955804-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335958054-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335960384-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335962554-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335964784-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335966974-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335969224-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335971895-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335974165-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335976545-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335979675-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335981945-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335984265-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335986575-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335988825-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335991145-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335993415-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335995675-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.335997935-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336000235-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336002495-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336004815-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336007115-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336009415-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336011695-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336013955-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336016205-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336018465-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336020855-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336023075-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336025625-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336027925-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336030195-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336032445-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336034615-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336036855-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336039135-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336041365-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336043685-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336049615-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336051885-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336054145-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336056995-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336059275-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336061535-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336063785-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336066125-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336068335-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336070555-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336072745-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336074995-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336080195-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336082545-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336084885-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336087205-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336089475-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336091805-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336094075-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336096335-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336098605-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336100845-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336103175-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336105455-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336107805-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336110335-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336112605-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336114865-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336117215-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336119465-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336122175-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336124485-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336126835-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336129745-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336131925-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336134245-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336136555-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336138865-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336141115-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336143345-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336145645-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336147985-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336153995-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336156285-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336158585-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336161085-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336164305-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336166615-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336168955-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336171315-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336173565-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336176535-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336178715-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336180945-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336183125-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336185475-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336187775-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336190115-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336192465-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336194745-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336197045-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336199385-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336201655-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336204015-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336206335-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336208575-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336211456-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336213786-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336216076-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336218326-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336221416-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336223706-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336225956-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336228196-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336230416-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336232656-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336234886-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336237226-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336239406-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336242076-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336244356-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336247456-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336253496-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336255696-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336257986-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336268976-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336272326-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336274726-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336279246-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336281576-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336283876-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336286186-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336288446-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336290816-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336293066-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336295366-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336297556-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336299786-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336301956-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336304246-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336306506-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336308816-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336311156-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336313486-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336315776-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336318016-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336320266-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336322526-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336324776-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336327076-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336329396-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336331636-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336333906-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336336136-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336338386-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336340616-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336342856-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336345126-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336348086-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336350866-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336353986-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336356336-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336358506-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336360886-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336367606-05:00 def daily_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336369956-05:00 > return _run("daily") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336372226-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336374426-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336376726-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336379026-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336381286-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336383586-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336385856-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336388096-05:00 analytics/src/storeminder/runner.py:306: in run_daily [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336391136-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336393376-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336395646-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336397876-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336400116-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336402376-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336404546-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336406806-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336409006-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336411726-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336414046-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336416346-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336418716-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336421126-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336423376-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336425726-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336427986-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336430256-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336432556-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336434806-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336437066-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336439326-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336441586-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336443936-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336446256-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336448527-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336450777-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336453027-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336455267-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336457487-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336459777-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336465197-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336471397-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336473757-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336476057-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336478347-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336480647-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336482817-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336485057-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336487337-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336489587-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336492667-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336495007-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336497277-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336499507-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336501737-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336503987-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336506227-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336508447-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336510807-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336512997-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336515207-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336517527-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336519877-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336522147-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336524467-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336526777-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336529057-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336531377-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336533637-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336535927-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336538217-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336540517-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336542777-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336545067-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336547327-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336549597-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336551867-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336554977-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336557227-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336559637-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336561907-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336564177-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336566507-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336572797-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336575217-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336577417-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336579717-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336582037-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336584297-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336586567-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336588747-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336590977-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336593287-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336595537-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336597877-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336600147-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336602407-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336604637-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336606877-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336609207-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336611427-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336613657-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336615977-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336618167-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336620447-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336622607-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336624857-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336627177-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336629427-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336631777-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336634057-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336636357-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336640787-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336643197-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336645467-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336648287-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336650537-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336652857-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336655137-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336657417-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336659717-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336661987-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336664277-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336666607-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336672547-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336674857-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336677207-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336679577-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336681927-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336684107-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336686528-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336688818-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336691108-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336693468-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336695678-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336697908-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336700918-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336703248-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336705508-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336707828-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336710078-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336712318-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336714598-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336716848-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336719178-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336721508-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336723818-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336725988-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336728258-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336730438-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336732698-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336734958-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336737228-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336739518-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336741848-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336744218-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336746458-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336748738-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336751028-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336753288-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336755528-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336757918-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336760148-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336762398-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336768308-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336770628-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336772948-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336775228-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336777488-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336779738-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336782018-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336784338-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336786668-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336788868-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336791248-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336793538-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336795828-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336798168-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336800348-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336802588-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336804948-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336807198-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336810208-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336812498-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336814758-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336819268-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336821608-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336823918-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336826208-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336828518-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336830778-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336832948-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336835158-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336837338-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336839578-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336841888-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336844248-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336846598-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336848968-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336851228-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336853468-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336855708-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336857988-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336860278-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336862528-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336864868-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336871258-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336873578-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336875838-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336878118-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336880378-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336882648-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336884918-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336887198-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336889458-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336891828-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336894198-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336896408-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336898668-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336900948-05:00 def weekly_report(): [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336903778-05:00 > return _run("weekly") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336906178-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336908388-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336910678-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336913008-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336915268-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336923818-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336928419-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336930779-05:00 analytics/src/storeminder/runner.py:325: in run_weekly [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336933109-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336935499-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336937799-05:00 analytics/src/storeminder/runner.py:157: in _run_report [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336940039-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336942289-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336944619-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336946819-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336949149-05:00 store_id = 'Fastime' [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336951369-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336953629-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336955899-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336958189-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336960529-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336962779-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336965059-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336967309-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336969589-05:00 """ [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336976939-05:00 base = _require_base() [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336979239-05:00 try: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336981499-05:00 import requests [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336983909-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336986189-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336988629-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336990909-05:00 raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336993729-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336996089-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.336998379-05:00 if r.status_code == 404: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337000629-05:00 return None [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337002949-05:00 if r.status_code != 200: [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337005199-05:00 > raise ManageApiError( [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337007459-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337009829-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337012029-05:00 [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337018199-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.337020639-05:00 ----- end live Job logs ----- [pod/analytics-report-live-8r5xk-live-build-pod/step-run-live] 2026-07-13T16:10:24.418075735-05:00 ==> live build: status=Failed conclusion=failure