[pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882159744-05:00 Wrote Dockerfile.reportcheck: [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882834031-05:00 # Throwaway image for the live report build. Layers the checkout [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882841741-05:00 # (analytics/ + notebooks/ + tests) over the prod runtime so the live [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882845171-05:00 # trait suite can run with real deps + real secrets (mounted by the Job). [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882848170-05:00 FROM registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882851370-05:00 COPY . /prsrc [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882854550-05:00 WORKDIR /prsrc [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882857630-05:00 # Overlay the report package over the baked one (deps already resolved in [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882860830-05:00 # the base), then add the test runner. Prefer the [test] extra (adds [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882863770-05:00 # papermill/nbclient/scrapbook); fall back to bare pytest. [pod/analytics-report-live-9bs2p-live-build-pod/step-prepare-dockerfile] 2026-07-18T00:39:40.882867220-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.063336727-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.063381457-05:00 INFO[0000] Retrieving image registry.storeminder.ai/images/storeminder:latest from registry registry.storeminder.ai [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.081632715-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.081656035-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088560824-05:00 INFO[0000] Built cross stage deps: map[] [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088578324-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088584194-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088596724-05:00 INFO[0000] Retrieving image manifest registry.storeminder.ai/images/storeminder:latest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088601774-05:00 INFO[0000] Returning cached image manifest [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088660453-05:00 INFO[0000] Executing 0 build triggers [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.088856422-05:00 INFO[0000] Building stage 'registry.storeminder.ai/images/storeminder:latest' [idx: '0', base-idx: '-1'] [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.127745487-05:00 INFO[0000] Checking for cached layer registry.storeminder.ai/images/cache:1a7e0c0538c99d543a7df1e695e8e0f6c02c052cf32325d765f2d150de122b92... [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.158509588-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:41.158525538-05:00 INFO[0000] Unpacking rootfs as cmd COPY . /prsrc requires it. [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.602484560-05:00 INFO[0010] COPY . /prsrc [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.762429524-05:00 INFO[0010] Taking snapshot of files... [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965412373-05:00 INFO[0010] WORKDIR /prsrc [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965431973-05:00 INFO[0010] Cmd: workdir [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965436773-05:00 INFO[0010] Changed working directory to /prsrc [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965732251-05:00 INFO[0010] No files changed in this command, skipping snapshotting. [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965753011-05:00 INFO[0010] RUN pip install --no-cache-dir --no-deps -e /prsrc/analytics && (pip install --no-cache-dir -e "/prsrc/analytics[test]" || pip install --no-cache-dir pytest) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965758231-05:00 INFO[0010] Initializing snapshotter ... [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:51.965762101-05:00 INFO[0010] Taking snapshot of full filesystem... [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:58.963762295-05:00 INFO[0017] Cmd: /bin/sh [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:58.963796115-05:00 INFO[0017] 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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:58.963817685-05:00 INFO[0017] 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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:59.353088849-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:39:59.355413078-05:00 Installing build dependencies: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.264155273-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.265131828-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.379708695-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.380609281-05:00 Getting requirements to build editable: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.531078703-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.532237238-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.690394095-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.736497485-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.737488670-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.914275062-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.914871739-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2001 sha256=4f79f7696ab3bc151f39bc95472f995d2c85a7d4dce9ba09c40b659577ebbe4e [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.915005059-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-k84_dn41/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.917277749-05:00 Successfully built storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.917570927-05:00 Installing collected packages: storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.917708127-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.959450286-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.964123314-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:01.965646987-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.044627956-05:00 Successfully installed storeminder-0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.044811176-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.181574500-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.181686440-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.181692820-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.650614635-05:00 Obtaining file:///prsrc/analytics [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:02.652997645-05:00 Installing build dependencies: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:04.748415355-05:00 Installing build dependencies: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:04.749252141-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:04.861883476-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:04.862915411-05:00 Getting requirements to build editable: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.030500254-05:00 Getting requirements to build editable: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.031745598-05:00 Preparing editable metadata (pyproject.toml): started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.238878429-05:00 Preparing editable metadata (pyproject.toml): finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.325319353-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.326217759-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.327075545-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.327941641-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.328786537-05:00 Requirement already satisfied: anthropic>=0.25.0 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (0.117.0) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.330027431-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.331438295-05:00 Requirement already satisfied: boto3>=1.34 in /usr/local/lib/python3.11/site-packages (from storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.332326391-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.496170570-05:00 Collecting pytest>=7 (from storeminder==0.1.0) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.577950165-05:00 Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.592086391-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.593050156-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.594083231-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.595131517-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.595989833-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.598612641-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.599245208-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.600106174-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.604250615-05:00 Requirement already satisfied: botocore<1.44.0,>=1.43.51 in /usr/local/lib/python3.11/site-packages (from boto3>=1.34->storeminder==0.1.0) (1.43.51) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.605228870-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.606368645-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.609324191-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.661706682-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.720054204-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.721011220-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.760866867-05:00 Collecting iniconfig>=1.0.1 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.779646211-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.781814901-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.826451617-05:00 Collecting pluggy<2,>=1.5 (from pytest>=7->storeminder==0.1.0) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.847361651-05:00 Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.850199998-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.858273871-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.859194447-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.860123472-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.861045878-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.890384934-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.897066423-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.921520431-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.922389477-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.923544152-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.933906184-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:05.992670045-05:00 Downloading pytest-9.1.1-py3-none-any.whl (386 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.048154701-05:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.5/386.5 kB 7.5 MB/s eta 0:00:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.063358411-05:00 Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.080809371-05:00 Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.085289700-05:00 Checking if build backend supports build_editable: started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.206221486-05:00 Checking if build backend supports build_editable: finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.206796883-05:00 Building wheels for collected packages: storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.207814839-05:00 Building editable for storeminder (pyproject.toml): started [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.401955129-05:00 Building editable for storeminder (pyproject.toml): finished with status 'done' [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.402707605-05:00 Created wheel for storeminder: filename=storeminder-0.1.0-0.editable-py3-none-any.whl size=2001 sha256=16de86b73cad52da6844740018c0ffa131987bbec2a64ebe308d1b38e5136a47 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.402863984-05:00 Stored in directory: /tmp/pip-ephem-wheel-cache-fnvqjvww/wheels/3d/79/a1/5b9945b9b299ef8e95d41afe8b877f821e7a9e81cca81ac5fa [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:06.405113594-05:00 Successfully built storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.274856096-05:00 Installing collected packages: pluggy, iniconfig, pytest, storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.497513884-05:00 Attempting uninstall: storeminder [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.545591133-05:00 Found existing installation: storeminder 0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.547238436-05:00 Uninstalling storeminder-0.1.0: [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.741073917-05:00 Successfully uninstalled storeminder-0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.913334396-05:00 Successfully installed iniconfig-2.3.0 pluggy-1.6.0 pytest-9.1.1 storeminder-0.1.0 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:07.913530375-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-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:08.050134238-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:08.050160218-05:00 [notice] A new release of pip is available: 24.0 -> 26.1.2 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:08.050166618-05:00 [notice] To update, run: pip install --upgrade pip [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:08.145389451-05:00 INFO[0027] Taking snapshot of full filesystem... [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:10.066445278-05:00 INFO[0029] Pushing layer registry.storeminder.ai/images/cache:1a7e0c0538c99d543a7df1e695e8e0f6c02c052cf32325d765f2d150de122b92 to cache now [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:10.066615767-05:00 INFO[0029] Pushing image to registry.storeminder.ai/images/cache:1a7e0c0538c99d543a7df1e695e8e0f6c02c052cf32325d765f2d150de122b92 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:10.257644779-05:00 INFO[0029] Pushed registry.storeminder.ai/images/cache@sha256:abbb4aa08abfe4e244bed505b24cc5e4bc855df13802f0500ff99078f8d23de2 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:10.258367306-05:00 INFO[0029] Pushing image to registry.storeminder.ai/images/storeminder-report-live:6afbe5564d7cfaf8ac84bcd427ed7be9da265203 [pod/analytics-report-live-9bs2p-live-build-pod/step-build-pr-image] 2026-07-18T00:40:10.422550681-05:00 INFO[0029] Pushed registry.storeminder.ai/images/storeminder-report-live@sha256:0d78ffa92360aa49f32246c3c547b31ffa8bcf65668ddde5c427ddc5820803c1 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:11.293191008-05:00 /tekton/scripts/script-2-pmk24: line 27: steps.build-pr-image.exitCode.path: command not found [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:11.395272808-05:00 job.batch/report-live-6afbe55 created [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.840149749-05:00 ----- live Job logs (report-live-6afbe55) ----- [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951025276-05:00 Running live report trait suite (real Vertex + DB, DRY_RUN): analytics/tests/test_report_traits_live.py [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951045586-05:00 ============================= test session starts ============================== [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951052416-05:00 platform linux -- Python 3.11.15, pytest-9.1.1, pluggy-1.6.0 -- /usr/local/bin/python [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951058296-05:00 cachedir: .pytest_cache [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951064006-05:00 rootdir: /prsrc/analytics [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951068636-05:00 configfile: pyproject.toml [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951074056-05:00 plugins: anyio-4.14.2, langsmith-0.10.6 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951078616-05:00 collecting ... collected 10 items [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951082996-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951087626-05:00 analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders ERROR [ 10%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951100955-05:00 analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak ERROR [ 20%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951105735-05:00 analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales ERROR [ 30%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951110695-05:00 analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated ERROR [ 40%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951115235-05:00 analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written ERROR [ 50%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951119725-05:00 analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders ERROR [ 60%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951124155-05:00 analytics/tests/test_report_traits_live.py::test_weekly_is_sendable ERROR [ 70%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951128655-05:00 analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales ERROR [ 80%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951133015-05:00 analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated ERROR [ 90%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951137405-05:00 analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written ERROR [100%] [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951141675-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951146145-05:00 ==================================== ERRORS ==================================== [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951150555-05:00 _______________ ERROR at setup of test_daily_builds_and_renders ________________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951154855-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951160065-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951164555-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951168965-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951173305-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951177585-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951182025-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951186435-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951191195-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951195565-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951200005-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951204395-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951208785-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951213215-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951217585-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951235985-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951239205-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951242215-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951245185-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951248165-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951251035-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951256165-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951259285-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951262395-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951265535-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951268555-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951271595-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951274595-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951277625-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951280635-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951283635-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951286615-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951289685-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951292705-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951295755-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951298785-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951301835-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951304795-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951307744-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951310704-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951313664-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951317384-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951320394-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951323484-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951326384-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951329394-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951332454-05:00 _________ ERROR at setup of test_daily_is_sendable_and_no_weekly_leak __________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951335364-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951354824-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951359944-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951363024-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951366034-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951368924-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951371904-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951374944-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951377934-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951381004-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951389474-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951392634-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951395784-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951405624-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951408674-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951411674-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951414664-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951417674-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951420624-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951423854-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951426784-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951429774-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951432784-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951435814-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951438874-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951441884-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951444904-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951447914-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951450964-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951454024-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951457054-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951460054-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951463074-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951466124-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951469204-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951472214-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951475264-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951478544-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951481594-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951484654-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951487634-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951490634-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951493664-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951499404-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951502344-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951505424-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951508484-05:00 __________ ERROR at setup of test_daily_headline_labeled_total_sales ___________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951511404-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951514424-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951517484-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951520564-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951523584-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951526463-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951529403-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951532403-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951535403-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951538443-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951541463-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951549753-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951552773-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951555723-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951558703-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951561693-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951564653-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951567683-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951570603-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951573583-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951576503-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951579533-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951582513-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951585523-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951588723-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951591833-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951594843-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951598213-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951601363-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951604363-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951607493-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951610483-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951613623-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951616673-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951619733-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951622823-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951625903-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951628933-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951631943-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951634953-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951637923-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951640923-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951643913-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951647103-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951649973-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951652923-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951655943-05:00 ________________ ERROR at setup of test_daily_sms_not_truncated ________________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951658843-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951661853-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951669003-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951672133-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951675143-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951678013-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951680973-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951684053-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951692173-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951695253-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951698233-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951701333-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951704333-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951707303-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951710243-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951713273-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951716243-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951719643-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951722523-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951725513-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951728393-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951731353-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951734333-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951737333-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951740333-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951743343-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951746422-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951749442-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951752472-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951755512-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951758502-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951761472-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951764452-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951767442-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951770462-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951773562-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951778292-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951781452-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951784472-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951787502-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951790472-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951793492-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951796512-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951799572-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951802482-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951805442-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951808442-05:00 _____________ ERROR at setup of test_daily_artifact_bundle_written _____________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951811402-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951814352-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951817312-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951820272-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951823302-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951826172-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951834572-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951837612-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951840732-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951843812-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951847522-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951851962-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951855102-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951858152-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951861122-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951864132-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951867072-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951870162-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951873032-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951876132-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951879102-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951882012-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951885102-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951888122-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951891172-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951894452-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951897542-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951900652-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951904052-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951907102-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951910272-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951913282-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951916282-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951919252-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951922262-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951925272-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951928322-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951933402-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951936462-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951939462-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951942452-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951945442-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951951402-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951954552-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951957482-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951960432-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951963422-05:00 _______________ ERROR at setup of test_weekly_builds_and_renders _______________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951966302-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951969251-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951972221-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951980661-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951983731-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951986621-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951989571-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951992671-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951995691-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.951998651-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952001691-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952004681-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952007751-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952010721-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952013691-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952016651-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952019721-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952022721-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952025591-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952028571-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952031491-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952034431-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952037411-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952040461-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952043471-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952046501-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952050241-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952053181-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952056301-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952059301-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952062331-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952065311-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952068281-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952071261-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952074281-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952077271-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952080321-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952083301-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952086271-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952089221-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952092161-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952095131-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952098151-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952101151-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952104071-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952107011-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952110021-05:00 __________________ ERROR at setup of test_weekly_is_sendable ___________________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952118731-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952121791-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952124781-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952127891-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952130901-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952133771-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952136721-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952139731-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952142711-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952145821-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952148821-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952151781-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952154751-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952157791-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952160771-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952163801-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952166761-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952169751-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952172641-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952175581-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952178451-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952181471-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952184451-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952187461-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952190650-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952193730-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952196790-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952199870-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952202870-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952205920-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952208940-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952211940-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952214930-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952217940-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952223860-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952226920-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952230010-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952233020-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952235990-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952239000-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952242000-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952245000-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952247990-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952251070-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952259020-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952262040-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952265080-05:00 __________ ERROR at setup of test_weekly_headline_labeled_total_sales __________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952267970-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952270930-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952273950-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952276960-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952279970-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952282840-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952285800-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952290190-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952293270-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952297390-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952300480-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952303500-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952306580-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952309600-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952312580-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952315620-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952318590-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952321600-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952324570-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952327550-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952330450-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952333440-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952336440-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952350080-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952354340-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952357420-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952360440-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952363420-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952366400-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952369390-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952372390-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952375330-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952378300-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952381290-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952384260-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952387230-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952390200-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952393230-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952396190-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952399160-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952402120-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952405080-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952408029-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952417149-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952420039-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952422999-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952426459-05:00 _______________ ERROR at setup of test_weekly_sms_not_truncated ________________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952429329-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952432249-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952435239-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952438199-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952441149-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952443989-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952446939-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952449919-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952452919-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952456029-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952458989-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952461979-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952464939-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952467899-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952470899-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952473879-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952476809-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952479759-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952482629-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952485549-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952488399-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952491309-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952494359-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952497399-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952500429-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952503449-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952509699-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952512759-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952515749-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952518779-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952521799-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952524799-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952527809-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952530769-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952533729-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952536689-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952539649-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952542699-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952545639-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952548609-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952557139-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952560119-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952563059-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952566129-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952568989-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952571959-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952574969-05:00 ____________ ERROR at setup of test_weekly_artifact_bundle_written _____________ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952577829-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952580739-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952583699-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952586629-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952589579-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952592419-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952595379-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952598389-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952601389-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952604489-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952607539-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952610549-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952613529-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952616469-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952619428-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952624358-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952627358-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952630378-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952633288-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952636268-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952639148-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952642118-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952645218-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952648208-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952651278-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952654408-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952657428-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952660388-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952663348-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952666358-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952669408-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952672388-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952675348-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952678288-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952681258-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952684188-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952687138-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952695568-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952698668-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952701628-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952704578-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952707508-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952710508-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952713568-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952716448-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952719408-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952722408-05:00 --------------------- generated xml file: /tmp/traits.xml ---------------------- [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952725398-05:00 =========================== short test summary info ============================ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952728378-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_builds_and_renders [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952731318-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_is_sendable_and_no_weekly_leak [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952734268-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_headline_labeled_total_sales [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952737228-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_sms_not_truncated [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952740238-05:00 ERROR analytics/tests/test_report_traits_live.py::test_daily_artifact_bundle_written [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952743188-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_builds_and_renders [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952746238-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_is_sendable - s... [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952749288-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_headline_labeled_total_sales [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952755108-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_sms_not_truncated [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952758138-05:00 ERROR analytics/tests/test_report_traits_live.py::test_weekly_artifact_bundle_written [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952761128-05:00 ============================== 10 errors in 0.87s ============================== [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952764108-05:00 ===JUNIT_BEGIN=== [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952767888-05:00 @pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952771588-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952774608-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952777608-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952780478-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952783428-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952786468-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952789428-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952792918-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952795928-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952798888-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952801888-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952809828-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952812798-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952815838-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952818768-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952821738-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952824618-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952827528-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952830458-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952833397-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952836377-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952839437-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952842437-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952845567-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952848617-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952851597-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952854607-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952857527-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952860507-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952863427-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952866947-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952869937-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952872977-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952875957-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952878977-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952881947-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952884907-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952887847-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952890817-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952894497-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952899047-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952902167-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952905027-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952908897-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952911917-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952914897-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952917867-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952920707-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952923667-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952926667-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952929667-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952932647-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952940607-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952943627-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952946577-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952949517-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952952647-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952955577-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952958557-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952961537-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952964427-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952967357-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952970237-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952973167-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952979167-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952982217-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952985907-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952988957-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952991917-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952994867-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.952997907-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953000917-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953003927-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953006907-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953009877-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953012837-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953015797-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953018777-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953021717-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953024717-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953027677-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953030627-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953033567-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953036487-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953039457-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953042447-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953045276-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953048316-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953051326-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953054346-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953057306-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953060186-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953063136-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953066196-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953074266-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953077396-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953080336-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953084006-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953087066-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953090046-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953093116-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953096036-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953099036-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953102046-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953104926-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953107866-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953110746-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953114536-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953117486-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953120476-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953123486-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953126546-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953129566-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953132566-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953135556-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953138486-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953141446-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953144476-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953147436-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953150436-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953153396-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953156436-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953159386-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953162356-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953165326-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953168306-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953171266-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953174226-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953177196-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953180226-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953183166-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953186516-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953189516-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953192536-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953202936-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953205876-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953208816-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953226286-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953238846-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953243126-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953253946-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953257295-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953260935-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953263905-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953266895-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953269855-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953273085-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953277155-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953280085-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953283555-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953286445-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953289495-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953292825-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953295825-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953298915-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953302045-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953305035-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953308045-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953311055-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953314485-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953317515-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953320515-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953325085-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953328235-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953331325-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953334315-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953343715-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953349665-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953352615-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953355555-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953358525-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953361465-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953364445-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953368525-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953371385-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953375925-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953388265-05:00 def daily_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953391315-05:00 > return _run("daily") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953394235-05:00 ^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953397035-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953399985-05:00 analytics/tests/test_report_traits_live.py:94: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953403085-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953406035-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953409035-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953411955-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953414865-05:00 analytics/src/storeminder/runner.py:310: in run_daily [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953417775-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953420685-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953423565-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953426495-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953429385-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953432295-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953435085-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953437965-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953440775-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953443655-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953446555-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953449545-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953452535-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953455505-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953458465-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953461365-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953464305-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953467225-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953470135-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953473074-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953476014-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953478924-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953481864-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953484784-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953487734-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953490644-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953493514-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953496434-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953499324-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953502224-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953505164-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953515764-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953524514-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953528064-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953531324-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953534344-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953537354-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953540844-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953543794-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953546794-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953549824-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953552774-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953555784-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953558754-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953561654-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953564574-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953567474-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953570384-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953573274-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953576194-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953579034-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953581934-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953584764-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953587674-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953590594-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953594414-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953597984-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953600944-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953604034-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953607054-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953610054-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953613044-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953616014-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953618984-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953621994-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953624954-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953628004-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953630964-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953633844-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953636744-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953639654-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953642644-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953645524-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953648414-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953656694-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953659744-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953662594-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953665574-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953668614-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953671594-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953674534-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953677334-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953680284-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953683204-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953686154-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953689174-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953692154-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953695083-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953697993-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953700893-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953703843-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953706733-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953709613-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953712513-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953715343-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953718223-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953721063-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953723953-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953726923-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953729953-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953732943-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953735973-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953738963-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953747613-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953750643-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953753633-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953756903-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953760103-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953763023-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953765953-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953768883-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953771873-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953774923-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953777953-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953786103-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953789063-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953792083-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953795053-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953798003-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953801013-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953803813-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953806863-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953821253-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953824323-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953827343-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953830213-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953833223-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953836213-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953839133-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953842223-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953845203-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953848143-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953851063-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953854093-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953857043-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953859943-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953862853-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953865873-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953868703-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953871593-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953874423-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953877323-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953880253-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953883233-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953886243-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953889303-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953892313-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953895333-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953898283-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953901213-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953904143-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953907073-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953910023-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953913063-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953915992-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953923922-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953926932-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953930682-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953933712-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953936712-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953939672-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953942602-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953945542-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953948572-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953951432-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953954762-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953957762-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953960722-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953963642-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953966532-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953969492-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953972492-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953975532-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953978502-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953981572-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953984552-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953992132-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953995162-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.953998352-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954001472-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954004432-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954007392-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954010222-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954013132-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954016032-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954018942-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954021932-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954024912-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954027902-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954030882-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954034652-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954037642-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954040612-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954043522-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954046482-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954049412-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954052452-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954060852-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954063812-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954066742-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954069722-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954072642-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954075552-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954078532-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954081452-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954084382-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954087302-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954090292-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954093132-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954096072-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError@pytest.fixture(scope="module") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954099052-05:00 def weekly_report(): [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954102002-05:00 > return _run("weekly") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954104912-05:00 ^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954107732-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954110612-05:00 analytics/tests/test_report_traits_live.py:99: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954113642-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954116572-05:00 analytics/tests/test_report_traits_live.py:75: in _run [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954120392-05:00 res = fn(store, end_date=d, dry_run=True, deliver=False, clean=True) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954123302-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954126232-05:00 analytics/src/storeminder/runner.py:329: in run_weekly [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954129182-05:00 return _run_report(params, clean=clean) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954132082-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954135022-05:00 analytics/src/storeminder/runner.py:161: in _run_report [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954137921-05:00 conf = manage_api.store_config(store_id) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954140871-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954144031-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954146841-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954149771-05:00 store_id = 'Fastime' [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954152611-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954155531-05:00 def store_config(store_id: str) -> dict[str, Any] | None: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954158511-05:00 """The store's authoritative report config (== the legacy conf/{slug}.yaml). [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954161461-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954164431-05:00 Returns the config dict on 200, or None on a 404 (unknown store — the caller [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954168231-05:00 turns this into an explicit error). Raises ManageApiError when the base URL is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954171191-05:00 unset or the manage app is unreachable / returns any other status: config is [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954175801-05:00 Django-only, so we fail loud rather than run an unconfigured store. [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954183781-05:00 """ [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954186841-05:00 base = _require_base() [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954189801-05:00 try: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954192691-05:00 import requests [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954195711-05:00 r = requests.get(f"{base}/api/stores/{store_id}/config/", [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954199221-05:00 headers=_headers(), timeout=10) [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954202281-05:00 except Exception as e: # transport error → loud [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954205851-05:00 raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954208911-05:00 f"manage_api store_config({store_id}) transport error: " [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954211911-05:00 f"{type(e).__name__}: {e}") from e [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954215431-05:00 if r.status_code == 404: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954218471-05:00 return None [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954221851-05:00 if r.status_code != 200: [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954224821-05:00 > raise ManageApiError( [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954227821-05:00 f"manage_api store_config({store_id}) returned HTTP {r.status_code}") [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954230891-05:00 E storeminder.manage_api.ManageApiError: manage_api store_config(Fastime) returned HTTP 400 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954233731-05:00 [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954245241-05:00 analytics/src/storeminder/manage_api.py:93: ManageApiError===JUNIT_END=== [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.954248771-05:00 ----- end live Job logs ----- [pod/analytics-report-live-9bs2p-live-build-pod/step-run-live] 2026-07-18T00:40:21.983901504-05:00 ==> live build: status=Failed conclusion=failure [pod/analytics-report-live-9bs2p-live-build-pod/prepare] 2026-07-18T00:39:35.505926254-05:00 2026/07/18 05:39:35 Entrypoint initialization [pod/analytics-report-live-9bs2p-live-build-pod/place-scripts] 2026-07-18T00:39:36.483075298-05:00 2026/07/18 05:39:36 Decoded script /tekton/scripts/script-0-l86ch [pod/analytics-report-live-9bs2p-live-build-pod/place-scripts] 2026-07-18T00:39:36.506240724-05:00 2026/07/18 05:39:36 Decoded script /tekton/scripts/script-2-pmk24