nixbot

builds

failed python3.14-nixbot-tests checks.aarch64-darwin.nixbot-tests · build #437 · raw

1tribuchet: building on mac022Sourcing python-remove-tests-dir-hook3Sourcing python-catch-conflicts-hook.sh4Sourcing python-remove-bin-bytecode-hook.sh5Sourcing pypa-build-hook6Using pypaBuildPhase7Sourcing python-runtime-deps-check-hook8Using pythonRuntimeDepsCheckHook9Sourcing pypa-install-hook10Using pypaInstallPhase11Sourcing python-imports-check-hook.sh12Using pythonImportsCheckPhase13Sourcing python-namespaces-hook14Sourcing python-catch-conflicts-hook.sh15Sourcing pytest-check-hook16Using pytestCheckPhase
unpackPhase
17unpacking source archive /nix/store/c8rc5kh3hykxc6841i3ilhijm51nh2qa-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"
configurePhase
20no configure script, doing nothing
buildPhase
21Executing pypaBuildPhase22Creating a wheel...23pypa build flags: --no-isolation --outdir dist/ --wheel24* Getting build dependencies for wheel...25* Building wheel...26Successfully built nixbot-0.0.1-py3-none-any.whl27Finished creating a wheel...28Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheck
installPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhase
pythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhase
fixupPhase
37checking for references to /private/var/tb/3/scratch/83f14e7d2c017943/build/ in /nix/store/0r6sgmrk4z7yih2j6b3haci0v81q2r83-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/0r6sgmrk4z7yih2j6b3haci0v81q2r83-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/0r6sgmrk4z7yih2j6b3haci0v81q2r83-python3.14-nixbot-tests/lib /nix/store/0r6sgmrk4z7yih2j6b3haci0v81q2r83-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/3/scratch/83f14e7d2c017943/build/ in /nix/store/8ffps4hs4v9nfgff1yas53cvbmbzgx8y-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/8ffps4hs4v9nfgff1yas53cvbmbzgx8y-python3.14-nixbot-tests-dist42Rewriting #!/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14 to #!/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.643wrapping `/nix/store/0r6sgmrk4z7yih2j6b3haci0v81q2r83-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDir
installCheckPhase
46no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
47Executing pythonImportsCheckPhase
pytestCheckPhase
48Executing pytestCheckPhase49pytest flags: -m pytest --numprocesses=2450/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.51 warner(PytestBenchmarkWarning(text))52/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.53 warner(PytestBenchmarkWarning(text))54/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.55 warner(PytestBenchmarkWarning(text))56/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.57 warner(PytestBenchmarkWarning(text))58/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.59 warner(PytestBenchmarkWarning(text))60/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.61 warner(PytestBenchmarkWarning(text))62/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.63 warner(PytestBenchmarkWarning(text))64/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.65 warner(PytestBenchmarkWarning(text))66/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.67 warner(PytestBenchmarkWarning(text))68/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.69 warner(PytestBenchmarkWarning(text))70/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.71 warner(PytestBenchmarkWarning(text))72/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.73 warner(PytestBenchmarkWarning(text))74/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.75 warner(PytestBenchmarkWarning(text))76/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.77 warner(PytestBenchmarkWarning(text))78/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.79 warner(PytestBenchmarkWarning(text))80/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.81 warner(PytestBenchmarkWarning(text))82/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.83 warner(PytestBenchmarkWarning(text))84/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.85 warner(PytestBenchmarkWarning(text))86/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.87 warner(PytestBenchmarkWarning(text))88/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.89 warner(PytestBenchmarkWarning(text))90/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.91 warner(PytestBenchmarkWarning(text))92/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.93 warner(PytestBenchmarkWarning(text))94/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.95 warner(PytestBenchmarkWarning(text))96/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.97 warner(PytestBenchmarkWarning(text))98/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.99 warner(PytestBenchmarkWarning(text))100============================= test session starts ==============================101platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0102benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)103rootdir: /private/var/tb/3/scratch/83f14e7d2c017943/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [862 items]112113................ssss...ssss....s.s.......................sss..s......ss. [ 8%]114.ss..s.s..................s............................................. [ 16%]115........................................................................ [ 25%]116........................................................................ [ 33%]117......................s..sss.................................s.......... [ 41%]118.Loop <_UnixSelectorEventLoop running=False closed=True debug=False> that handles pid 63775 is closed119....................................................................... [ 50%]120..............................sEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEE. [ 58%]121.EE.E.EEEE.E.EEEEEEEEEEEEEEEEEEEE.E.EEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 66%]122EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEsEE.EE.E.E.EEEEEE.EEE..E.E.sEE [ 75%]123EE.EEEEE..E...EEEEEEEE.EEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.E.EEE. [ 83%]124E..E.....EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]125EEEEEEEEEEEEE..EE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]126==================================== ERRORS ====================================127____________________ ERROR at setup of test_full_lifecycle _____________________128[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14129130self = <Coroutine test_full_lifecycle>131132 def setup(self) -> None:133 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"134 if runner_fixture_id not in self.fixturenames:135 self.fixturenames.append(runner_fixture_id)136 # When loop factories are configured, resolve the loop factory137 # fixture early so that a factory variant change cascades cache138 # invalidation before any async fixture checks its cache.139 hook_caller = self.config.hook.pytest_asyncio_loop_factories140 if hook_caller.get_hookimpls():141 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)142> return super().setup()143 ^^^^^^^^^^^^^^^144145/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 146_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 147/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup148 return (yield)149 ^^^^^150nixbot/tests/conftest.py:33: in postgres_dsn151 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:152 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^153/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__154 return next(self.gen)155 ^^^^^^^^^^^^^^156_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157158tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')159dbname = 'orchestrator'160161 @contextlib.contextmanager162 def ephemeral_postgres(163 tmp_path_factory: pytest.TempPathFactory, dbname: str164 ) -> Iterator[str]:165 """Throwaway Postgres on a unix socket with migrations applied."""166 datadir = tmp_path_factory.mktemp("pgdata")167 sockdir = tmp_path_factory.mktemp("pgsock")168 subprocess.run( # noqa: S603169 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],170 check=True,171 capture_output=True,172 )173 proc = subprocess.Popen( # noqa: S603174 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],175 stdout=subprocess.DEVNULL,176 stderr=subprocess.DEVNULL,177 )178 try:179 deadline = time.monotonic() + 30180 while (181 subprocess.run( # noqa: S603182 ["pg_isready", "-h", str(sockdir), "-U", "test"],183 check=False,184 capture_output=True,185 ).returncode186 != 0187 ):188 # The socket appears before recovery finishes; createdb would189 # fail with "the database system is starting up".190 if time.monotonic() > deadline:191 msg = "postgres did not start"192> raise RuntimeError(msg)193E RuntimeError: postgres did not start194195nixbot/tests/support.py:319: RuntimeError196________________ ERROR at setup of test_enqueue_dedupes_pending ________________197[gw21] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14198199self = <Coroutine test_enqueue_dedupes_pending>200201 def setup(self) -> None:202 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"203 if runner_fixture_id not in self.fixturenames:204 self.fixturenames.append(runner_fixture_id)205 # When loop factories are configured, resolve the loop factory206 # fixture early so that a factory variant change cascades cache207 # invalidation before any async fixture checks its cache.208 hook_caller = self.config.hook.pytest_asyncio_loop_factories209 if hook_caller.get_hookimpls():210 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)211> return super().setup()212 ^^^^^^^^^^^^^^^213214/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 215_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 216/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup217 return (yield)218 ^^^^^219nixbot/tests/conftest.py:33: in postgres_dsn220 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:221 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^222/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__223 return next(self.gen)224 ^^^^^^^^^^^^^^225_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 226227tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw21'), _retention_count=3, _retention_policy='all')228dbname = 'work_queue'229230 @contextlib.contextmanager231 def ephemeral_postgres(232 tmp_path_factory: pytest.TempPathFactory, dbname: str233 ) -> Iterator[str]:234 """Throwaway Postgres on a unix socket with migrations applied."""235 datadir = tmp_path_factory.mktemp("pgdata")236 sockdir = tmp_path_factory.mktemp("pgsock")237 subprocess.run( # noqa: S603238 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],239 check=True,240 capture_output=True,241 )242 proc = subprocess.Popen( # noqa: S603243 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],244 stdout=subprocess.DEVNULL,245 stderr=subprocess.DEVNULL,246 )247 try:248 deadline = time.monotonic() + 30249 while (250 subprocess.run( # noqa: S603251 ["pg_isready", "-h", str(sockdir), "-U", "test"],252 check=False,253 capture_output=True,254 ).returncode255 != 0256 ):257 # The socket appears before recovery finishes; createdb would258 # fail with "the database system is starting up".259 if time.monotonic() > deadline:260 msg = "postgres did not start"261> raise RuntimeError(msg)262E RuntimeError: postgres did not start263264nixbot/tests/support.py:319: RuntimeError265__________________ ERROR at setup of test_failure_aggregation __________________266[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14267268self = <Coroutine test_failure_aggregation>269270 def setup(self) -> None:271 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"272 if runner_fixture_id not in self.fixturenames:273 self.fixturenames.append(runner_fixture_id)274 # When loop factories are configured, resolve the loop factory275 # fixture early so that a factory variant change cascades cache276 # invalidation before any async fixture checks its cache.277 hook_caller = self.config.hook.pytest_asyncio_loop_factories278 if hook_caller.get_hookimpls():279 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)280> return super().setup()281 ^^^^^^^^^^^^^^^282283/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 284_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 285nixbot/tests/conftest.py:33: in postgres_dsn286 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:287 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^288/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__289 return next(self.gen)290 ^^^^^^^^^^^^^^291_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 292293tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')294dbname = 'orchestrator'295296 @contextlib.contextmanager297 def ephemeral_postgres(298 tmp_path_factory: pytest.TempPathFactory, dbname: str299 ) -> Iterator[str]:300 """Throwaway Postgres on a unix socket with migrations applied."""301 datadir = tmp_path_factory.mktemp("pgdata")302 sockdir = tmp_path_factory.mktemp("pgsock")303 subprocess.run( # noqa: S603304 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],305 check=True,306 capture_output=True,307 )308 proc = subprocess.Popen( # noqa: S603309 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],310 stdout=subprocess.DEVNULL,311 stderr=subprocess.DEVNULL,312 )313 try:314 deadline = time.monotonic() + 30315 while (316 subprocess.run( # noqa: S603317 ["pg_isready", "-h", str(sockdir), "-U", "test"],318 check=False,319 capture_output=True,320 ).returncode321 != 0322 ):323 # The socket appears before recovery finishes; createdb would324 # fail with "the database system is starting up".325 if time.monotonic() > deadline:326 msg = "postgres did not start"327> raise RuntimeError(msg)328E RuntimeError: postgres did not start329330nixbot/tests/support.py:319: RuntimeError331_______________ ERROR at setup of test_claim_serializes_per_key ________________332[gw21] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14333334self = <Coroutine test_claim_serializes_per_key>335336 def setup(self) -> None:337 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"338 if runner_fixture_id not in self.fixturenames:339 self.fixturenames.append(runner_fixture_id)340 # When loop factories are configured, resolve the loop factory341 # fixture early so that a factory variant change cascades cache342 # invalidation before any async fixture checks its cache.343 hook_caller = self.config.hook.pytest_asyncio_loop_factories344 if hook_caller.get_hookimpls():345 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)346> return super().setup()347 ^^^^^^^^^^^^^^^348349/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 350_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 351nixbot/tests/conftest.py:33: in postgres_dsn352 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:353 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^354/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__355 return next(self.gen)356 ^^^^^^^^^^^^^^357_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 358359tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw21'), _retention_count=3, _retention_policy='all')360dbname = 'work_queue'361362 @contextlib.contextmanager363 def ephemeral_postgres(364 tmp_path_factory: pytest.TempPathFactory, dbname: str365 ) -> Iterator[str]:366 """Throwaway Postgres on a unix socket with migrations applied."""367 datadir = tmp_path_factory.mktemp("pgdata")368 sockdir = tmp_path_factory.mktemp("pgsock")369 subprocess.run( # noqa: S603370 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],371 check=True,372 capture_output=True,373 )374 proc = subprocess.Popen( # noqa: S603375 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],376 stdout=subprocess.DEVNULL,377 stderr=subprocess.DEVNULL,378 )379 try:380 deadline = time.monotonic() + 30381 while (382 subprocess.run( # noqa: S603383 ["pg_isready", "-h", str(sockdir), "-U", "test"],384 check=False,385 capture_output=True,386 ).returncode387 != 0388 ):389 # The socket appears before recovery finishes; createdb would390 # fail with "the database system is starting up".391 if time.monotonic() > deadline:392 msg = "postgres did not start"393> raise RuntimeError(msg)394E RuntimeError: postgres did not start395396nixbot/tests/support.py:319: RuntimeError397____________________ ERROR at setup of test_tree_hash_reuse ____________________398[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14399400self = <Coroutine test_tree_hash_reuse>401402 def setup(self) -> None:403 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"404 if runner_fixture_id not in self.fixturenames:405 self.fixturenames.append(runner_fixture_id)406 # When loop factories are configured, resolve the loop factory407 # fixture early so that a factory variant change cascades cache408 # invalidation before any async fixture checks its cache.409 hook_caller = self.config.hook.pytest_asyncio_loop_factories410 if hook_caller.get_hookimpls():411 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)412> return super().setup()413 ^^^^^^^^^^^^^^^414415/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 416_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 417nixbot/tests/conftest.py:33: in postgres_dsn418 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:419 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^420/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__421 return next(self.gen)422 ^^^^^^^^^^^^^^423_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 424425tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')426dbname = 'orchestrator'427428 @contextlib.contextmanager429 def ephemeral_postgres(430 tmp_path_factory: pytest.TempPathFactory, dbname: str431 ) -> Iterator[str]:432 """Throwaway Postgres on a unix socket with migrations applied."""433 datadir = tmp_path_factory.mktemp("pgdata")434 sockdir = tmp_path_factory.mktemp("pgsock")435 subprocess.run( # noqa: S603436 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],437 check=True,438 capture_output=True,439 )440 proc = subprocess.Popen( # noqa: S603441 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],442 stdout=subprocess.DEVNULL,443 stderr=subprocess.DEVNULL,444 )445 try:446 deadline = time.monotonic() + 30447 while (448 subprocess.run( # noqa: S603449 ["pg_isready", "-h", str(sockdir), "-U", "test"],450 check=False,451 capture_output=True,452 ).returncode453 != 0454 ):455 # The socket appears before recovery finishes; createdb would456 # fail with "the database system is starting up".457 if time.monotonic() > deadline:458 msg = "postgres did not start"459> raise RuntimeError(msg)460E RuntimeError: postgres did not start461462nixbot/tests/support.py:319: RuntimeError463______________ ERROR at setup of test_settle_interrupted_requeues ______________464[gw21] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14465466self = <Coroutine test_settle_interrupted_requeues>467468 def setup(self) -> None:469 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"470 if runner_fixture_id not in self.fixturenames:471 self.fixturenames.append(runner_fixture_id)472 # When loop factories are configured, resolve the loop factory473 # fixture early so that a factory variant change cascades cache474 # invalidation before any async fixture checks its cache.475 hook_caller = self.config.hook.pytest_asyncio_loop_factories476 if hook_caller.get_hookimpls():477 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)478> return super().setup()479 ^^^^^^^^^^^^^^^480481/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 482_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 483nixbot/tests/conftest.py:33: in postgres_dsn484 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:485 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^486/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__487 return next(self.gen)488 ^^^^^^^^^^^^^^489_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 490491tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw21'), _retention_count=3, _retention_policy='all')492dbname = 'work_queue'493494 @contextlib.contextmanager495 def ephemeral_postgres(496 tmp_path_factory: pytest.TempPathFactory, dbname: str497 ) -> Iterator[str]:498 """Throwaway Postgres on a unix socket with migrations applied."""499 datadir = tmp_path_factory.mktemp("pgdata")500 sockdir = tmp_path_factory.mktemp("pgsock")501 subprocess.run( # noqa: S603502 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],503 check=True,504 capture_output=True,505 )506 proc = subprocess.Popen( # noqa: S603507 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],508 stdout=subprocess.DEVNULL,509 stderr=subprocess.DEVNULL,510 )511 try:512 deadline = time.monotonic() + 30513 while (514 subprocess.run( # noqa: S603515 ["pg_isready", "-h", str(sockdir), "-U", "test"],516 check=False,517 capture_output=True,518 ).returncode519 != 0520 ):521 # The socket appears before recovery finishes; createdb would522 # fail with "the database system is starting up".523 if time.monotonic() > deadline:524 msg = "postgres did not start"525> raise RuntimeError(msg)526E RuntimeError: postgres did not start527528nixbot/tests/support.py:319: RuntimeError529____________ ERROR at setup of test_eval_reuse_from_cancelled_build ____________530[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14531532self = <Coroutine test_eval_reuse_from_cancelled_build>533534 def setup(self) -> None:535 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"536 if runner_fixture_id not in self.fixturenames:537 self.fixturenames.append(runner_fixture_id)538 # When loop factories are configured, resolve the loop factory539 # fixture early so that a factory variant change cascades cache540 # invalidation before any async fixture checks its cache.541 hook_caller = self.config.hook.pytest_asyncio_loop_factories542 if hook_caller.get_hookimpls():543 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)544> return super().setup()545 ^^^^^^^^^^^^^^^546547/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 548_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 549nixbot/tests/conftest.py:33: in postgres_dsn550 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:551 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^552/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__553 return next(self.gen)554 ^^^^^^^^^^^^^^555_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 556557tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')558dbname = 'orchestrator'559560 @contextlib.contextmanager561 def ephemeral_postgres(562 tmp_path_factory: pytest.TempPathFactory, dbname: str563 ) -> Iterator[str]:564 """Throwaway Postgres on a unix socket with migrations applied."""565 datadir = tmp_path_factory.mktemp("pgdata")566 sockdir = tmp_path_factory.mktemp("pgsock")567 subprocess.run( # noqa: S603568 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],569 check=True,570 capture_output=True,571 )572 proc = subprocess.Popen( # noqa: S603573 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],574 stdout=subprocess.DEVNULL,575 stderr=subprocess.DEVNULL,576 )577 try:578 deadline = time.monotonic() + 30579 while (580 subprocess.run( # noqa: S603581 ["pg_isready", "-h", str(sockdir), "-U", "test"],582 check=False,583 capture_output=True,584 ).returncode585 != 0586 ):587 # The socket appears before recovery finishes; createdb would588 # fail with "the database system is starting up".589 if time.monotonic() > deadline:590 msg = "postgres did not start"591> raise RuntimeError(msg)592E RuntimeError: postgres did not start593594nixbot/tests/support.py:319: RuntimeError595____________ ERROR at setup of test_chunk_args_splits_on_byte_limit ____________596[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14597598fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>599request = <SubRequest 'postgres_dsn' for <Function test_chunk_args_splits_on_byte_limit>>600601 @pytest.hookimpl(wrapper=True)602 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:603 if (604 fixturedef.argname == "event_loop_policy"605 and fixturedef.func.__module__ != __name__606 ):607 warnings.warn(608 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),609 )610 asyncio_mode = _get_asyncio_mode(request.config)611 if not _is_asyncio_fixture_function(fixturedef.func):612 if asyncio_mode == Mode.STRICT:613 # Ignore async fixtures without explicit asyncio mark in strict mode614 # This applies to pytest_trio fixtures, for example615 return (yield)616 if not _is_coroutine_or_asyncgen(fixturedef.func):617> return (yield)618 ^^^^^619620/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 621_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 622nixbot/tests/conftest.py:33: in postgres_dsn623 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:624 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^625/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__626 return next(self.gen)627 ^^^^^^^^^^^^^^628_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 629630tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')631dbname = 'upload'632633 @contextlib.contextmanager634 def ephemeral_postgres(635 tmp_path_factory: pytest.TempPathFactory, dbname: str636 ) -> Iterator[str]:637 """Throwaway Postgres on a unix socket with migrations applied."""638 datadir = tmp_path_factory.mktemp("pgdata")639 sockdir = tmp_path_factory.mktemp("pgsock")640 subprocess.run( # noqa: S603641 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],642 check=True,643 capture_output=True,644 )645 proc = subprocess.Popen( # noqa: S603646 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],647 stdout=subprocess.DEVNULL,648 stderr=subprocess.DEVNULL,649 )650 try:651 deadline = time.monotonic() + 30652 while (653 subprocess.run( # noqa: S603654 ["pg_isready", "-h", str(sockdir), "-U", "test"],655 check=False,656 capture_output=True,657 ).returncode658 != 0659 ):660 # The socket appears before recovery finishes; createdb would661 # fail with "the database system is starting up".662 if time.monotonic() > deadline:663 msg = "postgres did not start"664> raise RuntimeError(msg)665E RuntimeError: postgres did not start666667nixbot/tests/support.py:319: RuntimeError668___________________ ERROR at setup of test_repos_and_builds ____________________669[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14670671fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>672request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>673674 @pytest.hookimpl(wrapper=True)675 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:676 if (677 fixturedef.argname == "event_loop_policy"678 and fixturedef.func.__module__ != __name__679 ):680 warnings.warn(681 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),682 )683 asyncio_mode = _get_asyncio_mode(request.config)684 if not _is_asyncio_fixture_function(fixturedef.func):685 if asyncio_mode == Mode.STRICT:686 # Ignore async fixtures without explicit asyncio mark in strict mode687 # This applies to pytest_trio fixtures, for example688 return (yield)689 if not _is_coroutine_or_asyncgen(fixturedef.func):690> return (yield)691 ^^^^^692693/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 694_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 695nixbot/tests/conftest.py:33: in postgres_dsn696 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:697 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^698/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__699 return next(self.gen)700 ^^^^^^^^^^^^^^701_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 702703tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')704dbname = 'cli_api'705706 @contextlib.contextmanager707 def ephemeral_postgres(708 tmp_path_factory: pytest.TempPathFactory, dbname: str709 ) -> Iterator[str]:710 """Throwaway Postgres on a unix socket with migrations applied."""711 datadir = tmp_path_factory.mktemp("pgdata")712 sockdir = tmp_path_factory.mktemp("pgsock")713 subprocess.run( # noqa: S603714 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],715 check=True,716 capture_output=True,717 )718 proc = subprocess.Popen( # noqa: S603719 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],720 stdout=subprocess.DEVNULL,721 stderr=subprocess.DEVNULL,722 )723 try:724 deadline = time.monotonic() + 30725 while (726 subprocess.run( # noqa: S603727 ["pg_isready", "-h", str(sockdir), "-U", "test"],728 check=False,729 capture_output=True,730 ).returncode731 != 0732 ):733 # The socket appears before recovery finishes; createdb would734 # fail with "the database system is starting up".735 if time.monotonic() > deadline:736 msg = "postgres did not start"737> raise RuntimeError(msg)738E RuntimeError: postgres did not start739740nixbot/tests/support.py:319: RuntimeError741___________ ERROR at setup of test_eval_reuse_skipped_when_drvs_gone ___________742[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14743744self = <Coroutine test_eval_reuse_skipped_when_drvs_gone>745746 def setup(self) -> None:747 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"748 if runner_fixture_id not in self.fixturenames:749 self.fixturenames.append(runner_fixture_id)750 # When loop factories are configured, resolve the loop factory751 # fixture early so that a factory variant change cascades cache752 # invalidation before any async fixture checks its cache.753 hook_caller = self.config.hook.pytest_asyncio_loop_factories754 if hook_caller.get_hookimpls():755 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)756> return super().setup()757 ^^^^^^^^^^^^^^^758759/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 760_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 761nixbot/tests/conftest.py:33: in postgres_dsn762 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:763 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^764/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__765 return next(self.gen)766 ^^^^^^^^^^^^^^767_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 768769tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')770dbname = 'orchestrator'771772 @contextlib.contextmanager773 def ephemeral_postgres(774 tmp_path_factory: pytest.TempPathFactory, dbname: str775 ) -> Iterator[str]:776 """Throwaway Postgres on a unix socket with migrations applied."""777 datadir = tmp_path_factory.mktemp("pgdata")778 sockdir = tmp_path_factory.mktemp("pgsock")779 subprocess.run( # noqa: S603780 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],781 check=True,782 capture_output=True,783 )784 proc = subprocess.Popen( # noqa: S603785 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],786 stdout=subprocess.DEVNULL,787 stderr=subprocess.DEVNULL,788 )789 try:790 deadline = time.monotonic() + 30791 while (792 subprocess.run( # noqa: S603793 ["pg_isready", "-h", str(sockdir), "-U", "test"],794 check=False,795 capture_output=True,796 ).returncode797 != 0798 ):799 # The socket appears before recovery finishes; createdb would800 # fail with "the database system is starting up".801 if time.monotonic() > deadline:802 msg = "postgres did not start"803> raise RuntimeError(msg)804E RuntimeError: postgres did not start805806nixbot/tests/support.py:319: RuntimeError807_____________ ERROR at setup of test_parse_path_info_both_formats ______________808[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14809810request = <SubRequest 'postgres_dsn' for <Function test_chunk_args_splits_on_byte_limit>>811tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')812813 @pytest.fixture(scope="module")814 def postgres_dsn(815 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory816 ) -> Iterator[str]:817 if shutil.which("initdb") is None:818 pytest.skip("postgresql not available")819 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")820> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:821 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^822823nixbot/tests/conftest.py:33: 824_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 825/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__826 return next(self.gen)827 ^^^^^^^^^^^^^^828_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829830tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')831dbname = 'upload'832833 @contextlib.contextmanager834 def ephemeral_postgres(835 tmp_path_factory: pytest.TempPathFactory, dbname: str836 ) -> Iterator[str]:837 """Throwaway Postgres on a unix socket with migrations applied."""838 datadir = tmp_path_factory.mktemp("pgdata")839 sockdir = tmp_path_factory.mktemp("pgsock")840 subprocess.run( # noqa: S603841 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],842 check=True,843 capture_output=True,844 )845 proc = subprocess.Popen( # noqa: S603846 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],847 stdout=subprocess.DEVNULL,848 stderr=subprocess.DEVNULL,849 )850 try:851 deadline = time.monotonic() + 30852 while (853 subprocess.run( # noqa: S603854 ["pg_isready", "-h", str(sockdir), "-U", "test"],855 check=False,856 capture_output=True,857 ).returncode858 != 0859 ):860 # The socket appears before recovery finishes; createdb would861 # fail with "the database system is starting up".862 if time.monotonic() > deadline:863 msg = "postgres did not start"864> raise RuntimeError(msg)865E RuntimeError: postgres did not start866867nixbot/tests/support.py:319: RuntimeError868_________________ ERROR at setup of test_finished_attrs_cursor _________________869[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14870871request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>872tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')873874 @pytest.fixture(scope="module")875 def postgres_dsn(876 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory877 ) -> Iterator[str]:878 if shutil.which("initdb") is None:879 pytest.skip("postgresql not available")880 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")881> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:882 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^883884nixbot/tests/conftest.py:33: 885_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 886/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__887 return next(self.gen)888 ^^^^^^^^^^^^^^889_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 890891tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')892dbname = 'cli_api'893894 @contextlib.contextmanager895 def ephemeral_postgres(896 tmp_path_factory: pytest.TempPathFactory, dbname: str897 ) -> Iterator[str]:898 """Throwaway Postgres on a unix socket with migrations applied."""899 datadir = tmp_path_factory.mktemp("pgdata")900 sockdir = tmp_path_factory.mktemp("pgsock")901 subprocess.run( # noqa: S603902 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],903 check=True,904 capture_output=True,905 )906 proc = subprocess.Popen( # noqa: S603907 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],908 stdout=subprocess.DEVNULL,909 stderr=subprocess.DEVNULL,910 )911 try:912 deadline = time.monotonic() + 30913 while (914 subprocess.run( # noqa: S603915 ["pg_isready", "-h", str(sockdir), "-U", "test"],916 check=False,917 capture_output=True,918 ).returncode919 != 0920 ):921 # The socket appears before recovery finishes; createdb would922 # fail with "the database system is starting up".923 if time.monotonic() > deadline:924 msg = "postgres did not start"925> raise RuntimeError(msg)926E RuntimeError: postgres did not start927928nixbot/tests/support.py:319: RuntimeError929__________ ERROR at setup of test_main_push_promotes_reused_pr_build ___________930[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14931932self = <Coroutine test_main_push_promotes_reused_pr_build>933934 def setup(self) -> None:935 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"936 if runner_fixture_id not in self.fixturenames:937 self.fixturenames.append(runner_fixture_id)938 # When loop factories are configured, resolve the loop factory939 # fixture early so that a factory variant change cascades cache940 # invalidation before any async fixture checks its cache.941 hook_caller = self.config.hook.pytest_asyncio_loop_factories942 if hook_caller.get_hookimpls():943 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)944> return super().setup()945 ^^^^^^^^^^^^^^^946947/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 948_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 949nixbot/tests/conftest.py:33: in postgres_dsn950 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:951 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^952/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__953 return next(self.gen)954 ^^^^^^^^^^^^^^955_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 956957tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')958dbname = 'orchestrator'959960 @contextlib.contextmanager961 def ephemeral_postgres(962 tmp_path_factory: pytest.TempPathFactory, dbname: str963 ) -> Iterator[str]:964 """Throwaway Postgres on a unix socket with migrations applied."""965 datadir = tmp_path_factory.mktemp("pgdata")966 sockdir = tmp_path_factory.mktemp("pgsock")967 subprocess.run( # noqa: S603968 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],969 check=True,970 capture_output=True,971 )972 proc = subprocess.Popen( # noqa: S603973 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],974 stdout=subprocess.DEVNULL,975 stderr=subprocess.DEVNULL,976 )977 try:978 deadline = time.monotonic() + 30979 while (980 subprocess.run( # noqa: S603981 ["pg_isready", "-h", str(sockdir), "-U", "test"],982 check=False,983 capture_output=True,984 ).returncode985 != 0986 ):987 # The socket appears before recovery finishes; createdb would988 # fail with "the database system is starting up".989 if time.monotonic() > deadline:990 msg = "postgres did not start"991> raise RuntimeError(msg)992E RuntimeError: postgres did not start993994nixbot/tests/support.py:319: RuntimeError995________________ ERROR at setup of test_control_requires_token _________________996[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14997998request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>999tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')10001001 @pytest.fixture(scope="module")1002 def postgres_dsn(1003 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1004 ) -> Iterator[str]:1005 if shutil.which("initdb") is None:1006 pytest.skip("postgresql not available")1007 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1008> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10101011nixbot/tests/conftest.py:33: 1012_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1013/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1014 return next(self.gen)1015 ^^^^^^^^^^^^^^1016_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10171018tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1019dbname = 'cli_api'10201021 @contextlib.contextmanager1022 def ephemeral_postgres(1023 tmp_path_factory: pytest.TempPathFactory, dbname: str1024 ) -> Iterator[str]:1025 """Throwaway Postgres on a unix socket with migrations applied."""1026 datadir = tmp_path_factory.mktemp("pgdata")1027 sockdir = tmp_path_factory.mktemp("pgsock")1028 subprocess.run( # noqa: S6031029 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1030 check=True,1031 capture_output=True,1032 )1033 proc = subprocess.Popen( # noqa: S6031034 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1035 stdout=subprocess.DEVNULL,1036 stderr=subprocess.DEVNULL,1037 )1038 try:1039 deadline = time.monotonic() + 301040 while (1041 subprocess.run( # noqa: S6031042 ["pg_isready", "-h", str(sockdir), "-U", "test"],1043 check=False,1044 capture_output=True,1045 ).returncode1046 != 01047 ):1048 # The socket appears before recovery finishes; createdb would1049 # fail with "the database system is starting up".1050 if time.monotonic() > deadline:1051 msg = "postgres did not start"1052> raise RuntimeError(msg)1053E RuntimeError: postgres did not start10541055nixbot/tests/support.py:319: RuntimeError1056_________ ERROR at setup of test_final_upload_reports_and_clears_queue _________1057[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410581059self = <Coroutine test_final_upload_reports_and_clears_queue>10601061 def setup(self) -> None:1062 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1063 if runner_fixture_id not in self.fixturenames:1064 self.fixturenames.append(runner_fixture_id)1065 # When loop factories are configured, resolve the loop factory1066 # fixture early so that a factory variant change cascades cache1067 # invalidation before any async fixture checks its cache.1068 hook_caller = self.config.hook.pytest_asyncio_loop_factories1069 if hook_caller.get_hookimpls():1070 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1071> return super().setup()1072 ^^^^^^^^^^^^^^^10731074/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1075_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1076nixbot/tests/conftest.py:33: in postgres_dsn1077 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1078 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1079/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1080 return next(self.gen)1081 ^^^^^^^^^^^^^^1082_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10831084tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1085dbname = 'upload'10861087 @contextlib.contextmanager1088 def ephemeral_postgres(1089 tmp_path_factory: pytest.TempPathFactory, dbname: str1090 ) -> Iterator[str]:1091 """Throwaway Postgres on a unix socket with migrations applied."""1092 datadir = tmp_path_factory.mktemp("pgdata")1093 sockdir = tmp_path_factory.mktemp("pgsock")1094 subprocess.run( # noqa: S6031095 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1096 check=True,1097 capture_output=True,1098 )1099 proc = subprocess.Popen( # noqa: S6031100 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1101 stdout=subprocess.DEVNULL,1102 stderr=subprocess.DEVNULL,1103 )1104 try:1105 deadline = time.monotonic() + 301106 while (1107 subprocess.run( # noqa: S6031108 ["pg_isready", "-h", str(sockdir), "-U", "test"],1109 check=False,1110 capture_output=True,1111 ).returncode1112 != 01113 ):1114 # The socket appears before recovery finishes; createdb would1115 # fail with "the database system is starting up".1116 if time.monotonic() > deadline:1117 msg = "postgres did not start"1118> raise RuntimeError(msg)1119E RuntimeError: postgres did not start11201121nixbot/tests/support.py:319: RuntimeError1122____________________ ERROR at setup of test_enable_disable _____________________1123[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411241125request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>1126tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')11271128 @pytest.fixture(scope="module")1129 def postgres_dsn(1130 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1131 ) -> Iterator[str]:1132 if shutil.which("initdb") is None:1133 pytest.skip("postgresql not available")1134 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1135> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1136 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^11371138nixbot/tests/conftest.py:33: 1139_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1140/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1141 return next(self.gen)1142 ^^^^^^^^^^^^^^1143_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11441145tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1146dbname = 'cli_api'11471148 @contextlib.contextmanager1149 def ephemeral_postgres(1150 tmp_path_factory: pytest.TempPathFactory, dbname: str1151 ) -> Iterator[str]:1152 """Throwaway Postgres on a unix socket with migrations applied."""1153 datadir = tmp_path_factory.mktemp("pgdata")1154 sockdir = tmp_path_factory.mktemp("pgsock")1155 subprocess.run( # noqa: S6031156 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1157 check=True,1158 capture_output=True,1159 )1160 proc = subprocess.Popen( # noqa: S6031161 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1162 stdout=subprocess.DEVNULL,1163 stderr=subprocess.DEVNULL,1164 )1165 try:1166 deadline = time.monotonic() + 301167 while (1168 subprocess.run( # noqa: S6031169 ["pg_isready", "-h", str(sockdir), "-U", "test"],1170 check=False,1171 capture_output=True,1172 ).returncode1173 != 01174 ):1175 # The socket appears before recovery finishes; createdb would1176 # fail with "the database system is starting up".1177 if time.monotonic() > deadline:1178 msg = "postgres did not start"1179> raise RuntimeError(msg)1180E RuntimeError: postgres did not start11811182nixbot/tests/support.py:319: RuntimeError1183______________ ERROR at setup of test_merge_conflict_fails_build _______________1184[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411851186self = <Coroutine test_merge_conflict_fails_build>11871188 def setup(self) -> None:1189 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1190 if runner_fixture_id not in self.fixturenames:1191 self.fixturenames.append(runner_fixture_id)1192 # When loop factories are configured, resolve the loop factory1193 # fixture early so that a factory variant change cascades cache1194 # invalidation before any async fixture checks its cache.1195 hook_caller = self.config.hook.pytest_asyncio_loop_factories1196 if hook_caller.get_hookimpls():1197 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1198> return super().setup()1199 ^^^^^^^^^^^^^^^12001201/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1202_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1203nixbot/tests/conftest.py:33: in postgres_dsn1204 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1205 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1206/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1207 return next(self.gen)1208 ^^^^^^^^^^^^^^1209_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12101211tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1212dbname = 'orchestrator'12131214 @contextlib.contextmanager1215 def ephemeral_postgres(1216 tmp_path_factory: pytest.TempPathFactory, dbname: str1217 ) -> Iterator[str]:1218 """Throwaway Postgres on a unix socket with migrations applied."""1219 datadir = tmp_path_factory.mktemp("pgdata")1220 sockdir = tmp_path_factory.mktemp("pgsock")1221 subprocess.run( # noqa: S6031222 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1223 check=True,1224 capture_output=True,1225 )1226 proc = subprocess.Popen( # noqa: S6031227 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1228 stdout=subprocess.DEVNULL,1229 stderr=subprocess.DEVNULL,1230 )1231 try:1232 deadline = time.monotonic() + 301233 while (1234 subprocess.run( # noqa: S6031235 ["pg_isready", "-h", str(sockdir), "-U", "test"],1236 check=False,1237 capture_output=True,1238 ).returncode1239 != 01240 ):1241 # The socket appears before recovery finishes; createdb would1242 # fail with "the database system is starting up".1243 if time.monotonic() > deadline:1244 msg = "postgres did not start"1245> raise RuntimeError(msg)1246E RuntimeError: postgres did not start12471248nixbot/tests/support.py:319: RuntimeError1249___________________ ERROR at setup of test_log_toc_and_text ____________________1250[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412511252request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>1253tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')12541255 @pytest.fixture(scope="module")1256 def postgres_dsn(1257 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1258 ) -> Iterator[str]:1259 if shutil.which("initdb") is None:1260 pytest.skip("postgresql not available")1261 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1262> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12641265nixbot/tests/conftest.py:33: 1266_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1267/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1268 return next(self.gen)1269 ^^^^^^^^^^^^^^1270_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12711272tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1273dbname = 'cli_api'12741275 @contextlib.contextmanager1276 def ephemeral_postgres(1277 tmp_path_factory: pytest.TempPathFactory, dbname: str1278 ) -> Iterator[str]:1279 """Throwaway Postgres on a unix socket with migrations applied."""1280 datadir = tmp_path_factory.mktemp("pgdata")1281 sockdir = tmp_path_factory.mktemp("pgsock")1282 subprocess.run( # noqa: S6031283 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1284 check=True,1285 capture_output=True,1286 )1287 proc = subprocess.Popen( # noqa: S6031288 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1289 stdout=subprocess.DEVNULL,1290 stderr=subprocess.DEVNULL,1291 )1292 try:1293 deadline = time.monotonic() + 301294 while (1295 subprocess.run( # noqa: S6031296 ["pg_isready", "-h", str(sockdir), "-U", "test"],1297 check=False,1298 capture_output=True,1299 ).returncode1300 != 01301 ):1302 # The socket appears before recovery finishes; createdb would1303 # fail with "the database system is starting up".1304 if time.monotonic() > deadline:1305 msg = "postgres did not start"1306> raise RuntimeError(msg)1307E RuntimeError: postgres did not start13081309nixbot/tests/support.py:319: RuntimeError1310_________________ ERROR at setup of test_repo_list_and_toggle __________________1311[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413121313fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1314request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>13151316 @pytest.hookimpl(wrapper=True)1317 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1318 if (1319 fixturedef.argname == "event_loop_policy"1320 and fixturedef.func.__module__ != __name__1321 ):1322 warnings.warn(1323 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1324 )1325 asyncio_mode = _get_asyncio_mode(request.config)1326 if not _is_asyncio_fixture_function(fixturedef.func):1327 if asyncio_mode == Mode.STRICT:1328 # Ignore async fixtures without explicit asyncio mark in strict mode1329 # This applies to pytest_trio fixtures, for example1330 return (yield)1331 if not _is_coroutine_or_asyncgen(fixturedef.func):1332> return (yield)1333 ^^^^^13341335/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1336_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1337nixbot/tests/conftest.py:33: in postgres_dsn1338 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1339 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1340/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1341 return next(self.gen)1342 ^^^^^^^^^^^^^^1343_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13441345tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1346dbname = 'cli'13471348 @contextlib.contextmanager1349 def ephemeral_postgres(1350 tmp_path_factory: pytest.TempPathFactory, dbname: str1351 ) -> Iterator[str]:1352 """Throwaway Postgres on a unix socket with migrations applied."""1353 datadir = tmp_path_factory.mktemp("pgdata")1354 sockdir = tmp_path_factory.mktemp("pgsock")1355 subprocess.run( # noqa: S6031356 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1357 check=True,1358 capture_output=True,1359 )1360 proc = subprocess.Popen( # noqa: S6031361 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1362 stdout=subprocess.DEVNULL,1363 stderr=subprocess.DEVNULL,1364 )1365 try:1366 deadline = time.monotonic() + 301367 while (1368 subprocess.run( # noqa: S6031369 ["pg_isready", "-h", str(sockdir), "-U", "test"],1370 check=False,1371 capture_output=True,1372 ).returncode1373 != 01374 ):1375 # The socket appears before recovery finishes; createdb would1376 # fail with "the database system is starting up".1377 if time.monotonic() > deadline:1378 msg = "postgres did not start"1379> raise RuntimeError(msg)1380E RuntimeError: postgres did not start13811382nixbot/tests/support.py:319: RuntimeError1383__________________ ERROR at setup of test_match_skip_and_run ___________________1384[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413851386self = <Coroutine test_match_skip_and_run>13871388 def setup(self) -> None:1389 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1390 if runner_fixture_id not in self.fixturenames:1391 self.fixturenames.append(runner_fixture_id)1392 # When loop factories are configured, resolve the loop factory1393 # fixture early so that a factory variant change cascades cache1394 # invalidation before any async fixture checks its cache.1395 hook_caller = self.config.hook.pytest_asyncio_loop_factories1396 if hook_caller.get_hookimpls():1397 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1398> return super().setup()1399 ^^^^^^^^^^^^^^^14001401/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1402_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1403/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1404 return (yield)1405 ^^^^^1406nixbot/tests/conftest.py:33: in postgres_dsn1407 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1408 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1409/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1410 return next(self.gen)1411 ^^^^^^^^^^^^^^1412_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14131414tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1415dbname = 'deliver'14161417 @contextlib.contextmanager1418 def ephemeral_postgres(1419 tmp_path_factory: pytest.TempPathFactory, dbname: str1420 ) -> Iterator[str]:1421 """Throwaway Postgres on a unix socket with migrations applied."""1422 datadir = tmp_path_factory.mktemp("pgdata")1423 sockdir = tmp_path_factory.mktemp("pgsock")1424 subprocess.run( # noqa: S6031425 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1426 check=True,1427 capture_output=True,1428 )1429 proc = subprocess.Popen( # noqa: S6031430 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1431 stdout=subprocess.DEVNULL,1432 stderr=subprocess.DEVNULL,1433 )1434 try:1435 deadline = time.monotonic() + 301436 while (1437 subprocess.run( # noqa: S6031438 ["pg_isready", "-h", str(sockdir), "-U", "test"],1439 check=False,1440 capture_output=True,1441 ).returncode1442 != 01443 ):1444 # The socket appears before recovery finishes; createdb would1445 # fail with "the database system is starting up".1446 if time.monotonic() > deadline:1447 msg = "postgres did not start"1448> raise RuntimeError(msg)1449E RuntimeError: postgres did not start14501451nixbot/tests/support.py:319: RuntimeError1452___________ ERROR at setup of test_resume_skips_terminal_attributes ____________1453[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414541455self = <Coroutine test_resume_skips_terminal_attributes>14561457 def setup(self) -> None:1458 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1459 if runner_fixture_id not in self.fixturenames:1460 self.fixturenames.append(runner_fixture_id)1461 # When loop factories are configured, resolve the loop factory1462 # fixture early so that a factory variant change cascades cache1463 # invalidation before any async fixture checks its cache.1464 hook_caller = self.config.hook.pytest_asyncio_loop_factories1465 if hook_caller.get_hookimpls():1466 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1467> return super().setup()1468 ^^^^^^^^^^^^^^^14691470/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1471_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1472/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1473 return (yield)1474 ^^^^^1475nixbot/tests/conftest.py:33: in postgres_dsn1476 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1477 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1478/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1479 return next(self.gen)1480 ^^^^^^^^^^^^^^1481_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14821483tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1484dbname = 'recovery'14851486 @contextlib.contextmanager1487 def ephemeral_postgres(1488 tmp_path_factory: pytest.TempPathFactory, dbname: str1489 ) -> Iterator[str]:1490 """Throwaway Postgres on a unix socket with migrations applied."""1491 datadir = tmp_path_factory.mktemp("pgdata")1492 sockdir = tmp_path_factory.mktemp("pgsock")1493 subprocess.run( # noqa: S6031494 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1495 check=True,1496 capture_output=True,1497 )1498 proc = subprocess.Popen( # noqa: S6031499 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1500 stdout=subprocess.DEVNULL,1501 stderr=subprocess.DEVNULL,1502 )1503 try:1504 deadline = time.monotonic() + 301505 while (1506 subprocess.run( # noqa: S6031507 ["pg_isready", "-h", str(sockdir), "-U", "test"],1508 check=False,1509 capture_output=True,1510 ).returncode1511 != 01512 ):1513 # The socket appears before recovery finishes; createdb would1514 # fail with "the database system is starting up".1515 if time.monotonic() > deadline:1516 msg = "postgres did not start"1517> raise RuntimeError(msg)1518E RuntimeError: postgres did not start15191520nixbot/tests/support.py:319: RuntimeError1521____ ERROR at setup of test_intermediates_batch_with_final_and_drop_invalid ____1522[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415231524self = <Coroutine test_intermediates_batch_with_final_and_drop_invalid>15251526 def setup(self) -> None:1527 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1528 if runner_fixture_id not in self.fixturenames:1529 self.fixturenames.append(runner_fixture_id)1530 # When loop factories are configured, resolve the loop factory1531 # fixture early so that a factory variant change cascades cache1532 # invalidation before any async fixture checks its cache.1533 hook_caller = self.config.hook.pytest_asyncio_loop_factories1534 if hook_caller.get_hookimpls():1535 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1536> return super().setup()1537 ^^^^^^^^^^^^^^^15381539/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1540_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1541nixbot/tests/conftest.py:33: in postgres_dsn1542 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1543 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1544/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1545 return next(self.gen)1546 ^^^^^^^^^^^^^^1547_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15481549tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1550dbname = 'upload'15511552 @contextlib.contextmanager1553 def ephemeral_postgres(1554 tmp_path_factory: pytest.TempPathFactory, dbname: str1555 ) -> Iterator[str]:1556 """Throwaway Postgres on a unix socket with migrations applied."""1557 datadir = tmp_path_factory.mktemp("pgdata")1558 sockdir = tmp_path_factory.mktemp("pgsock")1559 subprocess.run( # noqa: S6031560 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1561 check=True,1562 capture_output=True,1563 )1564 proc = subprocess.Popen( # noqa: S6031565 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1566 stdout=subprocess.DEVNULL,1567 stderr=subprocess.DEVNULL,1568 )1569 try:1570 deadline = time.monotonic() + 301571 while (1572 subprocess.run( # noqa: S6031573 ["pg_isready", "-h", str(sockdir), "-U", "test"],1574 check=False,1575 capture_output=True,1576 ).returncode1577 != 01578 ):1579 # The socket appears before recovery finishes; createdb would1580 # fail with "the database system is starting up".1581 if time.monotonic() > deadline:1582 msg = "postgres did not start"1583> raise RuntimeError(msg)1584E RuntimeError: postgres did not start15851586nixbot/tests/support.py:319: RuntimeError1587_ ERROR at setup of test_replace_schedules_preserves_last_run_for_unchanged_spec _1588[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415891590self = <Coroutine test_replace_schedules_preserves_last_run_for_unchanged_spec>15911592 def setup(self) -> None:1593 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1594 if runner_fixture_id not in self.fixturenames:1595 self.fixturenames.append(runner_fixture_id)1596 # When loop factories are configured, resolve the loop factory1597 # fixture early so that a factory variant change cascades cache1598 # invalidation before any async fixture checks its cache.1599 hook_caller = self.config.hook.pytest_asyncio_loop_factories1600 if hook_caller.get_hookimpls():1601 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1602> return super().setup()1603 ^^^^^^^^^^^^^^^16041605/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1606_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1607/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1608 return (yield)1609 ^^^^^1610nixbot/tests/conftest.py:33: in postgres_dsn1611 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1612 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1613/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1614 return next(self.gen)1615 ^^^^^^^^^^^^^^1616_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16171618tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')1619dbname = 'schedules'16201621 @contextlib.contextmanager1622 def ephemeral_postgres(1623 tmp_path_factory: pytest.TempPathFactory, dbname: str1624 ) -> Iterator[str]:1625 """Throwaway Postgres on a unix socket with migrations applied."""1626 datadir = tmp_path_factory.mktemp("pgdata")1627 sockdir = tmp_path_factory.mktemp("pgsock")1628 subprocess.run( # noqa: S6031629 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1630 check=True,1631 capture_output=True,1632 )1633 proc = subprocess.Popen( # noqa: S6031634 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1635 stdout=subprocess.DEVNULL,1636 stderr=subprocess.DEVNULL,1637 )1638 try:1639 deadline = time.monotonic() + 301640 while (1641 subprocess.run( # noqa: S6031642 ["pg_isready", "-h", str(sockdir), "-U", "test"],1643 check=False,1644 capture_output=True,1645 ).returncode1646 != 01647 ):1648 # The socket appears before recovery finishes; createdb would1649 # fail with "the database system is starting up".1650 if time.monotonic() > deadline:1651 msg = "postgres did not start"1652> raise RuntimeError(msg)1653E RuntimeError: postgres did not start16541655nixbot/tests/support.py:319: RuntimeError1656_________ ERROR at setup of test_project_store_sync_and_legacy_import __________1657[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416581659self = <Coroutine test_project_store_sync_and_legacy_import>16601661 def setup(self) -> None:1662 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1663 if runner_fixture_id not in self.fixturenames:1664 self.fixturenames.append(runner_fixture_id)1665 # When loop factories are configured, resolve the loop factory1666 # fixture early so that a factory variant change cascades cache1667 # invalidation before any async fixture checks its cache.1668 hook_caller = self.config.hook.pytest_asyncio_loop_factories1669 if hook_caller.get_hookimpls():1670 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1671> return super().setup()1672 ^^^^^^^^^^^^^^^16731674/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1675_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1676/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1677 return (yield)1678 ^^^^^1679nixbot/tests/conftest.py:33: in postgres_dsn1680 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1681 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1682/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1683 return next(self.gen)1684 ^^^^^^^^^^^^^^1685_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16861687tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1688dbname = 'forge'16891690 @contextlib.contextmanager1691 def ephemeral_postgres(1692 tmp_path_factory: pytest.TempPathFactory, dbname: str1693 ) -> Iterator[str]:1694 """Throwaway Postgres on a unix socket with migrations applied."""1695 datadir = tmp_path_factory.mktemp("pgdata")1696 sockdir = tmp_path_factory.mktemp("pgsock")1697 subprocess.run( # noqa: S6031698 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1699 check=True,1700 capture_output=True,1701 )1702 proc = subprocess.Popen( # noqa: S6031703 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1704 stdout=subprocess.DEVNULL,1705 stderr=subprocess.DEVNULL,1706 )1707 try:1708 deadline = time.monotonic() + 301709 while (1710 subprocess.run( # noqa: S6031711 ["pg_isready", "-h", str(sockdir), "-U", "test"],1712 check=False,1713 capture_output=True,1714 ).returncode1715 != 01716 ):1717 # The socket appears before recovery finishes; createdb would1718 # fail with "the database system is starting up".1719 if time.monotonic() > deadline:1720 msg = "postgres did not start"1721> raise RuntimeError(msg)1722E RuntimeError: postgres did not start17231724nixbot/tests/support.py:319: RuntimeError1725______________ ERROR at setup of test_effect_run_text_and_stream _______________1726[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417271728request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>1729tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')17301731 @pytest.fixture(scope="module")1732 def postgres_dsn(1733 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1734 ) -> Iterator[str]:1735 if shutil.which("initdb") is None:1736 pytest.skip("postgresql not available")1737 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1738> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1739 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17401741nixbot/tests/conftest.py:33: 1742_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1743/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1744 return next(self.gen)1745 ^^^^^^^^^^^^^^1746_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17471748tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1749dbname = 'cli_api'17501751 @contextlib.contextmanager1752 def ephemeral_postgres(1753 tmp_path_factory: pytest.TempPathFactory, dbname: str1754 ) -> Iterator[str]:1755 """Throwaway Postgres on a unix socket with migrations applied."""1756 datadir = tmp_path_factory.mktemp("pgdata")1757 sockdir = tmp_path_factory.mktemp("pgsock")1758 subprocess.run( # noqa: S6031759 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1760 check=True,1761 capture_output=True,1762 )1763 proc = subprocess.Popen( # noqa: S6031764 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1765 stdout=subprocess.DEVNULL,1766 stderr=subprocess.DEVNULL,1767 )1768 try:1769 deadline = time.monotonic() + 301770 while (1771 subprocess.run( # noqa: S6031772 ["pg_isready", "-h", str(sockdir), "-U", "test"],1773 check=False,1774 capture_output=True,1775 ).returncode1776 != 01777 ):1778 # The socket appears before recovery finishes; createdb would1779 # fail with "the database system is starting up".1780 if time.monotonic() > deadline:1781 msg = "postgres did not start"1782> raise RuntimeError(msg)1783E RuntimeError: postgres did not start17841785nixbot/tests/support.py:319: RuntimeError1786__________________ ERROR at setup of test_build_list_and_view __________________1787[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417881789request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>1790tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')17911792 @pytest.fixture(scope="module")1793 def postgres_dsn(1794 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1795 ) -> Iterator[str]:1796 if shutil.which("initdb") is None:1797 pytest.skip("postgresql not available")1798 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1799> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1800 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^18011802nixbot/tests/conftest.py:33: 1803_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1804/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1805 return next(self.gen)1806 ^^^^^^^^^^^^^^1807_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18081809tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1810dbname = 'cli'18111812 @contextlib.contextmanager1813 def ephemeral_postgres(1814 tmp_path_factory: pytest.TempPathFactory, dbname: str1815 ) -> Iterator[str]:1816 """Throwaway Postgres on a unix socket with migrations applied."""1817 datadir = tmp_path_factory.mktemp("pgdata")1818 sockdir = tmp_path_factory.mktemp("pgsock")1819 subprocess.run( # noqa: S6031820 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1821 check=True,1822 capture_output=True,1823 )1824 proc = subprocess.Popen( # noqa: S6031825 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1826 stdout=subprocess.DEVNULL,1827 stderr=subprocess.DEVNULL,1828 )1829 try:1830 deadline = time.monotonic() + 301831 while (1832 subprocess.run( # noqa: S6031833 ["pg_isready", "-h", str(sockdir), "-U", "test"],1834 check=False,1835 capture_output=True,1836 ).returncode1837 != 01838 ):1839 # The socket appears before recovery finishes; createdb would1840 # fail with "the database system is starting up".1841 if time.monotonic() > deadline:1842 msg = "postgres did not start"1843> raise RuntimeError(msg)1844E RuntimeError: postgres did not start18451846nixbot/tests/support.py:319: RuntimeError1847_____ ERROR at setup of test_build_reuse_clears_pr_author_in_other_context _____1848[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418491850self = <Coroutine test_build_reuse_clears_pr_author_in_other_context>18511852 def setup(self) -> None:1853 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1854 if runner_fixture_id not in self.fixturenames:1855 self.fixturenames.append(runner_fixture_id)1856 # When loop factories are configured, resolve the loop factory1857 # fixture early so that a factory variant change cascades cache1858 # invalidation before any async fixture checks its cache.1859 hook_caller = self.config.hook.pytest_asyncio_loop_factories1860 if hook_caller.get_hookimpls():1861 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1862> return super().setup()1863 ^^^^^^^^^^^^^^^18641865/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1866_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1867nixbot/tests/conftest.py:33: in postgres_dsn1868 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1869 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1870/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1871 return next(self.gen)1872 ^^^^^^^^^^^^^^1873_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18741875tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1876dbname = 'orchestrator'18771878 @contextlib.contextmanager1879 def ephemeral_postgres(1880 tmp_path_factory: pytest.TempPathFactory, dbname: str1881 ) -> Iterator[str]:1882 """Throwaway Postgres on a unix socket with migrations applied."""1883 datadir = tmp_path_factory.mktemp("pgdata")1884 sockdir = tmp_path_factory.mktemp("pgsock")1885 subprocess.run( # noqa: S6031886 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1887 check=True,1888 capture_output=True,1889 )1890 proc = subprocess.Popen( # noqa: S6031891 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1892 stdout=subprocess.DEVNULL,1893 stderr=subprocess.DEVNULL,1894 )1895 try:1896 deadline = time.monotonic() + 301897 while (1898 subprocess.run( # noqa: S6031899 ["pg_isready", "-h", str(sockdir), "-U", "test"],1900 check=False,1901 capture_output=True,1902 ).returncode1903 != 01904 ):1905 # The socket appears before recovery finishes; createdb would1906 # fail with "the database system is starting up".1907 if time.monotonic() > deadline:1908 msg = "postgres did not start"1909> raise RuntimeError(msg)1910E RuntimeError: postgres did not start19111912nixbot/tests/support.py:319: RuntimeError1913___________ ERROR at setup of test_permission_denied_records_reason ____________1914[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419151916self = <Coroutine test_permission_denied_records_reason>19171918 def setup(self) -> None:1919 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1920 if runner_fixture_id not in self.fixturenames:1921 self.fixturenames.append(runner_fixture_id)1922 # When loop factories are configured, resolve the loop factory1923 # fixture early so that a factory variant change cascades cache1924 # invalidation before any async fixture checks its cache.1925 hook_caller = self.config.hook.pytest_asyncio_loop_factories1926 if hook_caller.get_hookimpls():1927 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1928> return super().setup()1929 ^^^^^^^^^^^^^^^19301931/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1932_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1933nixbot/tests/conftest.py:33: in postgres_dsn1934 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1935 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1936/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1937 return next(self.gen)1938 ^^^^^^^^^^^^^^1939_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19401941tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...tch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1942dbname = 'deliver'19431944 @contextlib.contextmanager1945 def ephemeral_postgres(1946 tmp_path_factory: pytest.TempPathFactory, dbname: str1947 ) -> Iterator[str]:1948 """Throwaway Postgres on a unix socket with migrations applied."""1949 datadir = tmp_path_factory.mktemp("pgdata")1950 sockdir = tmp_path_factory.mktemp("pgsock")1951 subprocess.run( # noqa: S6031952 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1953 check=True,1954 capture_output=True,1955 )1956 proc = subprocess.Popen( # noqa: S6031957 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1958 stdout=subprocess.DEVNULL,1959 stderr=subprocess.DEVNULL,1960 )1961 try:1962 deadline = time.monotonic() + 301963 while (1964 subprocess.run( # noqa: S6031965 ["pg_isready", "-h", str(sockdir), "-U", "test"],1966 check=False,1967 capture_output=True,1968 ).returncode1969 != 01970 ):1971 # The socket appears before recovery finishes; createdb would1972 # fail with "the database system is starting up".1973 if time.monotonic() > deadline:1974 msg = "postgres did not start"1975> raise RuntimeError(msg)1976E RuntimeError: postgres did not start19771978nixbot/tests/support.py:319: RuntimeError1979______________________ ERROR at setup of test_stdin_mode _______________________1980[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419811982self = <Coroutine test_stdin_mode>19831984 def setup(self) -> None:1985 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1986 if runner_fixture_id not in self.fixturenames:1987 self.fixturenames.append(runner_fixture_id)1988 # When loop factories are configured, resolve the loop factory1989 # fixture early so that a factory variant change cascades cache1990 # invalidation before any async fixture checks its cache.1991 hook_caller = self.config.hook.pytest_asyncio_loop_factories1992 if hook_caller.get_hookimpls():1993 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1994> return super().setup()1995 ^^^^^^^^^^^^^^^19961997/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1998_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1999nixbot/tests/conftest.py:33: in postgres_dsn2000 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20316 check=True,20317 capture_output=True,20318 )20319 proc = subprocess.Popen( # noqa: S60320320 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20321 stdout=subprocess.DEVNULL,20322 stderr=subprocess.DEVNULL,20323 )20324 try:20325 deadline = time.monotonic() + 3020326 while (20327 subprocess.run( # noqa: S60320328 ["pg_isready", "-h", str(sockdir), "-U", "test"],20329 check=False,20330 capture_output=True,20331 ).returncode20332 != 020333 ):20334 # The socket appears before recovery finishes; createdb would20335 # fail with "the database system is starting up".20336 if time.monotonic() > deadline:20337 msg = "postgres did not start"20338> raise RuntimeError(msg)20339E RuntimeError: postgres did not start2034020341nixbot/tests/support.py:319: RuntimeError20342____________________ ERROR at setup of test_pr_comment_api _____________________20343[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142034420345request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20346tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2034720348 @pytest.fixture(scope="module")20349 def postgres_dsn(20350 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20351 ) -> Iterator[str]:20352 if shutil.which("initdb") is None:20353 pytest.skip("postgresql not available")20354 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20355> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20356 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2035720358nixbot/tests/conftest.py:33: 20359_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20360/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20361 return next(self.gen)20362 ^^^^^^^^^^^^^^20363_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2036420365tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20366dbname = 'web'2036720368 @contextlib.contextmanager20369 def ephemeral_postgres(20370 tmp_path_factory: pytest.TempPathFactory, dbname: str20371 ) -> Iterator[str]:20372 """Throwaway Postgres on a unix socket with migrations applied."""20373 datadir = tmp_path_factory.mktemp("pgdata")20374 sockdir = tmp_path_factory.mktemp("pgsock")20375 subprocess.run( # noqa: S60320376 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20377 check=True,20378 capture_output=True,20379 )20380 proc = subprocess.Popen( # noqa: S60320381 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20382 stdout=subprocess.DEVNULL,20383 stderr=subprocess.DEVNULL,20384 )20385 try:20386 deadline = time.monotonic() + 3020387 while (20388 subprocess.run( # noqa: S60320389 ["pg_isready", "-h", str(sockdir), "-U", "test"],20390 check=False,20391 capture_output=True,20392 ).returncode20393 != 020394 ):20395 # The socket appears before recovery finishes; createdb would20396 # fail with "the database system is starting up".20397 if time.monotonic() > deadline:20398 msg = "postgres did not start"20399> raise RuntimeError(msg)20400E RuntimeError: postgres did not start2040120402nixbot/tests/support.py:319: RuntimeError20403___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________20404[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142040520406self = <Coroutine test_effect_dep_cycle_fails_discovery>2040720408 def setup(self) -> None:20409 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20410 if runner_fixture_id not in self.fixturenames:20411 self.fixturenames.append(runner_fixture_id)20412 # When loop factories are configured, resolve the loop factory20413 # fixture early so that a factory variant change cascades cache20414 # invalidation before any async fixture checks its cache.20415 hook_caller = self.config.hook.pytest_asyncio_loop_factories20416 if hook_caller.get_hookimpls():20417 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20418> return super().setup()20419 ^^^^^^^^^^^^^^^2042020421/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20422_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20423nixbot/tests/conftest.py:33: in postgres_dsn20424 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20425 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20426/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20427 return next(self.gen)20428 ^^^^^^^^^^^^^^20429_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2043020431tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20432dbname = 'orchestrator'2043320434 @contextlib.contextmanager20435 def ephemeral_postgres(20436 tmp_path_factory: pytest.TempPathFactory, dbname: str20437 ) -> Iterator[str]:20438 """Throwaway Postgres on a unix socket with migrations applied."""20439 datadir = tmp_path_factory.mktemp("pgdata")20440 sockdir = tmp_path_factory.mktemp("pgsock")20441 subprocess.run( # noqa: S60320442 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20443 check=True,20444 capture_output=True,20445 )20446 proc = subprocess.Popen( # noqa: S60320447 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20448 stdout=subprocess.DEVNULL,20449 stderr=subprocess.DEVNULL,20450 )20451 try:20452 deadline = time.monotonic() + 3020453 while (20454 subprocess.run( # noqa: S60320455 ["pg_isready", "-h", str(sockdir), "-U", "test"],20456 check=False,20457 capture_output=True,20458 ).returncode20459 != 020460 ):20461 # The socket appears before recovery finishes; createdb would20462 # fail with "the database system is starting up".20463 if time.monotonic() > deadline:20464 msg = "postgres did not start"20465> raise RuntimeError(msg)20466E RuntimeError: postgres did not start2046720468nixbot/tests/support.py:319: RuntimeError20469_________________ ERROR at setup of test_workload_identity_api _________________20470[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142047120472request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20473tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2047420475 @pytest.fixture(scope="module")20476 def postgres_dsn(20477 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20478 ) -> Iterator[str]:20479 if shutil.which("initdb") is None:20480 pytest.skip("postgresql not available")20481 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20482> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20483 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2048420485nixbot/tests/conftest.py:33: 20486_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20487/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20488 return next(self.gen)20489 ^^^^^^^^^^^^^^20490_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2049120492tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20493dbname = 'web'2049420495 @contextlib.contextmanager20496 def ephemeral_postgres(20497 tmp_path_factory: pytest.TempPathFactory, dbname: str20498 ) -> Iterator[str]:20499 """Throwaway Postgres on a unix socket with migrations applied."""20500 datadir = tmp_path_factory.mktemp("pgdata")20501 sockdir = tmp_path_factory.mktemp("pgsock")20502 subprocess.run( # noqa: S60320503 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20504 check=True,20505 capture_output=True,20506 )20507 proc = subprocess.Popen( # noqa: S60320508 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20509 stdout=subprocess.DEVNULL,20510 stderr=subprocess.DEVNULL,20511 )20512 try:20513 deadline = time.monotonic() + 3020514 while (20515 subprocess.run( # noqa: S60320516 ["pg_isready", "-h", str(sockdir), "-U", "test"],20517 check=False,20518 capture_output=True,20519 ).returncode20520 != 020521 ):20522 # The socket appears before recovery finishes; createdb would20523 # fail with "the database system is starting up".20524 if time.monotonic() > deadline:20525 msg = "postgres did not start"20526> raise RuntimeError(msg)20527E RuntimeError: postgres did not start2052820529nixbot/tests/support.py:319: RuntimeError20530_________ ERROR at setup of test_failed_effect_reports_failure_status __________20531[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142053220533self = <Coroutine test_failed_effect_reports_failure_status>2053420535 def setup(self) -> None:20536 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20537 if runner_fixture_id not in self.fixturenames:20538 self.fixturenames.append(runner_fixture_id)20539 # When loop factories are configured, resolve the loop factory20540 # fixture early so that a factory variant change cascades cache20541 # invalidation before any async fixture checks its cache.20542 hook_caller = self.config.hook.pytest_asyncio_loop_factories20543 if hook_caller.get_hookimpls():20544 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20545> return super().setup()20546 ^^^^^^^^^^^^^^^2054720548/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20549_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20550nixbot/tests/conftest.py:33: in postgres_dsn20551 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20552 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20553/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20554 return next(self.gen)20555 ^^^^^^^^^^^^^^20556_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2055720558tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20559dbname = 'orchestrator'2056020561 @contextlib.contextmanager20562 def ephemeral_postgres(20563 tmp_path_factory: pytest.TempPathFactory, dbname: str20564 ) -> Iterator[str]:20565 """Throwaway Postgres on a unix socket with migrations applied."""20566 datadir = tmp_path_factory.mktemp("pgdata")20567 sockdir = tmp_path_factory.mktemp("pgsock")20568 subprocess.run( # noqa: S60320569 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20570 check=True,20571 capture_output=True,20572 )20573 proc = subprocess.Popen( # noqa: S60320574 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20575 stdout=subprocess.DEVNULL,20576 stderr=subprocess.DEVNULL,20577 )20578 try:20579 deadline = time.monotonic() + 3020580 while (20581 subprocess.run( # noqa: S60320582 ["pg_isready", "-h", str(sockdir), "-U", "test"],20583 check=False,20584 capture_output=True,20585 ).returncode20586 != 020587 ):20588 # The socket appears before recovery finishes; createdb would20589 # fail with "the database system is starting up".20590 if time.monotonic() > deadline:20591 msg = "postgres did not start"20592> raise RuntimeError(msg)20593E RuntimeError: postgres did not start2059420595nixbot/tests/support.py:319: RuntimeError20596_____________ ERROR at setup of test_logout_revokes_session_cookie _____________20597[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142059820599request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20600tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2060120602 @pytest.fixture(scope="module")20603 def postgres_dsn(20604 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20605 ) -> Iterator[str]:20606 if shutil.which("initdb") is None:20607 pytest.skip("postgresql not available")20608 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20609> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20610 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2061120612nixbot/tests/conftest.py:33: 20613_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20614/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20615 return next(self.gen)20616 ^^^^^^^^^^^^^^20617_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2061820619tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20620dbname = 'web'2062120622 @contextlib.contextmanager20623 def ephemeral_postgres(20624 tmp_path_factory: pytest.TempPathFactory, dbname: str20625 ) -> Iterator[str]:20626 """Throwaway Postgres on a unix socket with migrations applied."""20627 datadir = tmp_path_factory.mktemp("pgdata")20628 sockdir = tmp_path_factory.mktemp("pgsock")20629 subprocess.run( # noqa: S60320630 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20631 check=True,20632 capture_output=True,20633 )20634 proc = subprocess.Popen( # noqa: S60320635 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20636 stdout=subprocess.DEVNULL,20637 stderr=subprocess.DEVNULL,20638 )20639 try:20640 deadline = time.monotonic() + 3020641 while (20642 subprocess.run( # noqa: S60320643 ["pg_isready", "-h", str(sockdir), "-U", "test"],20644 check=False,20645 capture_output=True,20646 ).returncode20647 != 020648 ):20649 # The socket appears before recovery finishes; createdb would20650 # fail with "the database system is starting up".20651 if time.monotonic() > deadline:20652 msg = "postgres did not start"20653> raise RuntimeError(msg)20654E RuntimeError: postgres did not start2065520656nixbot/tests/support.py:319: RuntimeError20657______________ ERROR at setup of test_gitlab_nested_group_routes _______________20658[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142065920660request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20661tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2066220663 @pytest.fixture(scope="module")20664 def postgres_dsn(20665 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20666 ) -> Iterator[str]:20667 if shutil.which("initdb") is None:20668 pytest.skip("postgresql not available")20669 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20670> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20671 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2067220673nixbot/tests/conftest.py:33: 20674_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20675/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20676 return next(self.gen)20677 ^^^^^^^^^^^^^^20678_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2067920680tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20681dbname = 'web'2068220683 @contextlib.contextmanager20684 def ephemeral_postgres(20685 tmp_path_factory: pytest.TempPathFactory, dbname: str20686 ) -> Iterator[str]:20687 """Throwaway Postgres on a unix socket with migrations applied."""20688 datadir = tmp_path_factory.mktemp("pgdata")20689 sockdir = tmp_path_factory.mktemp("pgsock")20690 subprocess.run( # noqa: S60320691 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20692 check=True,20693 capture_output=True,20694 )20695 proc = subprocess.Popen( # noqa: S60320696 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20697 stdout=subprocess.DEVNULL,20698 stderr=subprocess.DEVNULL,20699 )20700 try:20701 deadline = time.monotonic() + 3020702 while (20703 subprocess.run( # noqa: S60320704 ["pg_isready", "-h", str(sockdir), "-U", "test"],20705 check=False,20706 capture_output=True,20707 ).returncode20708 != 020709 ):20710 # The socket appears before recovery finishes; createdb would20711 # fail with "the database system is starting up".20712 if time.monotonic() > deadline:20713 msg = "postgres did not start"20714> raise RuntimeError(msg)20715E RuntimeError: postgres did not start2071620717nixbot/tests/support.py:319: RuntimeError20718________ ERROR at setup of test_post_process_error_does_not_wedge_build ________20719[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142072020721self = <Coroutine test_post_process_error_does_not_wedge_build>2072220723 def setup(self) -> None:20724 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20725 if runner_fixture_id not in self.fixturenames:20726 self.fixturenames.append(runner_fixture_id)20727 # When loop factories are configured, resolve the loop factory20728 # fixture early so that a factory variant change cascades cache20729 # invalidation before any async fixture checks its cache.20730 hook_caller = self.config.hook.pytest_asyncio_loop_factories20731 if hook_caller.get_hookimpls():20732 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20733> return super().setup()20734 ^^^^^^^^^^^^^^^2073520736/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20737_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20738nixbot/tests/conftest.py:33: in postgres_dsn20739 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20740 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20741/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20742 return next(self.gen)20743 ^^^^^^^^^^^^^^20744_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2074520746tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20747dbname = 'orchestrator'2074820749 @contextlib.contextmanager20750 def ephemeral_postgres(20751 tmp_path_factory: pytest.TempPathFactory, dbname: str20752 ) -> Iterator[str]:20753 """Throwaway Postgres on a unix socket with migrations applied."""20754 datadir = tmp_path_factory.mktemp("pgdata")20755 sockdir = tmp_path_factory.mktemp("pgsock")20756 subprocess.run( # noqa: S60320757 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20758 check=True,20759 capture_output=True,20760 )20761 proc = subprocess.Popen( # noqa: S60320762 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20763 stdout=subprocess.DEVNULL,20764 stderr=subprocess.DEVNULL,20765 )20766 try:20767 deadline = time.monotonic() + 3020768 while (20769 subprocess.run( # noqa: S60320770 ["pg_isready", "-h", str(sockdir), "-U", "test"],20771 check=False,20772 capture_output=True,20773 ).returncode20774 != 020775 ):20776 # The socket appears before recovery finishes; createdb would20777 # fail with "the database system is starting up".20778 if time.monotonic() > deadline:20779 msg = "postgres did not start"20780> raise RuntimeError(msg)20781E RuntimeError: postgres did not start2078220783nixbot/tests/support.py:319: RuntimeError20784___________ ERROR at setup of test_scheduled_run_viewer_renders_ansi ___________20785[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142078620787request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20788tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2078920790 @pytest.fixture(scope="module")20791 def postgres_dsn(20792 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20793 ) -> Iterator[str]:20794 if shutil.which("initdb") is None:20795 pytest.skip("postgresql not available")20796 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20797> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20798 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2079920800nixbot/tests/conftest.py:33: 20801_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20802/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20803 return next(self.gen)20804 ^^^^^^^^^^^^^^20805_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2080620807tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20808dbname = 'web'2080920810 @contextlib.contextmanager20811 def ephemeral_postgres(20812 tmp_path_factory: pytest.TempPathFactory, dbname: str20813 ) -> Iterator[str]:20814 """Throwaway Postgres on a unix socket with migrations applied."""20815 datadir = tmp_path_factory.mktemp("pgdata")20816 sockdir = tmp_path_factory.mktemp("pgsock")20817 subprocess.run( # noqa: S60320818 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20819 check=True,20820 capture_output=True,20821 )20822 proc = subprocess.Popen( # noqa: S60320823 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20824 stdout=subprocess.DEVNULL,20825 stderr=subprocess.DEVNULL,20826 )20827 try:20828 deadline = time.monotonic() + 3020829 while (20830 subprocess.run( # noqa: S60320831 ["pg_isready", "-h", str(sockdir), "-U", "test"],20832 check=False,20833 capture_output=True,20834 ).returncode20835 != 020836 ):20837 # The socket appears before recovery finishes; createdb would20838 # fail with "the database system is starting up".20839 if time.monotonic() > deadline:20840 msg = "postgres did not start"20841> raise RuntimeError(msg)20842E RuntimeError: postgres did not start2084320844nixbot/tests/support.py:319: RuntimeError20845________ ERROR at setup of test_scheduled_run_viewer_cross_project_404 _________20846[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142084720848request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20849tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2085020851 @pytest.fixture(scope="module")20852 def postgres_dsn(20853 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20854 ) -> Iterator[str]:20855 if shutil.which("initdb") is None:20856 pytest.skip("postgresql not available")20857 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20858> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20859 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2086020861nixbot/tests/conftest.py:33: 20862_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20863/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20864 return next(self.gen)20865 ^^^^^^^^^^^^^^20866_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2086720868tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20869dbname = 'web'2087020871 @contextlib.contextmanager20872 def ephemeral_postgres(20873 tmp_path_factory: pytest.TempPathFactory, dbname: str20874 ) -> Iterator[str]:20875 """Throwaway Postgres on a unix socket with migrations applied."""20876 datadir = tmp_path_factory.mktemp("pgdata")20877 sockdir = tmp_path_factory.mktemp("pgsock")20878 subprocess.run( # noqa: S60320879 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20880 check=True,20881 capture_output=True,20882 )20883 proc = subprocess.Popen( # noqa: S60320884 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20885 stdout=subprocess.DEVNULL,20886 stderr=subprocess.DEVNULL,20887 )20888 try:20889 deadline = time.monotonic() + 3020890 while (20891 subprocess.run( # noqa: S60320892 ["pg_isready", "-h", str(sockdir), "-U", "test"],20893 check=False,20894 capture_output=True,20895 ).returncode20896 != 020897 ):20898 # The socket appears before recovery finishes; createdb would20899 # fail with "the database system is starting up".20900 if time.monotonic() > deadline:20901 msg = "postgres did not start"20902> raise RuntimeError(msg)20903E RuntimeError: postgres did not start2090420905nixbot/tests/support.py:319: RuntimeError20906_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________20907[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142090820909self = <Coroutine test_unexpected_eval_path_error_settles_build>2091020911 def setup(self) -> None:20912 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20913 if runner_fixture_id not in self.fixturenames:20914 self.fixturenames.append(runner_fixture_id)20915 # When loop factories are configured, resolve the loop factory20916 # fixture early so that a factory variant change cascades cache20917 # invalidation before any async fixture checks its cache.20918 hook_caller = self.config.hook.pytest_asyncio_loop_factories20919 if hook_caller.get_hookimpls():20920 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20921> return super().setup()20922 ^^^^^^^^^^^^^^^2092320924/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20925_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20926nixbot/tests/conftest.py:33: in postgres_dsn20927 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20928 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20929/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20930 return next(self.gen)20931 ^^^^^^^^^^^^^^20932_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2093320934tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20935dbname = 'orchestrator'2093620937 @contextlib.contextmanager20938 def ephemeral_postgres(20939 tmp_path_factory: pytest.TempPathFactory, dbname: str20940 ) -> Iterator[str]:20941 """Throwaway Postgres on a unix socket with migrations applied."""20942 datadir = tmp_path_factory.mktemp("pgdata")20943 sockdir = tmp_path_factory.mktemp("pgsock")20944 subprocess.run( # noqa: S60320945 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20946 check=True,20947 capture_output=True,20948 )20949 proc = subprocess.Popen( # noqa: S60320950 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20951 stdout=subprocess.DEVNULL,20952 stderr=subprocess.DEVNULL,20953 )20954 try:20955 deadline = time.monotonic() + 3020956 while (20957 subprocess.run( # noqa: S60320958 ["pg_isready", "-h", str(sockdir), "-U", "test"],20959 check=False,20960 capture_output=True,20961 ).returncode20962 != 020963 ):20964 # The socket appears before recovery finishes; createdb would20965 # fail with "the database system is starting up".20966 if time.monotonic() > deadline:20967 msg = "postgres did not start"20968> raise RuntimeError(msg)20969E RuntimeError: postgres did not start2097020971nixbot/tests/support.py:319: RuntimeError20972_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______20973[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142097420975request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20976tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2097720978 @pytest.fixture(scope="module")20979 def postgres_dsn(20980 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20981 ) -> Iterator[str]:20982 if shutil.which("initdb") is None:20983 pytest.skip("postgresql not available")20984 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20985> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20986 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2098720988nixbot/tests/conftest.py:33: 20989_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20990/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20991 return next(self.gen)20992 ^^^^^^^^^^^^^^20993_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2099420995tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20996dbname = 'web'2099720998 @contextlib.contextmanager20999 def ephemeral_postgres(21000 tmp_path_factory: pytest.TempPathFactory, dbname: str21001 ) -> Iterator[str]:21002 """Throwaway Postgres on a unix socket with migrations applied."""21003 datadir = tmp_path_factory.mktemp("pgdata")21004 sockdir = tmp_path_factory.mktemp("pgsock")21005 subprocess.run( # noqa: S60321006 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21007 check=True,21008 capture_output=True,21009 )21010 proc = subprocess.Popen( # noqa: S60321011 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21012 stdout=subprocess.DEVNULL,21013 stderr=subprocess.DEVNULL,21014 )21015 try:21016 deadline = time.monotonic() + 3021017 while (21018 subprocess.run( # noqa: S60321019 ["pg_isready", "-h", str(sockdir), "-U", "test"],21020 check=False,21021 capture_output=True,21022 ).returncode21023 != 021024 ):21025 # The socket appears before recovery finishes; createdb would21026 # fail with "the database system is starting up".21027 if time.monotonic() > deadline:21028 msg = "postgres did not start"21029> raise RuntimeError(msg)21030E RuntimeError: postgres did not start2103121032nixbot/tests/support.py:319: RuntimeError21033____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____21034[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142103521036self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2103721038 def setup(self) -> None:21039 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21040 if runner_fixture_id not in self.fixturenames:21041 self.fixturenames.append(runner_fixture_id)21042 # When loop factories are configured, resolve the loop factory21043 # fixture early so that a factory variant change cascades cache21044 # invalidation before any async fixture checks its cache.21045 hook_caller = self.config.hook.pytest_asyncio_loop_factories21046 if hook_caller.get_hookimpls():21047 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21048> return super().setup()21049 ^^^^^^^^^^^^^^^2105021051/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21052_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21053nixbot/tests/conftest.py:33: in postgres_dsn21054 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21055 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21056/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21057 return next(self.gen)21058 ^^^^^^^^^^^^^^21059_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2106021061tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21062dbname = 'orchestrator'2106321064 @contextlib.contextmanager21065 def ephemeral_postgres(21066 tmp_path_factory: pytest.TempPathFactory, dbname: str21067 ) -> Iterator[str]:21068 """Throwaway Postgres on a unix socket with migrations applied."""21069 datadir = tmp_path_factory.mktemp("pgdata")21070 sockdir = tmp_path_factory.mktemp("pgsock")21071 subprocess.run( # noqa: S60321072 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21073 check=True,21074 capture_output=True,21075 )21076 proc = subprocess.Popen( # noqa: S60321077 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21078 stdout=subprocess.DEVNULL,21079 stderr=subprocess.DEVNULL,21080 )21081 try:21082 deadline = time.monotonic() + 3021083 while (21084 subprocess.run( # noqa: S60321085 ["pg_isready", "-h", str(sockdir), "-U", "test"],21086 check=False,21087 capture_output=True,21088 ).returncode21089 != 021090 ):21091 # The socket appears before recovery finishes; createdb would21092 # fail with "the database system is starting up".21093 if time.monotonic() > deadline:21094 msg = "postgres did not start"21095> raise RuntimeError(msg)21096E RuntimeError: postgres did not start2109721098nixbot/tests/support.py:319: RuntimeError21099________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________21100[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142110121102request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21103tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2110421105 @pytest.fixture(scope="module")21106 def postgres_dsn(21107 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21108 ) -> Iterator[str]:21109 if shutil.which("initdb") is None:21110 pytest.skip("postgresql not available")21111 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21112> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21113 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2111421115nixbot/tests/conftest.py:33: 21116_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21117/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21118 return next(self.gen)21119 ^^^^^^^^^^^^^^21120_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2112121122tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21123dbname = 'web'2112421125 @contextlib.contextmanager21126 def ephemeral_postgres(21127 tmp_path_factory: pytest.TempPathFactory, dbname: str21128 ) -> Iterator[str]:21129 """Throwaway Postgres on a unix socket with migrations applied."""21130 datadir = tmp_path_factory.mktemp("pgdata")21131 sockdir = tmp_path_factory.mktemp("pgsock")21132 subprocess.run( # noqa: S60321133 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21134 check=True,21135 capture_output=True,21136 )21137 proc = subprocess.Popen( # noqa: S60321138 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21139 stdout=subprocess.DEVNULL,21140 stderr=subprocess.DEVNULL,21141 )21142 try:21143 deadline = time.monotonic() + 3021144 while (21145 subprocess.run( # noqa: S60321146 ["pg_isready", "-h", str(sockdir), "-U", "test"],21147 check=False,21148 capture_output=True,21149 ).returncode21150 != 021151 ):21152 # The socket appears before recovery finishes; createdb would21153 # fail with "the database system is starting up".21154 if time.monotonic() > deadline:21155 msg = "postgres did not start"21156> raise RuntimeError(msg)21157E RuntimeError: postgres did not start2115821159nixbot/tests/support.py:319: RuntimeError21160_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________21161[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142116221163request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21164tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2116521166 @pytest.fixture(scope="module")21167 def postgres_dsn(21168 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21169 ) -> Iterator[str]:21170 if shutil.which("initdb") is None:21171 pytest.skip("postgresql not available")21172 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21173> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21174 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2117521176nixbot/tests/conftest.py:33: 21177_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21178/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21179 return next(self.gen)21180 ^^^^^^^^^^^^^^21181_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2118221183tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21184dbname = 'web'2118521186 @contextlib.contextmanager21187 def ephemeral_postgres(21188 tmp_path_factory: pytest.TempPathFactory, dbname: str21189 ) -> Iterator[str]:21190 """Throwaway Postgres on a unix socket with migrations applied."""21191 datadir = tmp_path_factory.mktemp("pgdata")21192 sockdir = tmp_path_factory.mktemp("pgsock")21193 subprocess.run( # noqa: S60321194 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21195 check=True,21196 capture_output=True,21197 )21198 proc = subprocess.Popen( # noqa: S60321199 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21200 stdout=subprocess.DEVNULL,21201 stderr=subprocess.DEVNULL,21202 )21203 try:21204 deadline = time.monotonic() + 3021205 while (21206 subprocess.run( # noqa: S60321207 ["pg_isready", "-h", str(sockdir), "-U", "test"],21208 check=False,21209 capture_output=True,21210 ).returncode21211 != 021212 ):21213 # The socket appears before recovery finishes; createdb would21214 # fail with "the database system is starting up".21215 if time.monotonic() > deadline:21216 msg = "postgres did not start"21217> raise RuntimeError(msg)21218E RuntimeError: postgres did not start2121921220nixbot/tests/support.py:319: RuntimeError21221__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __21222[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142122321224self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2122521226 def setup(self) -> None:21227 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21228 if runner_fixture_id not in self.fixturenames:21229 self.fixturenames.append(runner_fixture_id)21230 # When loop factories are configured, resolve the loop factory21231 # fixture early so that a factory variant change cascades cache21232 # invalidation before any async fixture checks its cache.21233 hook_caller = self.config.hook.pytest_asyncio_loop_factories21234 if hook_caller.get_hookimpls():21235 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21236> return super().setup()21237 ^^^^^^^^^^^^^^^2123821239/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21240_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21241nixbot/tests/conftest.py:33: in postgres_dsn21242 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21243 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21244/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21245 return next(self.gen)21246 ^^^^^^^^^^^^^^21247_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2124821249tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21250dbname = 'orchestrator'2125121252 @contextlib.contextmanager21253 def ephemeral_postgres(21254 tmp_path_factory: pytest.TempPathFactory, dbname: str21255 ) -> Iterator[str]:21256 """Throwaway Postgres on a unix socket with migrations applied."""21257 datadir = tmp_path_factory.mktemp("pgdata")21258 sockdir = tmp_path_factory.mktemp("pgsock")21259 subprocess.run( # noqa: S60321260 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21261 check=True,21262 capture_output=True,21263 )21264 proc = subprocess.Popen( # noqa: S60321265 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21266 stdout=subprocess.DEVNULL,21267 stderr=subprocess.DEVNULL,21268 )21269 try:21270 deadline = time.monotonic() + 3021271 while (21272 subprocess.run( # noqa: S60321273 ["pg_isready", "-h", str(sockdir), "-U", "test"],21274 check=False,21275 capture_output=True,21276 ).returncode21277 != 021278 ):21279 # The socket appears before recovery finishes; createdb would21280 # fail with "the database system is starting up".21281 if time.monotonic() > deadline:21282 msg = "postgres did not start"21283> raise RuntimeError(msg)21284E RuntimeError: postgres did not start2128521286nixbot/tests/support.py:319: RuntimeError21287_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __21288[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142128921290request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21291tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2129221293 @pytest.fixture(scope="module")21294 def postgres_dsn(21295 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21296 ) -> Iterator[str]:21297 if shutil.which("initdb") is None:21298 pytest.skip("postgresql not available")21299 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21300> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21301 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2130221303nixbot/tests/conftest.py:33: 21304_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21305/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21306 return next(self.gen)21307 ^^^^^^^^^^^^^^21308_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2130921310tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21311dbname = 'web'2131221313 @contextlib.contextmanager21314 def ephemeral_postgres(21315 tmp_path_factory: pytest.TempPathFactory, dbname: str21316 ) -> Iterator[str]:21317 """Throwaway Postgres on a unix socket with migrations applied."""21318 datadir = tmp_path_factory.mktemp("pgdata")21319 sockdir = tmp_path_factory.mktemp("pgsock")21320 subprocess.run( # noqa: S60321321 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21322 check=True,21323 capture_output=True,21324 )21325 proc = subprocess.Popen( # noqa: S60321326 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21327 stdout=subprocess.DEVNULL,21328 stderr=subprocess.DEVNULL,21329 )21330 try:21331 deadline = time.monotonic() + 3021332 while (21333 subprocess.run( # noqa: S60321334 ["pg_isready", "-h", str(sockdir), "-U", "test"],21335 check=False,21336 capture_output=True,21337 ).returncode21338 != 021339 ):21340 # The socket appears before recovery finishes; createdb would21341 # fail with "the database system is starting up".21342 if time.monotonic() > deadline:21343 msg = "postgres did not start"21344> raise RuntimeError(msg)21345E RuntimeError: postgres did not start2134621347nixbot/tests/support.py:319: RuntimeError21348__________ ERROR at setup of test_old_schedule_history_url_redirects ___________21349[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142135021351request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21352tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2135321354 @pytest.fixture(scope="module")21355 def postgres_dsn(21356 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21357 ) -> Iterator[str]:21358 if shutil.which("initdb") is None:21359 pytest.skip("postgresql not available")21360 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21361> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21362 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2136321364nixbot/tests/conftest.py:33: 21365_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21366/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21367 return next(self.gen)21368 ^^^^^^^^^^^^^^21369_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2137021371tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21372dbname = 'web'2137321374 @contextlib.contextmanager21375 def ephemeral_postgres(21376 tmp_path_factory: pytest.TempPathFactory, dbname: str21377 ) -> Iterator[str]:21378 """Throwaway Postgres on a unix socket with migrations applied."""21379 datadir = tmp_path_factory.mktemp("pgdata")21380 sockdir = tmp_path_factory.mktemp("pgsock")21381 subprocess.run( # noqa: S60321382 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21383 check=True,21384 capture_output=True,21385 )21386 proc = subprocess.Popen( # noqa: S60321387 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21388 stdout=subprocess.DEVNULL,21389 stderr=subprocess.DEVNULL,21390 )21391 try:21392 deadline = time.monotonic() + 3021393 while (21394 subprocess.run( # noqa: S60321395 ["pg_isready", "-h", str(sockdir), "-U", "test"],21396 check=False,21397 capture_output=True,21398 ).returncode21399 != 021400 ):21401 # The socket appears before recovery finishes; createdb would21402 # fail with "the database system is starting up".21403 if time.monotonic() > deadline:21404 msg = "postgres did not start"21405> raise RuntimeError(msg)21406E RuntimeError: postgres did not start2140721408nixbot/tests/support.py:319: RuntimeError21409______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______21410[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142141121412self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2141321414 def setup(self) -> None:21415 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21416 if runner_fixture_id not in self.fixturenames:21417 self.fixturenames.append(runner_fixture_id)21418 # When loop factories are configured, resolve the loop factory21419 # fixture early so that a factory variant change cascades cache21420 # invalidation before any async fixture checks its cache.21421 hook_caller = self.config.hook.pytest_asyncio_loop_factories21422 if hook_caller.get_hookimpls():21423 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21424> return super().setup()21425 ^^^^^^^^^^^^^^^2142621427/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21428_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21429nixbot/tests/conftest.py:33: in postgres_dsn21430 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21431 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21432/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21433 return next(self.gen)21434 ^^^^^^^^^^^^^^21435_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2143621437tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21438dbname = 'orchestrator'2143921440 @contextlib.contextmanager21441 def ephemeral_postgres(21442 tmp_path_factory: pytest.TempPathFactory, dbname: str21443 ) -> Iterator[str]:21444 """Throwaway Postgres on a unix socket with migrations applied."""21445 datadir = tmp_path_factory.mktemp("pgdata")21446 sockdir = tmp_path_factory.mktemp("pgsock")21447 subprocess.run( # noqa: S60321448 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21449 check=True,21450 capture_output=True,21451 )21452 proc = subprocess.Popen( # noqa: S60321453 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21454 stdout=subprocess.DEVNULL,21455 stderr=subprocess.DEVNULL,21456 )21457 try:21458 deadline = time.monotonic() + 3021459 while (21460 subprocess.run( # noqa: S60321461 ["pg_isready", "-h", str(sockdir), "-U", "test"],21462 check=False,21463 capture_output=True,21464 ).returncode21465 != 021466 ):21467 # The socket appears before recovery finishes; createdb would21468 # fail with "the database system is starting up".21469 if time.monotonic() > deadline:21470 msg = "postgres did not start"21471> raise RuntimeError(msg)21472E RuntimeError: postgres did not start2147321474nixbot/tests/support.py:319: RuntimeError21475__________ ERROR at setup of test_project_effects_filter_and_paginate __________21476[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142147721478request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21479tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2148021481 @pytest.fixture(scope="module")21482 def postgres_dsn(21483 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21484 ) -> Iterator[str]:21485 if shutil.which("initdb") is None:21486 pytest.skip("postgresql not available")21487 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21488> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21489 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2149021491nixbot/tests/conftest.py:33: 21492_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21493/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21494 return next(self.gen)21495 ^^^^^^^^^^^^^^21496_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2149721498tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21499dbname = 'web'2150021501 @contextlib.contextmanager21502 def ephemeral_postgres(21503 tmp_path_factory: pytest.TempPathFactory, dbname: str21504 ) -> Iterator[str]:21505 """Throwaway Postgres on a unix socket with migrations applied."""21506 datadir = tmp_path_factory.mktemp("pgdata")21507 sockdir = tmp_path_factory.mktemp("pgsock")21508 subprocess.run( # noqa: S60321509 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21510 check=True,21511 capture_output=True,21512 )21513 proc = subprocess.Popen( # noqa: S60321514 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21515 stdout=subprocess.DEVNULL,21516 stderr=subprocess.DEVNULL,21517 )21518 try:21519 deadline = time.monotonic() + 3021520 while (21521 subprocess.run( # noqa: S60321522 ["pg_isready", "-h", str(sockdir), "-U", "test"],21523 check=False,21524 capture_output=True,21525 ).returncode21526 != 021527 ):21528 # The socket appears before recovery finishes; createdb would21529 # fail with "the database system is starting up".21530 if time.monotonic() > deadline:21531 msg = "postgres did not start"21532> raise RuntimeError(msg)21533E RuntimeError: postgres did not start2153421535nixbot/tests/support.py:319: RuntimeError21536_________ ERROR at setup of test_scheduled_run_stream_replays_history __________21537[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142153821539request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21540tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2154121542 @pytest.fixture(scope="module")21543 def postgres_dsn(21544 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21545 ) -> Iterator[str]:21546 if shutil.which("initdb") is None:21547 pytest.skip("postgresql not available")21548 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21549> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21550 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2155121552nixbot/tests/conftest.py:33: 21553_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21554/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21555 return next(self.gen)21556 ^^^^^^^^^^^^^^21557_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2155821559tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21560dbname = 'web'2156121562 @contextlib.contextmanager21563 def ephemeral_postgres(21564 tmp_path_factory: pytest.TempPathFactory, dbname: str21565 ) -> Iterator[str]:21566 """Throwaway Postgres on a unix socket with migrations applied."""21567 datadir = tmp_path_factory.mktemp("pgdata")21568 sockdir = tmp_path_factory.mktemp("pgsock")21569 subprocess.run( # noqa: S60321570 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21571 check=True,21572 capture_output=True,21573 )21574 proc = subprocess.Popen( # noqa: S60321575 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21576 stdout=subprocess.DEVNULL,21577 stderr=subprocess.DEVNULL,21578 )21579 try:21580 deadline = time.monotonic() + 3021581 while (21582 subprocess.run( # noqa: S60321583 ["pg_isready", "-h", str(sockdir), "-U", "test"],21584 check=False,21585 capture_output=True,21586 ).returncode21587 != 021588 ):21589 # The socket appears before recovery finishes; createdb would21590 # fail with "the database system is starting up".21591 if time.monotonic() > deadline:21592 msg = "postgres did not start"21593> raise RuntimeError(msg)21594E RuntimeError: postgres did not start2159521596nixbot/tests/support.py:319: RuntimeError21597_____ ERROR at setup of test_push_reusing_pr_build_delivers_build_finished _____21598[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142159921600self = <Coroutine test_push_reusing_pr_build_delivers_build_finished>2160121602 def setup(self) -> None:21603 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21604 if runner_fixture_id not in self.fixturenames:21605 self.fixturenames.append(runner_fixture_id)21606 # When loop factories are configured, resolve the loop factory21607 # fixture early so that a factory variant change cascades cache21608 # invalidation before any async fixture checks its cache.21609 hook_caller = self.config.hook.pytest_asyncio_loop_factories21610 if hook_caller.get_hookimpls():21611 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21612> return super().setup()21613 ^^^^^^^^^^^^^^^2161421615/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21616_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21617nixbot/tests/conftest.py:33: in postgres_dsn21618 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21619 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21620/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21621 return next(self.gen)21622 ^^^^^^^^^^^^^^21623_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2162421625tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21626dbname = 'orchestrator'2162721628 @contextlib.contextmanager21629 def ephemeral_postgres(21630 tmp_path_factory: pytest.TempPathFactory, dbname: str21631 ) -> Iterator[str]:21632 """Throwaway Postgres on a unix socket with migrations applied."""21633 datadir = tmp_path_factory.mktemp("pgdata")21634 sockdir = tmp_path_factory.mktemp("pgsock")21635 subprocess.run( # noqa: S60321636 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21637 check=True,21638 capture_output=True,21639 )21640 proc = subprocess.Popen( # noqa: S60321641 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21642 stdout=subprocess.DEVNULL,21643 stderr=subprocess.DEVNULL,21644 )21645 try:21646 deadline = time.monotonic() + 3021647 while (21648 subprocess.run( # noqa: S60321649 ["pg_isready", "-h", str(sockdir), "-U", "test"],21650 check=False,21651 capture_output=True,21652 ).returncode21653 != 021654 ):21655 # The socket appears before recovery finishes; createdb would21656 # fail with "the database system is starting up".21657 if time.monotonic() > deadline:21658 msg = "postgres did not start"21659> raise RuntimeError(msg)21660E RuntimeError: postgres did not start2166121662nixbot/tests/support.py:319: RuntimeError21663___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21664[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142166521666request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21667tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2166821669 @pytest.fixture(scope="module")21670 def postgres_dsn(21671 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21672 ) -> Iterator[str]:21673 if shutil.which("initdb") is None:21674 pytest.skip("postgresql not available")21675 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21676> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21677 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2167821679nixbot/tests/conftest.py:33: 21680_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21681/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21682 return next(self.gen)21683 ^^^^^^^^^^^^^^21684_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2168521686tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21687dbname = 'web'2168821689 @contextlib.contextmanager21690 def ephemeral_postgres(21691 tmp_path_factory: pytest.TempPathFactory, dbname: str21692 ) -> Iterator[str]:21693 """Throwaway Postgres on a unix socket with migrations applied."""21694 datadir = tmp_path_factory.mktemp("pgdata")21695 sockdir = tmp_path_factory.mktemp("pgsock")21696 subprocess.run( # noqa: S60321697 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21698 check=True,21699 capture_output=True,21700 )21701 proc = subprocess.Popen( # noqa: S60321702 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21703 stdout=subprocess.DEVNULL,21704 stderr=subprocess.DEVNULL,21705 )21706 try:21707 deadline = time.monotonic() + 3021708 while (21709 subprocess.run( # noqa: S60321710 ["pg_isready", "-h", str(sockdir), "-U", "test"],21711 check=False,21712 capture_output=True,21713 ).returncode21714 != 021715 ):21716 # The socket appears before recovery finishes; createdb would21717 # fail with "the database system is starting up".21718 if time.monotonic() > deadline:21719 msg = "postgres did not start"21720> raise RuntimeError(msg)21721E RuntimeError: postgres did not start2172221723nixbot/tests/support.py:319: RuntimeError21724__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __21725[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142172621727self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2172821729 def setup(self) -> None:21730 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21731 if runner_fixture_id not in self.fixturenames:21732 self.fixturenames.append(runner_fixture_id)21733 # When loop factories are configured, resolve the loop factory21734 # fixture early so that a factory variant change cascades cache21735 # invalidation before any async fixture checks its cache.21736 hook_caller = self.config.hook.pytest_asyncio_loop_factories21737 if hook_caller.get_hookimpls():21738 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21739> return super().setup()21740 ^^^^^^^^^^^^^^^2174121742/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21743_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21744nixbot/tests/conftest.py:33: in postgres_dsn21745 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21746 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21747/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21748 return next(self.gen)21749 ^^^^^^^^^^^^^^21750_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2175121752tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21753dbname = 'orchestrator'2175421755 @contextlib.contextmanager21756 def ephemeral_postgres(21757 tmp_path_factory: pytest.TempPathFactory, dbname: str21758 ) -> Iterator[str]:21759 """Throwaway Postgres on a unix socket with migrations applied."""21760 datadir = tmp_path_factory.mktemp("pgdata")21761 sockdir = tmp_path_factory.mktemp("pgsock")21762 subprocess.run( # noqa: S60321763 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21764 check=True,21765 capture_output=True,21766 )21767 proc = subprocess.Popen( # noqa: S60321768 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21769 stdout=subprocess.DEVNULL,21770 stderr=subprocess.DEVNULL,21771 )21772 try:21773 deadline = time.monotonic() + 3021774 while (21775 subprocess.run( # noqa: S60321776 ["pg_isready", "-h", str(sockdir), "-U", "test"],21777 check=False,21778 capture_output=True,21779 ).returncode21780 != 021781 ):21782 # The socket appears before recovery finishes; createdb would21783 # fail with "the database system is starting up".21784 if time.monotonic() > deadline:21785 msg = "postgres did not start"21786> raise RuntimeError(msg)21787E RuntimeError: postgres did not start2178821789nixbot/tests/support.py:319: RuntimeError21790_________________ ERROR at setup of test_api_log_toc_and_text __________________21791[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142179221793request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21794tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2179521796 @pytest.fixture(scope="module")21797 def postgres_dsn(21798 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21799 ) -> Iterator[str]:21800 if shutil.which("initdb") is None:21801 pytest.skip("postgresql not available")21802 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21803> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21804 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2180521806nixbot/tests/conftest.py:33: 21807_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21808/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21809 return next(self.gen)21810 ^^^^^^^^^^^^^^21811_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2181221813tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21814dbname = 'web'2181521816 @contextlib.contextmanager21817 def ephemeral_postgres(21818 tmp_path_factory: pytest.TempPathFactory, dbname: str21819 ) -> Iterator[str]:21820 """Throwaway Postgres on a unix socket with migrations applied."""21821 datadir = tmp_path_factory.mktemp("pgdata")21822 sockdir = tmp_path_factory.mktemp("pgsock")21823 subprocess.run( # noqa: S60321824 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21825 check=True,21826 capture_output=True,21827 )21828 proc = subprocess.Popen( # noqa: S60321829 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21830 stdout=subprocess.DEVNULL,21831 stderr=subprocess.DEVNULL,21832 )21833 try:21834 deadline = time.monotonic() + 3021835 while (21836 subprocess.run( # noqa: S60321837 ["pg_isready", "-h", str(sockdir), "-U", "test"],21838 check=False,21839 capture_output=True,21840 ).returncode21841 != 021842 ):21843 # The socket appears before recovery finishes; createdb would21844 # fail with "the database system is starting up".21845 if time.monotonic() > deadline:21846 msg = "postgres did not start"21847> raise RuntimeError(msg)21848E RuntimeError: postgres did not start2184921850nixbot/tests/support.py:319: RuntimeError21851_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21852[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142185321854request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21855tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2185621857 @pytest.fixture(scope="module")21858 def postgres_dsn(21859 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21860 ) -> Iterator[str]:21861 if shutil.which("initdb") is None:21862 pytest.skip("postgresql not available")21863 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21864> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21865 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2186621867nixbot/tests/conftest.py:33: 21868_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21869/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21870 return next(self.gen)21871 ^^^^^^^^^^^^^^21872_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2187321874tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21875dbname = 'web'2187621877 @contextlib.contextmanager21878 def ephemeral_postgres(21879 tmp_path_factory: pytest.TempPathFactory, dbname: str21880 ) -> Iterator[str]:21881 """Throwaway Postgres on a unix socket with migrations applied."""21882 datadir = tmp_path_factory.mktemp("pgdata")21883 sockdir = tmp_path_factory.mktemp("pgsock")21884 subprocess.run( # noqa: S60321885 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21886 check=True,21887 capture_output=True,21888 )21889 proc = subprocess.Popen( # noqa: S60321890 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21891 stdout=subprocess.DEVNULL,21892 stderr=subprocess.DEVNULL,21893 )21894 try:21895 deadline = time.monotonic() + 3021896 while (21897 subprocess.run( # noqa: S60321898 ["pg_isready", "-h", str(sockdir), "-U", "test"],21899 check=False,21900 capture_output=True,21901 ).returncode21902 != 021903 ):21904 # The socket appears before recovery finishes; createdb would21905 # fail with "the database system is starting up".21906 if time.monotonic() > deadline:21907 msg = "postgres did not start"21908> raise RuntimeError(msg)21909E RuntimeError: postgres did not start2191021911nixbot/tests/support.py:319: RuntimeError21912__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __21913[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142191421915self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2191621917 def setup(self) -> None:21918 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21919 if runner_fixture_id not in self.fixturenames:21920 self.fixturenames.append(runner_fixture_id)21921 # When loop factories are configured, resolve the loop factory21922 # fixture early so that a factory variant change cascades cache21923 # invalidation before any async fixture checks its cache.21924 hook_caller = self.config.hook.pytest_asyncio_loop_factories21925 if hook_caller.get_hookimpls():21926 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21927> return super().setup()21928 ^^^^^^^^^^^^^^^2192921930/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21931_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21932nixbot/tests/conftest.py:33: in postgres_dsn21933 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21934 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21935/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21936 return next(self.gen)21937 ^^^^^^^^^^^^^^21938_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2193921940tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21941dbname = 'orchestrator'2194221943 @contextlib.contextmanager21944 def ephemeral_postgres(21945 tmp_path_factory: pytest.TempPathFactory, dbname: str21946 ) -> Iterator[str]:21947 """Throwaway Postgres on a unix socket with migrations applied."""21948 datadir = tmp_path_factory.mktemp("pgdata")21949 sockdir = tmp_path_factory.mktemp("pgsock")21950 subprocess.run( # noqa: S60321951 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21952 check=True,21953 capture_output=True,21954 )21955 proc = subprocess.Popen( # noqa: S60321956 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21957 stdout=subprocess.DEVNULL,21958 stderr=subprocess.DEVNULL,21959 )21960 try:21961 deadline = time.monotonic() + 3021962 while (21963 subprocess.run( # noqa: S60321964 ["pg_isready", "-h", str(sockdir), "-U", "test"],21965 check=False,21966 capture_output=True,21967 ).returncode21968 != 021969 ):21970 # The socket appears before recovery finishes; createdb would21971 # fail with "the database system is starting up".21972 if time.monotonic() > deadline:21973 msg = "postgres did not start"21974> raise RuntimeError(msg)21975E RuntimeError: postgres did not start2197621977nixbot/tests/support.py:319: RuntimeError21978__________________ ERROR at setup of test_api_log_stream_json __________________21979[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142198021981request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21982tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2198321984 @pytest.fixture(scope="module")21985 def postgres_dsn(21986 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21987 ) -> Iterator[str]:21988 if shutil.which("initdb") is None:21989 pytest.skip("postgresql not available")21990 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21991> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21992 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2199321994nixbot/tests/conftest.py:33: 21995_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21996/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21997 return next(self.gen)21998 ^^^^^^^^^^^^^^21999_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2200022001tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22002dbname = 'web'2200322004 @contextlib.contextmanager22005 def ephemeral_postgres(22006 tmp_path_factory: pytest.TempPathFactory, dbname: str22007 ) -> Iterator[str]:22008 """Throwaway Postgres on a unix socket with migrations applied."""22009 datadir = tmp_path_factory.mktemp("pgdata")22010 sockdir = tmp_path_factory.mktemp("pgsock")22011 subprocess.run( # noqa: S60322012 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22013 check=True,22014 capture_output=True,22015 )22016 proc = subprocess.Popen( # noqa: S60322017 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22018 stdout=subprocess.DEVNULL,22019 stderr=subprocess.DEVNULL,22020 )22021 try:22022 deadline = time.monotonic() + 3022023 while (22024 subprocess.run( # noqa: S60322025 ["pg_isready", "-h", str(sockdir), "-U", "test"],22026 check=False,22027 capture_output=True,22028 ).returncode22029 != 022030 ):22031 # The socket appears before recovery finishes; createdb would22032 # fail with "the database system is starting up".22033 if time.monotonic() > deadline:22034 msg = "postgres did not start"22035> raise RuntimeError(msg)22036E RuntimeError: postgres did not start2203722038nixbot/tests/support.py:319: RuntimeError22039_______________ ERROR at setup of test_build_eval_stats_surface ________________22040[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142204122042request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22043tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2204422045 @pytest.fixture(scope="module")22046 def postgres_dsn(22047 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22048 ) -> Iterator[str]:22049 if shutil.which("initdb") is None:22050 pytest.skip("postgresql not available")22051 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22052> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22053 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2205422055nixbot/tests/conftest.py:33: 22056_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22057/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22058 return next(self.gen)22059 ^^^^^^^^^^^^^^22060_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206122062tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22063dbname = 'web'2206422065 @contextlib.contextmanager22066 def ephemeral_postgres(22067 tmp_path_factory: pytest.TempPathFactory, dbname: str22068 ) -> Iterator[str]:22069 """Throwaway Postgres on a unix socket with migrations applied."""22070 datadir = tmp_path_factory.mktemp("pgdata")22071 sockdir = tmp_path_factory.mktemp("pgsock")22072 subprocess.run( # noqa: S60322073 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22074 check=True,22075 capture_output=True,22076 )22077 proc = subprocess.Popen( # noqa: S60322078 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22079 stdout=subprocess.DEVNULL,22080 stderr=subprocess.DEVNULL,22081 )22082 try:22083 deadline = time.monotonic() + 3022084 while (22085 subprocess.run( # noqa: S60322086 ["pg_isready", "-h", str(sockdir), "-U", "test"],22087 check=False,22088 capture_output=True,22089 ).returncode22090 != 022091 ):22092 # The socket appears before recovery finishes; createdb would22093 # fail with "the database system is starting up".22094 if time.monotonic() > deadline:22095 msg = "postgres did not start"22096> raise RuntimeError(msg)22097E RuntimeError: postgres did not start2209822099nixbot/tests/support.py:319: RuntimeError22100______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22101[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210222103self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2210422105 def setup(self) -> None:22106 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22107 if runner_fixture_id not in self.fixturenames:22108 self.fixturenames.append(runner_fixture_id)22109 # When loop factories are configured, resolve the loop factory22110 # fixture early so that a factory variant change cascades cache22111 # invalidation before any async fixture checks its cache.22112 hook_caller = self.config.hook.pytest_asyncio_loop_factories22113 if hook_caller.get_hookimpls():22114 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22115> return super().setup()22116 ^^^^^^^^^^^^^^^2211722118/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22119_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22120nixbot/tests/conftest.py:33: in postgres_dsn22121 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22122 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22123/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22124 return next(self.gen)22125 ^^^^^^^^^^^^^^22126_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2212722128tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22129dbname = 'orchestrator'2213022131 @contextlib.contextmanager22132 def ephemeral_postgres(22133 tmp_path_factory: pytest.TempPathFactory, dbname: str22134 ) -> Iterator[str]:22135 """Throwaway Postgres on a unix socket with migrations applied."""22136 datadir = tmp_path_factory.mktemp("pgdata")22137 sockdir = tmp_path_factory.mktemp("pgsock")22138 subprocess.run( # noqa: S60322139 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22140 check=True,22141 capture_output=True,22142 )22143 proc = subprocess.Popen( # noqa: S60322144 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22145 stdout=subprocess.DEVNULL,22146 stderr=subprocess.DEVNULL,22147 )22148 try:22149 deadline = time.monotonic() + 3022150 while (22151 subprocess.run( # noqa: S60322152 ["pg_isready", "-h", str(sockdir), "-U", "test"],22153 check=False,22154 capture_output=True,22155 ).returncode22156 != 022157 ):22158 # The socket appears before recovery finishes; createdb would22159 # fail with "the database system is starting up".22160 if time.monotonic() > deadline:22161 msg = "postgres did not start"22162> raise RuntimeError(msg)22163E RuntimeError: postgres did not start2216422165nixbot/tests/support.py:319: RuntimeError22166________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22167[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142216822169self = <Coroutine test_restart_build_drops_queued_effect_items>2217022171 def setup(self) -> None:22172 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22173 if runner_fixture_id not in self.fixturenames:22174 self.fixturenames.append(runner_fixture_id)22175 # When loop factories are configured, resolve the loop factory22176 # fixture early so that a factory variant change cascades cache22177 # invalidation before any async fixture checks its cache.22178 hook_caller = self.config.hook.pytest_asyncio_loop_factories22179 if hook_caller.get_hookimpls():22180 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22181> return super().setup()22182 ^^^^^^^^^^^^^^^2218322184/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22185_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22186nixbot/tests/conftest.py:33: in postgres_dsn22187 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22188 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22189/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22190 return next(self.gen)22191 ^^^^^^^^^^^^^^22192_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219322194tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22195dbname = 'orchestrator'2219622197 @contextlib.contextmanager22198 def ephemeral_postgres(22199 tmp_path_factory: pytest.TempPathFactory, dbname: str22200 ) -> Iterator[str]:22201 """Throwaway Postgres on a unix socket with migrations applied."""22202 datadir = tmp_path_factory.mktemp("pgdata")22203 sockdir = tmp_path_factory.mktemp("pgsock")22204 subprocess.run( # noqa: S60322205 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22206 check=True,22207 capture_output=True,22208 )22209 proc = subprocess.Popen( # noqa: S60322210 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22211 stdout=subprocess.DEVNULL,22212 stderr=subprocess.DEVNULL,22213 )22214 try:22215 deadline = time.monotonic() + 3022216 while (22217 subprocess.run( # noqa: S60322218 ["pg_isready", "-h", str(sockdir), "-U", "test"],22219 check=False,22220 capture_output=True,22221 ).returncode22222 != 022223 ):22224 # The socket appears before recovery finishes; createdb would22225 # fail with "the database system is starting up".22226 if time.monotonic() > deadline:22227 msg = "postgres did not start"22228> raise RuntimeError(msg)22229E RuntimeError: postgres did not start2223022231nixbot/tests/support.py:319: RuntimeError22232___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22233[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223422235self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2223622237 def setup(self) -> None:22238 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22239 if runner_fixture_id not in self.fixturenames:22240 self.fixturenames.append(runner_fixture_id)22241 # When loop factories are configured, resolve the loop factory22242 # fixture early so that a factory variant change cascades cache22243 # invalidation before any async fixture checks its cache.22244 hook_caller = self.config.hook.pytest_asyncio_loop_factories22245 if hook_caller.get_hookimpls():22246 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22247> return super().setup()22248 ^^^^^^^^^^^^^^^2224922250/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22251_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22252nixbot/tests/conftest.py:33: in postgres_dsn22253 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22254 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22255/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22256 return next(self.gen)22257 ^^^^^^^^^^^^^^22258_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2225922260tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22261dbname = 'orchestrator'2226222263 @contextlib.contextmanager22264 def ephemeral_postgres(22265 tmp_path_factory: pytest.TempPathFactory, dbname: str22266 ) -> Iterator[str]:22267 """Throwaway Postgres on a unix socket with migrations applied."""22268 datadir = tmp_path_factory.mktemp("pgdata")22269 sockdir = tmp_path_factory.mktemp("pgsock")22270 subprocess.run( # noqa: S60322271 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22272 check=True,22273 capture_output=True,22274 )22275 proc = subprocess.Popen( # noqa: S60322276 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22277 stdout=subprocess.DEVNULL,22278 stderr=subprocess.DEVNULL,22279 )22280 try:22281 deadline = time.monotonic() + 3022282 while (22283 subprocess.run( # noqa: S60322284 ["pg_isready", "-h", str(sockdir), "-U", "test"],22285 check=False,22286 capture_output=True,22287 ).returncode22288 != 022289 ):22290 # The socket appears before recovery finishes; createdb would22291 # fail with "the database system is starting up".22292 if time.monotonic() > deadline:22293 msg = "postgres did not start"22294> raise RuntimeError(msg)22295E RuntimeError: postgres did not start2229622297nixbot/tests/support.py:319: RuntimeError22298_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22299[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142230022301self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2230222303 def setup(self) -> None:22304 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22305 if runner_fixture_id not in self.fixturenames:22306 self.fixturenames.append(runner_fixture_id)22307 # When loop factories are configured, resolve the loop factory22308 # fixture early so that a factory variant change cascades cache22309 # invalidation before any async fixture checks its cache.22310 hook_caller = self.config.hook.pytest_asyncio_loop_factories22311 if hook_caller.get_hookimpls():22312 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22313> return super().setup()22314 ^^^^^^^^^^^^^^^2231522316/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22317_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22318nixbot/tests/conftest.py:33: in postgres_dsn22319 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22320 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22321/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22322 return next(self.gen)22323 ^^^^^^^^^^^^^^22324_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232522326tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22327dbname = 'orchestrator'2232822329 @contextlib.contextmanager22330 def ephemeral_postgres(22331 tmp_path_factory: pytest.TempPathFactory, dbname: str22332 ) -> Iterator[str]:22333 """Throwaway Postgres on a unix socket with migrations applied."""22334 datadir = tmp_path_factory.mktemp("pgdata")22335 sockdir = tmp_path_factory.mktemp("pgsock")22336 subprocess.run( # noqa: S60322337 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22338 check=True,22339 capture_output=True,22340 )22341 proc = subprocess.Popen( # noqa: S60322342 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22343 stdout=subprocess.DEVNULL,22344 stderr=subprocess.DEVNULL,22345 )22346 try:22347 deadline = time.monotonic() + 3022348 while (22349 subprocess.run( # noqa: S60322350 ["pg_isready", "-h", str(sockdir), "-U", "test"],22351 check=False,22352 capture_output=True,22353 ).returncode22354 != 022355 ):22356 # The socket appears before recovery finishes; createdb would22357 # fail with "the database system is starting up".22358 if time.monotonic() > deadline:22359 msg = "postgres did not start"22360> raise RuntimeError(msg)22361E RuntimeError: postgres did not start2236222363nixbot/tests/support.py:319: RuntimeError22364_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22365[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236622367self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2236822369 def setup(self) -> None:22370 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22371 if runner_fixture_id not in self.fixturenames:22372 self.fixturenames.append(runner_fixture_id)22373 # When loop factories are configured, resolve the loop factory22374 # fixture early so that a factory variant change cascades cache22375 # invalidation before any async fixture checks its cache.22376 hook_caller = self.config.hook.pytest_asyncio_loop_factories22377 if hook_caller.get_hookimpls():22378 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22379> return super().setup()22380 ^^^^^^^^^^^^^^^2238122382/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22383_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22384nixbot/tests/conftest.py:33: in postgres_dsn22385 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22386 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22387/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22388 return next(self.gen)22389 ^^^^^^^^^^^^^^22390_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239122392tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22393dbname = 'orchestrator'2239422395 @contextlib.contextmanager22396 def ephemeral_postgres(22397 tmp_path_factory: pytest.TempPathFactory, dbname: str22398 ) -> Iterator[str]:22399 """Throwaway Postgres on a unix socket with migrations applied."""22400 datadir = tmp_path_factory.mktemp("pgdata")22401 sockdir = tmp_path_factory.mktemp("pgsock")22402 subprocess.run( # noqa: S60322403 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22404 check=True,22405 capture_output=True,22406 )22407 proc = subprocess.Popen( # noqa: S60322408 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22409 stdout=subprocess.DEVNULL,22410 stderr=subprocess.DEVNULL,22411 )22412 try:22413 deadline = time.monotonic() + 3022414 while (22415 subprocess.run( # noqa: S60322416 ["pg_isready", "-h", str(sockdir), "-U", "test"],22417 check=False,22418 capture_output=True,22419 ).returncode22420 != 022421 ):22422 # The socket appears before recovery finishes; createdb would22423 # fail with "the database system is starting up".22424 if time.monotonic() > deadline:22425 msg = "postgres did not start"22426> raise RuntimeError(msg)22427E RuntimeError: postgres did not start2242822429nixbot/tests/support.py:319: RuntimeError22430______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22431[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243222433self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2243422435 def setup(self) -> None:22436 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22437 if runner_fixture_id not in self.fixturenames:22438 self.fixturenames.append(runner_fixture_id)22439 # When loop factories are configured, resolve the loop factory22440 # fixture early so that a factory variant change cascades cache22441 # invalidation before any async fixture checks its cache.22442 hook_caller = self.config.hook.pytest_asyncio_loop_factories22443 if hook_caller.get_hookimpls():22444 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22445> return super().setup()22446 ^^^^^^^^^^^^^^^2244722448/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22449_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22450nixbot/tests/conftest.py:33: in postgres_dsn22451 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22452 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22453/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22454 return next(self.gen)22455 ^^^^^^^^^^^^^^22456_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2245722458tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22459dbname = 'orchestrator'2246022461 @contextlib.contextmanager22462 def ephemeral_postgres(22463 tmp_path_factory: pytest.TempPathFactory, dbname: str22464 ) -> Iterator[str]:22465 """Throwaway Postgres on a unix socket with migrations applied."""22466 datadir = tmp_path_factory.mktemp("pgdata")22467 sockdir = tmp_path_factory.mktemp("pgsock")22468 subprocess.run( # noqa: S60322469 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22470 check=True,22471 capture_output=True,22472 )22473 proc = subprocess.Popen( # noqa: S60322474 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22475 stdout=subprocess.DEVNULL,22476 stderr=subprocess.DEVNULL,22477 )22478 try:22479 deadline = time.monotonic() + 3022480 while (22481 subprocess.run( # noqa: S60322482 ["pg_isready", "-h", str(sockdir), "-U", "test"],22483 check=False,22484 capture_output=True,22485 ).returncode22486 != 022487 ):22488 # The socket appears before recovery finishes; createdb would22489 # fail with "the database system is starting up".22490 if time.monotonic() > deadline:22491 msg = "postgres did not start"22492> raise RuntimeError(msg)22493E RuntimeError: postgres did not start2249422495nixbot/tests/support.py:319: RuntimeError22496____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22497[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142249822499self = <Coroutine test_attach_to_already_terminal_build_replays_status>2250022501 def setup(self) -> None:22502 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22503 if runner_fixture_id not in self.fixturenames:22504 self.fixturenames.append(runner_fixture_id)22505 # When loop factories are configured, resolve the loop factory22506 # fixture early so that a factory variant change cascades cache22507 # invalidation before any async fixture checks its cache.22508 hook_caller = self.config.hook.pytest_asyncio_loop_factories22509 if hook_caller.get_hookimpls():22510 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22511> return super().setup()22512 ^^^^^^^^^^^^^^^2251322514/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22515_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22516nixbot/tests/conftest.py:33: in postgres_dsn22517 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22518 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22519/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22520 return next(self.gen)22521 ^^^^^^^^^^^^^^22522_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252322524tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22525dbname = 'orchestrator'2252622527 @contextlib.contextmanager22528 def ephemeral_postgres(22529 tmp_path_factory: pytest.TempPathFactory, dbname: str22530 ) -> Iterator[str]:22531 """Throwaway Postgres on a unix socket with migrations applied."""22532 datadir = tmp_path_factory.mktemp("pgdata")22533 sockdir = tmp_path_factory.mktemp("pgsock")22534 subprocess.run( # noqa: S60322535 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22536 check=True,22537 capture_output=True,22538 )22539 proc = subprocess.Popen( # noqa: S60322540 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22541 stdout=subprocess.DEVNULL,22542 stderr=subprocess.DEVNULL,22543 )22544 try:22545 deadline = time.monotonic() + 3022546 while (22547 subprocess.run( # noqa: S60322548 ["pg_isready", "-h", str(sockdir), "-U", "test"],22549 check=False,22550 capture_output=True,22551 ).returncode22552 != 022553 ):22554 # The socket appears before recovery finishes; createdb would22555 # fail with "the database system is starting up".22556 if time.monotonic() > deadline:22557 msg = "postgres did not start"22558> raise RuntimeError(msg)22559E RuntimeError: postgres did not start2256022561nixbot/tests/support.py:319: RuntimeError22562___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____22563[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256422565self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2256622567 def setup(self) -> None:22568 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22569 if runner_fixture_id not in self.fixturenames:22570 self.fixturenames.append(runner_fixture_id)22571 # When loop factories are configured, resolve the loop factory22572 # fixture early so that a factory variant change cascades cache22573 # invalidation before any async fixture checks its cache.22574 hook_caller = self.config.hook.pytest_asyncio_loop_factories22575 if hook_caller.get_hookimpls():22576 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22577> return super().setup()22578 ^^^^^^^^^^^^^^^2257922580/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22581_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22582nixbot/tests/conftest.py:33: in postgres_dsn22583 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22584 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22585/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22586 return next(self.gen)22587 ^^^^^^^^^^^^^^22588_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2258922590tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22591dbname = 'orchestrator'2259222593 @contextlib.contextmanager22594 def ephemeral_postgres(22595 tmp_path_factory: pytest.TempPathFactory, dbname: str22596 ) -> Iterator[str]:22597 """Throwaway Postgres on a unix socket with migrations applied."""22598 datadir = tmp_path_factory.mktemp("pgdata")22599 sockdir = tmp_path_factory.mktemp("pgsock")22600 subprocess.run( # noqa: S60322601 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22602 check=True,22603 capture_output=True,22604 )22605 proc = subprocess.Popen( # noqa: S60322606 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22607 stdout=subprocess.DEVNULL,22608 stderr=subprocess.DEVNULL,22609 )22610 try:22611 deadline = time.monotonic() + 3022612 while (22613 subprocess.run( # noqa: S60322614 ["pg_isready", "-h", str(sockdir), "-U", "test"],22615 check=False,22616 capture_output=True,22617 ).returncode22618 != 022619 ):22620 # The socket appears before recovery finishes; createdb would22621 # fail with "the database system is starting up".22622 if time.monotonic() > deadline:22623 msg = "postgres did not start"22624> raise RuntimeError(msg)22625E RuntimeError: postgres did not start2262622627nixbot/tests/support.py:319: RuntimeError22628____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____22629[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142263022631self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2263222633 def setup(self) -> None:22634 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22635 if runner_fixture_id not in self.fixturenames:22636 self.fixturenames.append(runner_fixture_id)22637 # When loop factories are configured, resolve the loop factory22638 # fixture early so that a factory variant change cascades cache22639 # invalidation before any async fixture checks its cache.22640 hook_caller = self.config.hook.pytest_asyncio_loop_factories22641 if hook_caller.get_hookimpls():22642 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22643> return super().setup()22644 ^^^^^^^^^^^^^^^2264522646/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22647_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22648nixbot/tests/conftest.py:33: in postgres_dsn22649 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22650 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22651/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22652 return next(self.gen)22653 ^^^^^^^^^^^^^^22654_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265522656tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22657dbname = 'orchestrator'2265822659 @contextlib.contextmanager22660 def ephemeral_postgres(22661 tmp_path_factory: pytest.TempPathFactory, dbname: str22662 ) -> Iterator[str]:22663 """Throwaway Postgres on a unix socket with migrations applied."""22664 datadir = tmp_path_factory.mktemp("pgdata")22665 sockdir = tmp_path_factory.mktemp("pgsock")22666 subprocess.run( # noqa: S60322667 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22668 check=True,22669 capture_output=True,22670 )22671 proc = subprocess.Popen( # noqa: S60322672 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22673 stdout=subprocess.DEVNULL,22674 stderr=subprocess.DEVNULL,22675 )22676 try:22677 deadline = time.monotonic() + 3022678 while (22679 subprocess.run( # noqa: S60322680 ["pg_isready", "-h", str(sockdir), "-U", "test"],22681 check=False,22682 capture_output=True,22683 ).returncode22684 != 022685 ):22686 # The socket appears before recovery finishes; createdb would22687 # fail with "the database system is starting up".22688 if time.monotonic() > deadline:22689 msg = "postgres did not start"22690> raise RuntimeError(msg)22691E RuntimeError: postgres did not start2269222693nixbot/tests/support.py:319: RuntimeError22694__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________22695[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269622697self = <Coroutine test_post_process_paths_are_forge_scoped>2269822699 def setup(self) -> None:22700 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22701 if runner_fixture_id not in self.fixturenames:22702 self.fixturenames.append(runner_fixture_id)22703 # When loop factories are configured, resolve the loop factory22704 # fixture early so that a factory variant change cascades cache22705 # invalidation before any async fixture checks its cache.22706 hook_caller = self.config.hook.pytest_asyncio_loop_factories22707 if hook_caller.get_hookimpls():22708 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22709> return super().setup()22710 ^^^^^^^^^^^^^^^2271122712/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22713_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22714nixbot/tests/conftest.py:33: in postgres_dsn22715 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22716 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22717/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22718 return next(self.gen)22719 ^^^^^^^^^^^^^^22720_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272122722tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22723dbname = 'orchestrator'2272422725 @contextlib.contextmanager22726 def ephemeral_postgres(22727 tmp_path_factory: pytest.TempPathFactory, dbname: str22728 ) -> Iterator[str]:22729 """Throwaway Postgres on a unix socket with migrations applied."""22730 datadir = tmp_path_factory.mktemp("pgdata")22731 sockdir = tmp_path_factory.mktemp("pgsock")22732 subprocess.run( # noqa: S60322733 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22734 check=True,22735 capture_output=True,22736 )22737 proc = subprocess.Popen( # noqa: S60322738 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22739 stdout=subprocess.DEVNULL,22740 stderr=subprocess.DEVNULL,22741 )22742 try:22743 deadline = time.monotonic() + 3022744 while (22745 subprocess.run( # noqa: S60322746 ["pg_isready", "-h", str(sockdir), "-U", "test"],22747 check=False,22748 capture_output=True,22749 ).returncode22750 != 022751 ):22752 # The socket appears before recovery finishes; createdb would22753 # fail with "the database system is starting up".22754 if time.monotonic() > deadline:22755 msg = "postgres did not start"22756> raise RuntimeError(msg)22757E RuntimeError: postgres did not start2275822759nixbot/tests/support.py:319: RuntimeError22760_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______22761[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276222763self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2276422765 def setup(self) -> None:22766 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22767 if runner_fixture_id not in self.fixturenames:22768 self.fixturenames.append(runner_fixture_id)22769 # When loop factories are configured, resolve the loop factory22770 # fixture early so that a factory variant change cascades cache22771 # invalidation before any async fixture checks its cache.22772 hook_caller = self.config.hook.pytest_asyncio_loop_factories22773 if hook_caller.get_hookimpls():22774 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22775> return super().setup()22776 ^^^^^^^^^^^^^^^2277722778/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22779_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22780nixbot/tests/conftest.py:33: in postgres_dsn22781 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22782 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22783/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22784 return next(self.gen)22785 ^^^^^^^^^^^^^^22786_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2278722788tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22789dbname = 'orchestrator'2279022791 @contextlib.contextmanager22792 def ephemeral_postgres(22793 tmp_path_factory: pytest.TempPathFactory, dbname: str22794 ) -> Iterator[str]:22795 """Throwaway Postgres on a unix socket with migrations applied."""22796 datadir = tmp_path_factory.mktemp("pgdata")22797 sockdir = tmp_path_factory.mktemp("pgsock")22798 subprocess.run( # noqa: S60322799 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22800 check=True,22801 capture_output=True,22802 )22803 proc = subprocess.Popen( # noqa: S60322804 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22805 stdout=subprocess.DEVNULL,22806 stderr=subprocess.DEVNULL,22807 )22808 try:22809 deadline = time.monotonic() + 3022810 while (22811 subprocess.run( # noqa: S60322812 ["pg_isready", "-h", str(sockdir), "-U", "test"],22813 check=False,22814 capture_output=True,22815 ).returncode22816 != 022817 ):22818 # The socket appears before recovery finishes; createdb would22819 # fail with "the database system is starting up".22820 if time.monotonic() > deadline:22821 msg = "postgres did not start"22822> raise RuntimeError(msg)22823E RuntimeError: postgres did not start2282422825nixbot/tests/support.py:319: RuntimeError22826_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____22827[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142282822829self = <Coroutine test_reuse_post_process_error_still_reports_status>2283022831 def setup(self) -> None:22832 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22833 if runner_fixture_id not in self.fixturenames:22834 self.fixturenames.append(runner_fixture_id)22835 # When loop factories are configured, resolve the loop factory22836 # fixture early so that a factory variant change cascades cache22837 # invalidation before any async fixture checks its cache.22838 hook_caller = self.config.hook.pytest_asyncio_loop_factories22839 if hook_caller.get_hookimpls():22840 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22841> return super().setup()22842 ^^^^^^^^^^^^^^^2284322844/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22845_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22846nixbot/tests/conftest.py:33: in postgres_dsn22847 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22848 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22849/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22850 return next(self.gen)22851 ^^^^^^^^^^^^^^22852_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285322854tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22855dbname = 'orchestrator'2285622857 @contextlib.contextmanager22858 def ephemeral_postgres(22859 tmp_path_factory: pytest.TempPathFactory, dbname: str22860 ) -> Iterator[str]:22861 """Throwaway Postgres on a unix socket with migrations applied."""22862 datadir = tmp_path_factory.mktemp("pgdata")22863 sockdir = tmp_path_factory.mktemp("pgsock")22864 subprocess.run( # noqa: S60322865 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22866 check=True,22867 capture_output=True,22868 )22869 proc = subprocess.Popen( # noqa: S60322870 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22871 stdout=subprocess.DEVNULL,22872 stderr=subprocess.DEVNULL,22873 )22874 try:22875 deadline = time.monotonic() + 3022876 while (22877 subprocess.run( # noqa: S60322878 ["pg_isready", "-h", str(sockdir), "-U", "test"],22879 check=False,22880 capture_output=True,22881 ).returncode22882 != 022883 ):22884 # The socket appears before recovery finishes; createdb would22885 # fail with "the database system is starting up".22886 if time.monotonic() > deadline:22887 msg = "postgres did not start"22888> raise RuntimeError(msg)22889E RuntimeError: postgres did not start2289022891nixbot/tests/support.py:319: RuntimeError22892____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____22893[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289422895self = <Coroutine test_reuse_with_missing_output_still_post_processes>2289622897 def setup(self) -> None:22898 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22899 if runner_fixture_id not in self.fixturenames:22900 self.fixturenames.append(runner_fixture_id)22901 # When loop factories are configured, resolve the loop factory22902 # fixture early so that a factory variant change cascades cache22903 # invalidation before any async fixture checks its cache.22904 hook_caller = self.config.hook.pytest_asyncio_loop_factories22905 if hook_caller.get_hookimpls():22906 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22907> return super().setup()22908 ^^^^^^^^^^^^^^^2290922910/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22911_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22912nixbot/tests/conftest.py:33: in postgres_dsn22913 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22914 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22915/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22916 return next(self.gen)22917 ^^^^^^^^^^^^^^22918_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2291922920tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/p...atch/83f14e7d2c017943/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22921dbname = 'orchestrator'2292222923 @contextlib.contextmanager22924 def ephemeral_postgres(22925 tmp_path_factory: pytest.TempPathFactory, dbname: str22926 ) -> Iterator[str]:22927 """Throwaway Postgres on a unix socket with migrations applied."""22928 datadir = tmp_path_factory.mktemp("pgdata")22929 sockdir = tmp_path_factory.mktemp("pgsock")22930 subprocess.run( # noqa: S60322931 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22932 check=True,22933 capture_output=True,22934 )22935 proc = subprocess.Popen( # noqa: S60322936 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22937 stdout=subprocess.DEVNULL,22938 stderr=subprocess.DEVNULL,22939 )22940 try:22941 deadline = time.monotonic() + 3022942 while (22943 subprocess.run( # noqa: S60322944 ["pg_isready", "-h", str(sockdir), "-U", "test"],22945 check=False,22946 capture_output=True,22947 ).returncode22948 != 022949 ):22950 # The socket appears before recovery finishes; createdb would22951 # fail with "the database system is starting up".22952 if time.monotonic() > deadline:22953 msg = "postgres did not start"22954> raise RuntimeError(msg)22955E RuntimeError: postgres did not start2295622957nixbot/tests/support.py:319: RuntimeError22958=========================== short test summary info ============================22959ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...22960ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...22961ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...22962ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...22963ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...22964ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...22965ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build22966ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...22967ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...22968ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone22969ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...22970ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...22971ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build22972ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...22973ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue22974ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...22975ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...22976ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...22977ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...22978ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...22979ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...22980ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid22981ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec22982ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import22983ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...22984ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...22985ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context22986ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...22987ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...22988ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...22989ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names22990ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...22991ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows22992ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...22993ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...22994ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...22995ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...22996ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...22997ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...22998ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge22999ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23000ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23001ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23002ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23003ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23004ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23005ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23006ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23007ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23008ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23009ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23010ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23011ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23012ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23013ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23014ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23015ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23016ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23017ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23018ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23019ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23020ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23021ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23022ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23023ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23024ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23025ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23026ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23027ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23028ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23029ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23030ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23031ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23032ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23033ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23034ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23035ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23036ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23037ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23038ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23039ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23040ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23041ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23042ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23043ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23044ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23045ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23046ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23047ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23048ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23049ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23050ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23051ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23052ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23053ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23054ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23055ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23056ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23057ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23058ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23059ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23060ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23061ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23062ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23063ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23064ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23065ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23066ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23067ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23068ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23069ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23070ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23071ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23072ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23073ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23074ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23075ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23076ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23077ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23078ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23079ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23080ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23081ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23082ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23083ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23084ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23085ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23086ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23087ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23088ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23089ERROR nixbot/tests/test_deliver.py::test_build_finished_names_the_pushed_commit23090ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23091ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23092ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23093ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23094ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23095ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23096ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23097ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23098ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23099ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23100ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23101ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23102ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23103ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23104ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23105ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23106ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23107ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23108ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23109ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23110ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23111ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23112ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23113ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23114ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23115ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23116ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23117ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23118ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23119ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23120ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23121ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23122ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23123ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23124ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23125ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23126ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23127ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23128ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23129ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23130ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23131ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23132ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23133ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23134ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23135ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23136ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23137ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23138ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23139ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23140ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23141ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23142ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23143ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23144ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23145ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23146ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23147ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23148ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23149ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23150ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23151ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23152ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23153ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23154ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23155ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23156ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23157ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23158ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23159ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23160ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23161ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23162ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23163ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23164ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23165ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23166ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23167ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23168ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23169ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23170ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23171ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23172ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23173ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23174ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23175ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23176ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23177ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23178ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23179ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23180ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23181ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23182ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23183ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23184ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23185ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23186ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23187ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23188ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23189ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23190ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23191ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23192ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23193ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23194ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23195ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23196ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23197ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23198ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23199ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23200ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23201ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23202ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23203ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23204ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23205ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23206ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23207ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23208ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23209ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23210ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23211ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23212ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23213ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23214ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23215ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23216ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23217ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23218ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23219ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23220ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23221ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23222ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23223ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23224ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23225ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23226ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23227ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23228ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23229ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23230ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23231ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23232ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23233ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23234ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23235ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23236ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23237ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23238ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23239ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23240ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23241ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23242ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23243ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23244ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23245ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23246ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23247ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23248ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23249ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23250ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23251ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23252ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23253ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23254ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23255ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23256ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23257ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23258ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23259ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23260ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23261ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23262ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23263ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23264ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23265ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23266ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23267ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23268ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23269ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23270ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23271ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23272ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23273ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23274ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23275ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23276ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23277ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23278ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23279ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23280ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23281ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23282ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423283ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23284ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23285ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23286ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23287ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23288ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23289ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23290ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23291ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23292ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23293ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23294ERROR nixbot/tests/test_orchestrator.py::test_push_reusing_pr_build_delivers_build_finished23295ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23296ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23297ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23298ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23299ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23300ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23301ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23302ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23303ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23304ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23305ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23306ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23307ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23308ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23309ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23310ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23311ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23312ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23313ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23314ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23315================= 477 passed, 29 skipped, 356 errors in 44.68s =================