python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #450
· 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/hh64ahv50hg36i1sf325c5jk1d65nx8a-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"configurePhase
20no configure script, doing nothingbuildPhase
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 pypaBuildPhasepythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheckinstallPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhasepythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhasefixupPhase
37checking for references to /private/var/tb/7/scratch/a3a33ba29a8739a6/build/ in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests/lib /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/7/scratch/a3a33ba29a8739a6/build/ in /nix/store/zn3xj95llik70aiiqb3jz6f8qr9sq35m-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/zn3xj95llik70aiiqb3jz6f8qr9sq35m-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/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDirinstallCheckPhase
46no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
47Executing pythonImportsCheckPhasepytestCheckPhase
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/7/scratch/a3a33ba29a8739a6/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 [870 items]112113.................sssssssss.............................................. [ 8%]114........................................................................ [ 16%]115....................................ssss.s............sssss...........s. [ 24%]116s....................................................................... [ 33%]117..........................ssss.....................................s.... [ 41%]118...........Loop <_UnixSelectorEventLoop running=False closed=True debug=False> that handles pid 89070 is closed119............................................................. [ 49%]120..............................sEEEEEEE.EEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEE [ 57%]121EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EE.EE.EE.EEEEE.EEEEEEEE [ 66%]122..EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.E.EEEEEE.E.EEEEEEEEEEEEE.EEEE.EE....E. [ 74%]123EEEEE.EEEEE..E..sEEEEEEEEEEE.E.EEEEE........EEEEEs.EEEEEEE.EEEEEEE.EEEEE [ 82%]124E.EEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE. [ 91%]125EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 99%]126EEEEEE [100%]127==================================== ERRORS ====================================128_ ERROR at setup of test_replace_schedules_preserves_last_run_for_unchanged_spec _129[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14130131self = <Coroutine test_replace_schedules_preserves_last_run_for_unchanged_spec>132133 def setup(self) -> None:134 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"135 if runner_fixture_id not in self.fixturenames:136 self.fixturenames.append(runner_fixture_id)137 # When loop factories are configured, resolve the loop factory138 # fixture early so that a factory variant change cascades cache139 # invalidation before any async fixture checks its cache.140 hook_caller = self.config.hook.pytest_asyncio_loop_factories141 if hook_caller.get_hookimpls():142 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)143> return super().setup()144 ^^^^^^^^^^^^^^^145146/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 147_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 148/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup149 return (yield)150 ^^^^^151nixbot/tests/conftest.py:33: in postgres_dsn152 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:153 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^154/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__155 return next(self.gen)156 ^^^^^^^^^^^^^^157_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 158159tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')160dbname = 'schedules'161162 @contextlib.contextmanager163 def ephemeral_postgres(164 tmp_path_factory: pytest.TempPathFactory, dbname: str165 ) -> Iterator[str]:166 """Throwaway Postgres on a unix socket with migrations applied."""167 datadir = tmp_path_factory.mktemp("pgdata")168 sockdir = tmp_path_factory.mktemp("pgsock")169 subprocess.run( # noqa: S603170 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],171 check=True,172 capture_output=True,173 )174 proc = subprocess.Popen( # noqa: S603175 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],176 stdout=subprocess.DEVNULL,177 stderr=subprocess.DEVNULL,178 )179 try:180 deadline = time.monotonic() + 30181 while (182 subprocess.run( # noqa: S603183 ["pg_isready", "-h", str(sockdir), "-U", "test"],184 check=False,185 capture_output=True,186 ).returncode187 != 0188 ):189 # The socket appears before recovery finishes; createdb would190 # fail with "the database system is starting up".191 if time.monotonic() > deadline:192 msg = "postgres did not start"193> raise RuntimeError(msg)194E RuntimeError: postgres did not start195196nixbot/tests/support.py:319: RuntimeError197______ ERROR at setup of test_concurrent_replace_schedules_do_not_collide ______198[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14199200self = <Coroutine test_concurrent_replace_schedules_do_not_collide>201202 def setup(self) -> None:203 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"204 if runner_fixture_id not in self.fixturenames:205 self.fixturenames.append(runner_fixture_id)206 # When loop factories are configured, resolve the loop factory207 # fixture early so that a factory variant change cascades cache208 # invalidation before any async fixture checks its cache.209 hook_caller = self.config.hook.pytest_asyncio_loop_factories210 if hook_caller.get_hookimpls():211 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)212> return super().setup()213 ^^^^^^^^^^^^^^^214215/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 217nixbot/tests/conftest.py:33: in postgres_dsn218 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:219 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^220/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__221 return next(self.gen)222 ^^^^^^^^^^^^^^223_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 224225tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')226dbname = 'schedules'227228 @contextlib.contextmanager229 def ephemeral_postgres(230 tmp_path_factory: pytest.TempPathFactory, dbname: str231 ) -> Iterator[str]:232 """Throwaway Postgres on a unix socket with migrations applied."""233 datadir = tmp_path_factory.mktemp("pgdata")234 sockdir = tmp_path_factory.mktemp("pgsock")235 subprocess.run( # noqa: S603236 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],237 check=True,238 capture_output=True,239 )240 proc = subprocess.Popen( # noqa: S603241 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],242 stdout=subprocess.DEVNULL,243 stderr=subprocess.DEVNULL,244 )245 try:246 deadline = time.monotonic() + 30247 while (248 subprocess.run( # noqa: S603249 ["pg_isready", "-h", str(sockdir), "-U", "test"],250 check=False,251 capture_output=True,252 ).returncode253 != 0254 ):255 # The socket appears before recovery finishes; createdb would256 # fail with "the database system is starting up".257 if time.monotonic() > deadline:258 msg = "postgres did not start"259> raise RuntimeError(msg)260E RuntimeError: postgres did not start261262nixbot/tests/support.py:319: RuntimeError263__ ERROR at setup of test_replace_schedules_tolerates_duplicate_effect_names ___264[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14265266self = <Coroutine test_replace_schedules_tolerates_duplicate_effect_names>267268 def setup(self) -> None:269 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"270 if runner_fixture_id not in self.fixturenames:271 self.fixturenames.append(runner_fixture_id)272 # When loop factories are configured, resolve the loop factory273 # fixture early so that a factory variant change cascades cache274 # invalidation before any async fixture checks its cache.275 hook_caller = self.config.hook.pytest_asyncio_loop_factories276 if hook_caller.get_hookimpls():277 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)278> return super().setup()279 ^^^^^^^^^^^^^^^280281/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 282_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 283nixbot/tests/conftest.py:33: in postgres_dsn284 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:285 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^286/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__287 return next(self.gen)288 ^^^^^^^^^^^^^^289_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 290291tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')292dbname = 'schedules'293294 @contextlib.contextmanager295 def ephemeral_postgres(296 tmp_path_factory: pytest.TempPathFactory, dbname: str297 ) -> Iterator[str]:298 """Throwaway Postgres on a unix socket with migrations applied."""299 datadir = tmp_path_factory.mktemp("pgdata")300 sockdir = tmp_path_factory.mktemp("pgsock")301 subprocess.run( # noqa: S603302 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],303 check=True,304 capture_output=True,305 )306 proc = subprocess.Popen( # noqa: S603307 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],308 stdout=subprocess.DEVNULL,309 stderr=subprocess.DEVNULL,310 )311 try:312 deadline = time.monotonic() + 30313 while (314 subprocess.run( # noqa: S603315 ["pg_isready", "-h", str(sockdir), "-U", "test"],316 check=False,317 capture_output=True,318 ).returncode319 != 0320 ):321 # The socket appears before recovery finishes; createdb would322 # fail with "the database system is starting up".323 if time.monotonic() > deadline:324 msg = "postgres did not start"325> raise RuntimeError(msg)326E RuntimeError: postgres did not start327328nixbot/tests/support.py:319: RuntimeError329___________________ ERROR at setup of test_html_error_pages ____________________330[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14331332fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>333request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>334335 @pytest.hookimpl(wrapper=True)336 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:337 if (338 fixturedef.argname == "event_loop_policy"339 and fixturedef.func.__module__ != __name__340 ):341 warnings.warn(342 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),343 )344 asyncio_mode = _get_asyncio_mode(request.config)345 if not _is_asyncio_fixture_function(fixturedef.func):346 if asyncio_mode == Mode.STRICT:347 # Ignore async fixtures without explicit asyncio mark in strict mode348 # This applies to pytest_trio fixtures, for example349 return (yield)350 if not _is_coroutine_or_asyncgen(fixturedef.func):351> return (yield)352 ^^^^^353354/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 355_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 356nixbot/tests/conftest.py:33: in postgres_dsn357 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:358 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^359/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__360 return next(self.gen)361 ^^^^^^^^^^^^^^362_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 363364tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')365dbname = 'web'366367 @contextlib.contextmanager368 def ephemeral_postgres(369 tmp_path_factory: pytest.TempPathFactory, dbname: str370 ) -> Iterator[str]:371 """Throwaway Postgres on a unix socket with migrations applied."""372 datadir = tmp_path_factory.mktemp("pgdata")373 sockdir = tmp_path_factory.mktemp("pgsock")374 subprocess.run( # noqa: S603375 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],376 check=True,377 capture_output=True,378 )379 proc = subprocess.Popen( # noqa: S603380 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],381 stdout=subprocess.DEVNULL,382 stderr=subprocess.DEVNULL,383 )384 try:385 deadline = time.monotonic() + 30386 while (387 subprocess.run( # noqa: S603388 ["pg_isready", "-h", str(sockdir), "-U", "test"],389 check=False,390 capture_output=True,391 ).returncode392 != 0393 ):394 # The socket appears before recovery finishes; createdb would395 # fail with "the database system is starting up".396 if time.monotonic() > deadline:397 msg = "postgres did not start"398> raise RuntimeError(msg)399E RuntimeError: postgres did not start400401nixbot/tests/support.py:319: RuntimeError402_________________ ERROR at setup of test_migrations_idempotent _________________403[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14404405self = <Coroutine test_migrations_idempotent>406407 def setup(self) -> None:408 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"409 if runner_fixture_id not in self.fixturenames:410 self.fixturenames.append(runner_fixture_id)411 # When loop factories are configured, resolve the loop factory412 # fixture early so that a factory variant change cascades cache413 # invalidation before any async fixture checks its cache.414 hook_caller = self.config.hook.pytest_asyncio_loop_factories415 if hook_caller.get_hookimpls():416 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)417> return super().setup()418 ^^^^^^^^^^^^^^^419420/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 421_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 422/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup423 return (yield)424 ^^^^^425nixbot/tests/conftest.py:33: in postgres_dsn426 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:427 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^428/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__429 return next(self.gen)430 ^^^^^^^^^^^^^^431_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 432433tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')434dbname = 'db'435436 @contextlib.contextmanager437 def ephemeral_postgres(438 tmp_path_factory: pytest.TempPathFactory, dbname: str439 ) -> Iterator[str]:440 """Throwaway Postgres on a unix socket with migrations applied."""441 datadir = tmp_path_factory.mktemp("pgdata")442 sockdir = tmp_path_factory.mktemp("pgsock")443 subprocess.run( # noqa: S603444 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],445 check=True,446 capture_output=True,447 )448 proc = subprocess.Popen( # noqa: S603449 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],450 stdout=subprocess.DEVNULL,451 stderr=subprocess.DEVNULL,452 )453 try:454 deadline = time.monotonic() + 30455 while (456 subprocess.run( # noqa: S603457 ["pg_isready", "-h", str(sockdir), "-U", "test"],458 check=False,459 capture_output=True,460 ).returncode461 != 0462 ):463 # The socket appears before recovery finishes; createdb would464 # fail with "the database system is starting up".465 if time.monotonic() > deadline:466 msg = "postgres did not start"467> raise RuntimeError(msg)468E RuntimeError: postgres did not start469470nixbot/tests/support.py:319: RuntimeError471__________________ ERROR at setup of test_match_skip_and_run ___________________472[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14473474self = <Coroutine test_match_skip_and_run>475476 def setup(self) -> None:477 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"478 if runner_fixture_id not in self.fixturenames:479 self.fixturenames.append(runner_fixture_id)480 # When loop factories are configured, resolve the loop factory481 # fixture early so that a factory variant change cascades cache482 # invalidation before any async fixture checks its cache.483 hook_caller = self.config.hook.pytest_asyncio_loop_factories484 if hook_caller.get_hookimpls():485 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)486> return super().setup()487 ^^^^^^^^^^^^^^^488489/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 490_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 491/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup492 return (yield)493 ^^^^^494nixbot/tests/conftest.py:33: in postgres_dsn495 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:496 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^497/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__498 return next(self.gen)499 ^^^^^^^^^^^^^^500_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 501502tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')503dbname = 'deliver'504505 @contextlib.contextmanager506 def ephemeral_postgres(507 tmp_path_factory: pytest.TempPathFactory, dbname: str508 ) -> Iterator[str]:509 """Throwaway Postgres on a unix socket with migrations applied."""510 datadir = tmp_path_factory.mktemp("pgdata")511 sockdir = tmp_path_factory.mktemp("pgsock")512 subprocess.run( # noqa: S603513 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],514 check=True,515 capture_output=True,516 )517 proc = subprocess.Popen( # noqa: S603518 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],519 stdout=subprocess.DEVNULL,520 stderr=subprocess.DEVNULL,521 )522 try:523 deadline = time.monotonic() + 30524 while (525 subprocess.run( # noqa: S603526 ["pg_isready", "-h", str(sockdir), "-U", "test"],527 check=False,528 capture_output=True,529 ).returncode530 != 0531 ):532 # The socket appears before recovery finishes; createdb would533 # fail with "the database system is starting up".534 if time.monotonic() > deadline:535 msg = "postgres did not start"536> raise RuntimeError(msg)537E RuntimeError: postgres did not start538539nixbot/tests/support.py:319: RuntimeError540________________ ERROR at setup of test_store_roundtrip_and_due ________________541[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14542543self = <Coroutine test_store_roundtrip_and_due>544545 def setup(self) -> None:546 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"547 if runner_fixture_id not in self.fixturenames:548 self.fixturenames.append(runner_fixture_id)549 # When loop factories are configured, resolve the loop factory550 # fixture early so that a factory variant change cascades cache551 # invalidation before any async fixture checks its cache.552 hook_caller = self.config.hook.pytest_asyncio_loop_factories553 if hook_caller.get_hookimpls():554 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)555> return super().setup()556 ^^^^^^^^^^^^^^^557558/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 559_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 560nixbot/tests/conftest.py:33: in postgres_dsn561 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:562 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^563/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__564 return next(self.gen)565 ^^^^^^^^^^^^^^566_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 567568tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')569dbname = 'schedules'570571 @contextlib.contextmanager572 def ephemeral_postgres(573 tmp_path_factory: pytest.TempPathFactory, dbname: str574 ) -> Iterator[str]:575 """Throwaway Postgres on a unix socket with migrations applied."""576 datadir = tmp_path_factory.mktemp("pgdata")577 sockdir = tmp_path_factory.mktemp("pgsock")578 subprocess.run( # noqa: S603579 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],580 check=True,581 capture_output=True,582 )583 proc = subprocess.Popen( # noqa: S603584 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],585 stdout=subprocess.DEVNULL,586 stderr=subprocess.DEVNULL,587 )588 try:589 deadline = time.monotonic() + 30590 while (591 subprocess.run( # noqa: S603592 ["pg_isready", "-h", str(sockdir), "-U", "test"],593 check=False,594 capture_output=True,595 ).returncode596 != 0597 ):598 # The socket appears before recovery finishes; createdb would599 # fail with "the database system is starting up".600 if time.monotonic() > deadline:601 msg = "postgres did not start"602> raise RuntimeError(msg)603E RuntimeError: postgres did not start604605nixbot/tests/support.py:319: RuntimeError606______________ ERROR at setup of test_api_strips_ansi_from_errors ______________607[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14608609request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>610tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')611612 @pytest.fixture(scope="module")613 def postgres_dsn(614 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory615 ) -> Iterator[str]:616 if shutil.which("initdb") is None:617 pytest.skip("postgresql not available")618 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")619> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:620 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^621622nixbot/tests/conftest.py:33: 623_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 624/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__625 return next(self.gen)626 ^^^^^^^^^^^^^^627_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628629tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')630dbname = 'web'631632 @contextlib.contextmanager633 def ephemeral_postgres(634 tmp_path_factory: pytest.TempPathFactory, dbname: str635 ) -> Iterator[str]:636 """Throwaway Postgres on a unix socket with migrations applied."""637 datadir = tmp_path_factory.mktemp("pgdata")638 sockdir = tmp_path_factory.mktemp("pgsock")639 subprocess.run( # noqa: S603640 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],641 check=True,642 capture_output=True,643 )644 proc = subprocess.Popen( # noqa: S603645 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],646 stdout=subprocess.DEVNULL,647 stderr=subprocess.DEVNULL,648 )649 try:650 deadline = time.monotonic() + 30651 while (652 subprocess.run( # noqa: S603653 ["pg_isready", "-h", str(sockdir), "-U", "test"],654 check=False,655 capture_output=True,656 ).returncode657 != 0658 ):659 # The socket appears before recovery finishes; createdb would660 # fail with "the database system is starting up".661 if time.monotonic() > deadline:662 msg = "postgres did not start"663> raise RuntimeError(msg)664E RuntimeError: postgres did not start665666nixbot/tests/support.py:319: RuntimeError667___________ ERROR at setup of test_permission_denied_records_reason ____________668[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14669670self = <Coroutine test_permission_denied_records_reason>671672 def setup(self) -> None:673 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"674 if runner_fixture_id not in self.fixturenames:675 self.fixturenames.append(runner_fixture_id)676 # When loop factories are configured, resolve the loop factory677 # fixture early so that a factory variant change cascades cache678 # invalidation before any async fixture checks its cache.679 hook_caller = self.config.hook.pytest_asyncio_loop_factories680 if hook_caller.get_hookimpls():681 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)682> return super().setup()683 ^^^^^^^^^^^^^^^684685/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 686_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 687nixbot/tests/conftest.py:33: in postgres_dsn688 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:689 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^690/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__691 return next(self.gen)692 ^^^^^^^^^^^^^^693_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 694695tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')696dbname = 'deliver'697698 @contextlib.contextmanager699 def ephemeral_postgres(700 tmp_path_factory: pytest.TempPathFactory, dbname: str701 ) -> Iterator[str]:702 """Throwaway Postgres on a unix socket with migrations applied."""703 datadir = tmp_path_factory.mktemp("pgdata")704 sockdir = tmp_path_factory.mktemp("pgsock")705 subprocess.run( # noqa: S603706 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],707 check=True,708 capture_output=True,709 )710 proc = subprocess.Popen( # noqa: S603711 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],712 stdout=subprocess.DEVNULL,713 stderr=subprocess.DEVNULL,714 )715 try:716 deadline = time.monotonic() + 30717 while (718 subprocess.run( # noqa: S603719 ["pg_isready", "-h", str(sockdir), "-U", "test"],720 check=False,721 capture_output=True,722 ).returncode723 != 0724 ):725 # The socket appears before recovery finishes; createdb would726 # fail with "the database system is starting up".727 if time.monotonic() > deadline:728 msg = "postgres did not start"729> raise RuntimeError(msg)730E RuntimeError: postgres did not start731732nixbot/tests/support.py:319: RuntimeError733___________ ERROR at setup of test_failed_migration_error_not_masked ___________734[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14735736self = <Coroutine test_failed_migration_error_not_masked>737738 def setup(self) -> None:739 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"740 if runner_fixture_id not in self.fixturenames:741 self.fixturenames.append(runner_fixture_id)742 # When loop factories are configured, resolve the loop factory743 # fixture early so that a factory variant change cascades cache744 # invalidation before any async fixture checks its cache.745 hook_caller = self.config.hook.pytest_asyncio_loop_factories746 if hook_caller.get_hookimpls():747 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)748> return super().setup()749 ^^^^^^^^^^^^^^^750751/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 752_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 753nixbot/tests/conftest.py:33: in postgres_dsn754 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:755 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^756/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__757 return next(self.gen)758 ^^^^^^^^^^^^^^759_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 760761tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')762dbname = 'db'763764 @contextlib.contextmanager765 def ephemeral_postgres(766 tmp_path_factory: pytest.TempPathFactory, dbname: str767 ) -> Iterator[str]:768 """Throwaway Postgres on a unix socket with migrations applied."""769 datadir = tmp_path_factory.mktemp("pgdata")770 sockdir = tmp_path_factory.mktemp("pgsock")771 subprocess.run( # noqa: S603772 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],773 check=True,774 capture_output=True,775 )776 proc = subprocess.Popen( # noqa: S603777 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],778 stdout=subprocess.DEVNULL,779 stderr=subprocess.DEVNULL,780 )781 try:782 deadline = time.monotonic() + 30783 while (784 subprocess.run( # noqa: S603785 ["pg_isready", "-h", str(sockdir), "-U", "test"],786 check=False,787 capture_output=True,788 ).returncode789 != 0790 ):791 # The socket appears before recovery finishes; createdb would792 # fail with "the database system is starting up".793 if time.monotonic() > deadline:794 msg = "postgres did not start"795> raise RuntimeError(msg)796E RuntimeError: postgres did not start797798nixbot/tests/support.py:319: RuntimeError799____________ ERROR at setup of test_due_effects_window_and_bad_spec ____________800[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14801802self = <Coroutine test_due_effects_window_and_bad_spec>803804 def setup(self) -> None:805 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"806 if runner_fixture_id not in self.fixturenames:807 self.fixturenames.append(runner_fixture_id)808 # When loop factories are configured, resolve the loop factory809 # fixture early so that a factory variant change cascades cache810 # invalidation before any async fixture checks its cache.811 hook_caller = self.config.hook.pytest_asyncio_loop_factories812 if hook_caller.get_hookimpls():813 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)814> return super().setup()815 ^^^^^^^^^^^^^^^816817/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 818_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 819nixbot/tests/conftest.py:33: in postgres_dsn820 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:821 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^822/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__823 return next(self.gen)824 ^^^^^^^^^^^^^^825_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 826827tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')828dbname = 'schedules'829830 @contextlib.contextmanager831 def ephemeral_postgres(832 tmp_path_factory: pytest.TempPathFactory, dbname: str833 ) -> Iterator[str]:834 """Throwaway Postgres on a unix socket with migrations applied."""835 datadir = tmp_path_factory.mktemp("pgdata")836 sockdir = tmp_path_factory.mktemp("pgsock")837 subprocess.run( # noqa: S603838 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],839 check=True,840 capture_output=True,841 )842 proc = subprocess.Popen( # noqa: S603843 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],844 stdout=subprocess.DEVNULL,845 stderr=subprocess.DEVNULL,846 )847 try:848 deadline = time.monotonic() + 30849 while (850 subprocess.run( # noqa: S603851 ["pg_isready", "-h", str(sockdir), "-U", "test"],852 check=False,853 capture_output=True,854 ).returncode855 != 0856 ):857 # The socket appears before recovery finishes; createdb would858 # fail with "the database system is starting up".859 if time.monotonic() > deadline:860 msg = "postgres did not start"861> raise RuntimeError(msg)862E RuntimeError: postgres did not start863864nixbot/tests/support.py:319: RuntimeError865_______________________ ERROR at setup of test_homepage ________________________866[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14867868request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>869tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')870871 @pytest.fixture(scope="module")872 def postgres_dsn(873 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory874 ) -> Iterator[str]:875 if shutil.which("initdb") is None:876 pytest.skip("postgresql not available")877 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")878> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:879 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^880881nixbot/tests/conftest.py:33: 882_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 883/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__884 return next(self.gen)885 ^^^^^^^^^^^^^^886_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 887888tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')889dbname = 'web'890891 @contextlib.contextmanager892 def ephemeral_postgres(893 tmp_path_factory: pytest.TempPathFactory, dbname: str894 ) -> Iterator[str]:895 """Throwaway Postgres on a unix socket with migrations applied."""896 datadir = tmp_path_factory.mktemp("pgdata")897 sockdir = tmp_path_factory.mktemp("pgsock")898 subprocess.run( # noqa: S603899 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],900 check=True,901 capture_output=True,902 )903 proc = subprocess.Popen( # noqa: S603904 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],905 stdout=subprocess.DEVNULL,906 stderr=subprocess.DEVNULL,907 )908 try:909 deadline = time.monotonic() + 30910 while (911 subprocess.run( # noqa: S603912 ["pg_isready", "-h", str(sockdir), "-U", "test"],913 check=False,914 capture_output=True,915 ).returncode916 != 0917 ):918 # The socket appears before recovery finishes; createdb would919 # fail with "the database system is starting up".920 if time.monotonic() > deadline:921 msg = "postgres did not start"922> raise RuntimeError(msg)923E RuntimeError: postgres did not start924925nixbot/tests/support.py:319: RuntimeError926__________________ ERROR at setup of test_modified_files_gate __________________927[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14928929self = <Coroutine test_modified_files_gate>930931 def setup(self) -> None:932 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"933 if runner_fixture_id not in self.fixturenames:934 self.fixturenames.append(runner_fixture_id)935 # When loop factories are configured, resolve the loop factory936 # fixture early so that a factory variant change cascades cache937 # invalidation before any async fixture checks its cache.938 hook_caller = self.config.hook.pytest_asyncio_loop_factories939 if hook_caller.get_hookimpls():940 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)941> return super().setup()942 ^^^^^^^^^^^^^^^943944/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 945_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 946nixbot/tests/conftest.py:33: in postgres_dsn947 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:948 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^949/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__950 return next(self.gen)951 ^^^^^^^^^^^^^^952_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 953954tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')955dbname = 'deliver'956957 @contextlib.contextmanager958 def ephemeral_postgres(959 tmp_path_factory: pytest.TempPathFactory, dbname: str960 ) -> Iterator[str]:961 """Throwaway Postgres on a unix socket with migrations applied."""962 datadir = tmp_path_factory.mktemp("pgdata")963 sockdir = tmp_path_factory.mktemp("pgsock")964 subprocess.run( # noqa: S603965 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],966 check=True,967 capture_output=True,968 )969 proc = subprocess.Popen( # noqa: S603970 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],971 stdout=subprocess.DEVNULL,972 stderr=subprocess.DEVNULL,973 )974 try:975 deadline = time.monotonic() + 30976 while (977 subprocess.run( # noqa: S603978 ["pg_isready", "-h", str(sockdir), "-U", "test"],979 check=False,980 capture_output=True,981 ).returncode982 != 0983 ):984 # The socket appears before recovery finishes; createdb would985 # fail with "the database system is starting up".986 if time.monotonic() > deadline:987 msg = "postgres did not start"988> raise RuntimeError(msg)989E RuntimeError: postgres did not start990991nixbot/tests/support.py:319: RuntimeError992_______________ ERROR at setup of test_project_page_with_filters _______________993[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14994995request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>996tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')997998 @pytest.fixture(scope="module")999 def postgres_dsn(1000 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1001 ) -> Iterator[str]:1002 if shutil.which("initdb") is None:1003 pytest.skip("postgresql not available")1004 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1005> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10071008nixbot/tests/conftest.py:33: 1009_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1010/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1011 return next(self.gen)1012 ^^^^^^^^^^^^^^1013_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10141015tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1016dbname = 'web'10171018 @contextlib.contextmanager1019 def ephemeral_postgres(1020 tmp_path_factory: pytest.TempPathFactory, dbname: str1021 ) -> Iterator[str]:1022 """Throwaway Postgres on a unix socket with migrations applied."""1023 datadir = tmp_path_factory.mktemp("pgdata")1024 sockdir = tmp_path_factory.mktemp("pgsock")1025 subprocess.run( # noqa: S6031026 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1027 check=True,1028 capture_output=True,1029 )1030 proc = subprocess.Popen( # noqa: S6031031 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1032 stdout=subprocess.DEVNULL,1033 stderr=subprocess.DEVNULL,1034 )1035 try:1036 deadline = time.monotonic() + 301037 while (1038 subprocess.run( # noqa: S6031039 ["pg_isready", "-h", str(sockdir), "-U", "test"],1040 check=False,1041 capture_output=True,1042 ).returncode1043 != 01044 ):1045 # The socket appears before recovery finishes; createdb would1046 # fail with "the database system is starting up".1047 if time.monotonic() > deadline:1048 msg = "postgres did not start"1049> raise RuntimeError(msg)1050E RuntimeError: postgres did not start10511052nixbot/tests/support.py:319: RuntimeError1053_______________ ERROR at setup of test_edited_migration_rejected _______________1054[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410551056self = <Coroutine test_edited_migration_rejected>10571058 def setup(self) -> None:1059 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1060 if runner_fixture_id not in self.fixturenames:1061 self.fixturenames.append(runner_fixture_id)1062 # When loop factories are configured, resolve the loop factory1063 # fixture early so that a factory variant change cascades cache1064 # invalidation before any async fixture checks its cache.1065 hook_caller = self.config.hook.pytest_asyncio_loop_factories1066 if hook_caller.get_hookimpls():1067 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1068> return super().setup()1069 ^^^^^^^^^^^^^^^10701071/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1072_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1073nixbot/tests/conftest.py:33: in postgres_dsn1074 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1075 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1076/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1077 return next(self.gen)1078 ^^^^^^^^^^^^^^1079_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10801081tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1082dbname = 'db'10831084 @contextlib.contextmanager1085 def ephemeral_postgres(1086 tmp_path_factory: pytest.TempPathFactory, dbname: str1087 ) -> Iterator[str]:1088 """Throwaway Postgres on a unix socket with migrations applied."""1089 datadir = tmp_path_factory.mktemp("pgdata")1090 sockdir = tmp_path_factory.mktemp("pgsock")1091 subprocess.run( # noqa: S6031092 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1093 check=True,1094 capture_output=True,1095 )1096 proc = subprocess.Popen( # noqa: S6031097 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1098 stdout=subprocess.DEVNULL,1099 stderr=subprocess.DEVNULL,1100 )1101 try:1102 deadline = time.monotonic() + 301103 while (1104 subprocess.run( # noqa: S6031105 ["pg_isready", "-h", str(sockdir), "-U", "test"],1106 check=False,1107 capture_output=True,1108 ).returncode1109 != 01110 ):1111 # The socket appears before recovery finishes; createdb would1112 # fail with "the database system is starting up".1113 if time.monotonic() > deadline:1114 msg = "postgres did not start"1115> raise RuntimeError(msg)1116E RuntimeError: postgres did not start11171118nixbot/tests/support.py:319: RuntimeError1119______________ ERROR at setup of test_run_recording_and_overview _______________1120[gw23] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411211122self = <Coroutine test_run_recording_and_overview>11231124 def setup(self) -> None:1125 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1126 if runner_fixture_id not in self.fixturenames:1127 self.fixturenames.append(runner_fixture_id)1128 # When loop factories are configured, resolve the loop factory1129 # fixture early so that a factory variant change cascades cache1130 # invalidation before any async fixture checks its cache.1131 hook_caller = self.config.hook.pytest_asyncio_loop_factories1132 if hook_caller.get_hookimpls():1133 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1134> return super().setup()1135 ^^^^^^^^^^^^^^^11361137/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1138_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1139nixbot/tests/conftest.py:33: in postgres_dsn1140 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1141 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1142/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1143 return next(self.gen)1144 ^^^^^^^^^^^^^^1145_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11461147tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw23'), _retention_count=3, _retention_policy='all')1148dbname = 'schedules'11491150 @contextlib.contextmanager1151 def ephemeral_postgres(1152 tmp_path_factory: pytest.TempPathFactory, dbname: str1153 ) -> Iterator[str]:1154 """Throwaway Postgres on a unix socket with migrations applied."""1155 datadir = tmp_path_factory.mktemp("pgdata")1156 sockdir = tmp_path_factory.mktemp("pgsock")1157 subprocess.run( # noqa: S6031158 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1159 check=True,1160 capture_output=True,1161 )1162 proc = subprocess.Popen( # noqa: S6031163 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1164 stdout=subprocess.DEVNULL,1165 stderr=subprocess.DEVNULL,1166 )1167 try:1168 deadline = time.monotonic() + 301169 while (1170 subprocess.run( # noqa: S6031171 ["pg_isready", "-h", str(sockdir), "-U", "test"],1172 check=False,1173 capture_output=True,1174 ).returncode1175 != 01176 ):1177 # The socket appears before recovery finishes; createdb would1178 # fail with "the database system is starting up".1179 if time.monotonic() > deadline:1180 msg = "postgres did not start"1181> raise RuntimeError(msg)1182E RuntimeError: postgres did not start11831184nixbot/tests/support.py:319: RuntimeError1185___________________ ERROR at setup of test_status_badge_urls ___________________1186[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411871188request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1189tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')11901191 @pytest.fixture(scope="module")1192 def postgres_dsn(1193 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1194 ) -> Iterator[str]:1195 if shutil.which("initdb") is None:1196 pytest.skip("postgresql not available")1197 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1198> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1199 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12001201nixbot/tests/conftest.py:33: 1202_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1203/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1204 return next(self.gen)1205 ^^^^^^^^^^^^^^1206_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12071208tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1209dbname = 'web'12101211 @contextlib.contextmanager1212 def ephemeral_postgres(1213 tmp_path_factory: pytest.TempPathFactory, dbname: str1214 ) -> Iterator[str]:1215 """Throwaway Postgres on a unix socket with migrations applied."""1216 datadir = tmp_path_factory.mktemp("pgdata")1217 sockdir = tmp_path_factory.mktemp("pgsock")1218 subprocess.run( # noqa: S6031219 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1220 check=True,1221 capture_output=True,1222 )1223 proc = subprocess.Popen( # noqa: S6031224 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1225 stdout=subprocess.DEVNULL,1226 stderr=subprocess.DEVNULL,1227 )1228 try:1229 deadline = time.monotonic() + 301230 while (1231 subprocess.run( # noqa: S6031232 ["pg_isready", "-h", str(sockdir), "-U", "test"],1233 check=False,1234 capture_output=True,1235 ).returncode1236 != 01237 ):1238 # The socket appears before recovery finishes; createdb would1239 # fail with "the database system is starting up".1240 if time.monotonic() > deadline:1241 msg = "postgres did not start"1242> raise RuntimeError(msg)1243E RuntimeError: postgres did not start12441245nixbot/tests/support.py:319: RuntimeError1246________________ ERROR at setup of test_forge_outage_is_retried ________________1247[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412481249self = <Coroutine test_forge_outage_is_retried>12501251 def setup(self) -> None:1252 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1253 if runner_fixture_id not in self.fixturenames:1254 self.fixturenames.append(runner_fixture_id)1255 # When loop factories are configured, resolve the loop factory1256 # fixture early so that a factory variant change cascades cache1257 # invalidation before any async fixture checks its cache.1258 hook_caller = self.config.hook.pytest_asyncio_loop_factories1259 if hook_caller.get_hookimpls():1260 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1261> return super().setup()1262 ^^^^^^^^^^^^^^^12631264/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1265_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1266nixbot/tests/conftest.py:33: in postgres_dsn1267 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1268 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1269/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1270 return next(self.gen)1271 ^^^^^^^^^^^^^^1272_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12731274tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1275dbname = 'deliver'12761277 @contextlib.contextmanager1278 def ephemeral_postgres(1279 tmp_path_factory: pytest.TempPathFactory, dbname: str1280 ) -> Iterator[str]:1281 """Throwaway Postgres on a unix socket with migrations applied."""1282 datadir = tmp_path_factory.mktemp("pgdata")1283 sockdir = tmp_path_factory.mktemp("pgsock")1284 subprocess.run( # noqa: S6031285 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1286 check=True,1287 capture_output=True,1288 )1289 proc = subprocess.Popen( # noqa: S6031290 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1291 stdout=subprocess.DEVNULL,1292 stderr=subprocess.DEVNULL,1293 )1294 try:1295 deadline = time.monotonic() + 301296 while (1297 subprocess.run( # noqa: S6031298 ["pg_isready", "-h", str(sockdir), "-U", "test"],1299 check=False,1300 capture_output=True,1301 ).returncode1302 != 01303 ):1304 # The socket appears before recovery finishes; createdb would1305 # fail with "the database system is starting up".1306 if time.monotonic() > deadline:1307 msg = "postgres did not start"1308> raise RuntimeError(msg)1309E RuntimeError: postgres did not start13101311nixbot/tests/support.py:319: RuntimeError1312_______ ERROR at setup of test_catchup_migration_repairs_pre_0033_schema _______1313[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413141315self = <Coroutine test_catchup_migration_repairs_pre_0033_schema>13161317 def setup(self) -> None:1318 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1319 if runner_fixture_id not in self.fixturenames:1320 self.fixturenames.append(runner_fixture_id)1321 # When loop factories are configured, resolve the loop factory1322 # fixture early so that a factory variant change cascades cache1323 # invalidation before any async fixture checks its cache.1324 hook_caller = self.config.hook.pytest_asyncio_loop_factories1325 if hook_caller.get_hookimpls():1326 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1327> return super().setup()1328 ^^^^^^^^^^^^^^^13291330/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1331_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1332nixbot/tests/conftest.py:33: in postgres_dsn1333 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1334 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1335/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1336 return next(self.gen)1337 ^^^^^^^^^^^^^^1338_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13391340tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1341dbname = 'db'13421343 @contextlib.contextmanager1344 def ephemeral_postgres(1345 tmp_path_factory: pytest.TempPathFactory, dbname: str1346 ) -> Iterator[str]:1347 """Throwaway Postgres on a unix socket with migrations applied."""1348 datadir = tmp_path_factory.mktemp("pgdata")1349 sockdir = tmp_path_factory.mktemp("pgsock")1350 subprocess.run( # noqa: S6031351 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1352 check=True,1353 capture_output=True,1354 )1355 proc = subprocess.Popen( # noqa: S6031356 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1357 stdout=subprocess.DEVNULL,1358 stderr=subprocess.DEVNULL,1359 )1360 try:1361 deadline = time.monotonic() + 301362 while (1363 subprocess.run( # noqa: S6031364 ["pg_isready", "-h", str(sockdir), "-U", "test"],1365 check=False,1366 capture_output=True,1367 ).returncode1368 != 01369 ):1370 # The socket appears before recovery finishes; createdb would1371 # fail with "the database system is starting up".1372 if time.monotonic() > deadline:1373 msg = "postgres did not start"1374> raise RuntimeError(msg)1375E RuntimeError: postgres did not start13761377nixbot/tests/support.py:319: RuntimeError1378____________ ERROR at setup of test_all_digit_branch_is_filterable _____________1379[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413801381request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1382tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')13831384 @pytest.fixture(scope="module")1385 def postgres_dsn(1386 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1387 ) -> Iterator[str]:1388 if shutil.which("initdb") is None:1389 pytest.skip("postgresql not available")1390 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1391> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1392 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^13931394nixbot/tests/conftest.py:33: 1395_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1396/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1397 return next(self.gen)1398 ^^^^^^^^^^^^^^1399_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14001401tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1402dbname = 'web'14031404 @contextlib.contextmanager1405 def ephemeral_postgres(1406 tmp_path_factory: pytest.TempPathFactory, dbname: str1407 ) -> Iterator[str]:1408 """Throwaway Postgres on a unix socket with migrations applied."""1409 datadir = tmp_path_factory.mktemp("pgdata")1410 sockdir = tmp_path_factory.mktemp("pgsock")1411 subprocess.run( # noqa: S6031412 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1413 check=True,1414 capture_output=True,1415 )1416 proc = subprocess.Popen( # noqa: S6031417 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1418 stdout=subprocess.DEVNULL,1419 stderr=subprocess.DEVNULL,1420 )1421 try:1422 deadline = time.monotonic() + 301423 while (1424 subprocess.run( # noqa: S6031425 ["pg_isready", "-h", str(sockdir), "-U", "test"],1426 check=False,1427 capture_output=True,1428 ).returncode1429 != 01430 ):1431 # The socket appears before recovery finishes; createdb would1432 # fail with "the database system is starting up".1433 if time.monotonic() > deadline:1434 msg = "postgres did not start"1435> raise RuntimeError(msg)1436E RuntimeError: postgres did not start14371438nixbot/tests/support.py:319: RuntimeError1439_________________ ERROR at setup of test_forge_outage_gives_up _________________1440[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414411442self = <Coroutine test_forge_outage_gives_up>14431444 def setup(self) -> None:1445 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1446 if runner_fixture_id not in self.fixturenames:1447 self.fixturenames.append(runner_fixture_id)1448 # When loop factories are configured, resolve the loop factory1449 # fixture early so that a factory variant change cascades cache1450 # invalidation before any async fixture checks its cache.1451 hook_caller = self.config.hook.pytest_asyncio_loop_factories1452 if hook_caller.get_hookimpls():1453 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1454> return super().setup()1455 ^^^^^^^^^^^^^^^14561457/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1458_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1459nixbot/tests/conftest.py:33: in postgres_dsn1460 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1461 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1462/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1463 return next(self.gen)1464 ^^^^^^^^^^^^^^1465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14661467tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1468dbname = 'deliver'14691470 @contextlib.contextmanager1471 def ephemeral_postgres(1472 tmp_path_factory: pytest.TempPathFactory, dbname: str1473 ) -> Iterator[str]:1474 """Throwaway Postgres on a unix socket with migrations applied."""1475 datadir = tmp_path_factory.mktemp("pgdata")1476 sockdir = tmp_path_factory.mktemp("pgsock")1477 subprocess.run( # noqa: S6031478 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1479 check=True,1480 capture_output=True,1481 )1482 proc = subprocess.Popen( # noqa: S6031483 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1484 stdout=subprocess.DEVNULL,1485 stderr=subprocess.DEVNULL,1486 )1487 try:1488 deadline = time.monotonic() + 301489 while (1490 subprocess.run( # noqa: S6031491 ["pg_isready", "-h", str(sockdir), "-U", "test"],1492 check=False,1493 capture_output=True,1494 ).returncode1495 != 01496 ):1497 # The socket appears before recovery finishes; createdb would1498 # fail with "the database system is starting up".1499 if time.monotonic() > deadline:1500 msg = "postgres did not start"1501> raise RuntimeError(msg)1502E RuntimeError: postgres did not start15031504nixbot/tests/support.py:319: RuntimeError1505______________________ ERROR at setup of test_build_page _______________________1506[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415071508request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1509tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')15101511 @pytest.fixture(scope="module")1512 def postgres_dsn(1513 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1514 ) -> Iterator[str]:1515 if shutil.which("initdb") is None:1516 pytest.skip("postgresql not available")1517 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1518> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1519 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^15201521nixbot/tests/conftest.py:33: 1522_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1523/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1524 return next(self.gen)1525 ^^^^^^^^^^^^^^1526_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15271528tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1529dbname = 'web'15301531 @contextlib.contextmanager1532 def ephemeral_postgres(1533 tmp_path_factory: pytest.TempPathFactory, dbname: str1534 ) -> Iterator[str]:1535 """Throwaway Postgres on a unix socket with migrations applied."""1536 datadir = tmp_path_factory.mktemp("pgdata")1537 sockdir = tmp_path_factory.mktemp("pgsock")1538 subprocess.run( # noqa: S6031539 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1540 check=True,1541 capture_output=True,1542 )1543 proc = subprocess.Popen( # noqa: S6031544 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1545 stdout=subprocess.DEVNULL,1546 stderr=subprocess.DEVNULL,1547 )1548 try:1549 deadline = time.monotonic() + 301550 while (1551 subprocess.run( # noqa: S6031552 ["pg_isready", "-h", str(sockdir), "-U", "test"],1553 check=False,1554 capture_output=True,1555 ).returncode1556 != 01557 ):1558 # The socket appears before recovery finishes; createdb would1559 # fail with "the database system is starting up".1560 if time.monotonic() > deadline:1561 msg = "postgres did not start"1562> raise RuntimeError(msg)1563E RuntimeError: postgres did not start15641565nixbot/tests/support.py:319: RuntimeError1566_____ ERROR at setup of test_huge_attr_name_does_not_break_notify_trigger ______1567[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415681569self = <Coroutine test_huge_attr_name_does_not_break_notify_trigger>15701571 def setup(self) -> None:1572 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1573 if runner_fixture_id not in self.fixturenames:1574 self.fixturenames.append(runner_fixture_id)1575 # When loop factories are configured, resolve the loop factory1576 # fixture early so that a factory variant change cascades cache1577 # invalidation before any async fixture checks its cache.1578 hook_caller = self.config.hook.pytest_asyncio_loop_factories1579 if hook_caller.get_hookimpls():1580 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1581> return super().setup()1582 ^^^^^^^^^^^^^^^15831584/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1585_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1586nixbot/tests/conftest.py:33: in postgres_dsn1587 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1588 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1589/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1590 return next(self.gen)1591 ^^^^^^^^^^^^^^1592_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15931594tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1595dbname = 'db'15961597 @contextlib.contextmanager1598 def ephemeral_postgres(1599 tmp_path_factory: pytest.TempPathFactory, dbname: str1600 ) -> Iterator[str]:1601 """Throwaway Postgres on a unix socket with migrations applied."""1602 datadir = tmp_path_factory.mktemp("pgdata")1603 sockdir = tmp_path_factory.mktemp("pgsock")1604 subprocess.run( # noqa: S6031605 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1606 check=True,1607 capture_output=True,1608 )1609 proc = subprocess.Popen( # noqa: S6031610 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1611 stdout=subprocess.DEVNULL,1612 stderr=subprocess.DEVNULL,1613 )1614 try:1615 deadline = time.monotonic() + 301616 while (1617 subprocess.run( # noqa: S6031618 ["pg_isready", "-h", str(sockdir), "-U", "test"],1619 check=False,1620 capture_output=True,1621 ).returncode1622 != 01623 ):1624 # The socket appears before recovery finishes; createdb would1625 # fail with "the database system is starting up".1626 if time.monotonic() > deadline:1627 msg = "postgres did not start"1628> raise RuntimeError(msg)1629E RuntimeError: postgres did not start16301631nixbot/tests/support.py:319: RuntimeError1632___________ ERROR at setup of test_attribute_rows_fragment_paginates ___________1633[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416341635request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1636tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')16371638 @pytest.fixture(scope="module")1639 def postgres_dsn(1640 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1641 ) -> Iterator[str]:1642 if shutil.which("initdb") is None:1643 pytest.skip("postgresql not available")1644 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1645> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1646 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16471648nixbot/tests/conftest.py:33: 1649_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1650/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1651 return next(self.gen)1652 ^^^^^^^^^^^^^^1653_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16541655tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1656dbname = 'web'16571658 @contextlib.contextmanager1659 def ephemeral_postgres(1660 tmp_path_factory: pytest.TempPathFactory, dbname: str1661 ) -> Iterator[str]:1662 """Throwaway Postgres on a unix socket with migrations applied."""1663 datadir = tmp_path_factory.mktemp("pgdata")1664 sockdir = tmp_path_factory.mktemp("pgsock")1665 subprocess.run( # noqa: S6031666 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1667 check=True,1668 capture_output=True,1669 )1670 proc = subprocess.Popen( # noqa: S6031671 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1672 stdout=subprocess.DEVNULL,1673 stderr=subprocess.DEVNULL,1674 )1675 try:1676 deadline = time.monotonic() + 301677 while (1678 subprocess.run( # noqa: S6031679 ["pg_isready", "-h", str(sockdir), "-U", "test"],1680 check=False,1681 capture_output=True,1682 ).returncode1683 != 01684 ):1685 # The socket appears before recovery finishes; createdb would1686 # fail with "the database system is starting up".1687 if time.monotonic() > deadline:1688 msg = "postgres did not start"1689> raise RuntimeError(msg)1690E RuntimeError: postgres did not start16911692nixbot/tests/support.py:319: RuntimeError1693_____ ERROR at setup of test_lock_shared_with_push_effect_and_supersession _____1694[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416951696self = <Coroutine test_lock_shared_with_push_effect_and_supersession>16971698 def setup(self) -> None:1699 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1700 if runner_fixture_id not in self.fixturenames:1701 self.fixturenames.append(runner_fixture_id)1702 # When loop factories are configured, resolve the loop factory1703 # fixture early so that a factory variant change cascades cache1704 # invalidation before any async fixture checks its cache.1705 hook_caller = self.config.hook.pytest_asyncio_loop_factories1706 if hook_caller.get_hookimpls():1707 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1708> return super().setup()1709 ^^^^^^^^^^^^^^^17101711/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1712_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1713nixbot/tests/conftest.py:33: in postgres_dsn1714 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1715 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1716/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1717 return next(self.gen)1718 ^^^^^^^^^^^^^^1719_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17201721tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1722dbname = 'deliver'17231724 @contextlib.contextmanager1725 def ephemeral_postgres(1726 tmp_path_factory: pytest.TempPathFactory, dbname: str1727 ) -> Iterator[str]:1728 """Throwaway Postgres on a unix socket with migrations applied."""1729 datadir = tmp_path_factory.mktemp("pgdata")1730 sockdir = tmp_path_factory.mktemp("pgsock")1731 subprocess.run( # noqa: S6031732 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1733 check=True,1734 capture_output=True,1735 )1736 proc = subprocess.Popen( # noqa: S6031737 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1738 stdout=subprocess.DEVNULL,1739 stderr=subprocess.DEVNULL,1740 )1741 try:1742 deadline = time.monotonic() + 301743 while (1744 subprocess.run( # noqa: S6031745 ["pg_isready", "-h", str(sockdir), "-U", "test"],1746 check=False,1747 capture_output=True,1748 ).returncode1749 != 01750 ):1751 # The socket appears before recovery finishes; createdb would1752 # fail with "the database system is starting up".1753 if time.monotonic() > deadline:1754 msg = "postgres did not start"1755> raise RuntimeError(msg)1756E RuntimeError: postgres did not start17571758nixbot/tests/support.py:319: RuntimeError1759_________ ERROR at setup of test_build_page_shows_eval_warning_groups __________1760[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417611762request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1763tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')17641765 @pytest.fixture(scope="module")1766 def postgres_dsn(1767 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1768 ) -> Iterator[str]:1769 if shutil.which("initdb") is None:1770 pytest.skip("postgresql not available")1771 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1772> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1773 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17741775nixbot/tests/conftest.py:33: 1776_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1777/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1778 return next(self.gen)1779 ^^^^^^^^^^^^^^1780_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17811782tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1783dbname = 'web'17841785 @contextlib.contextmanager1786 def ephemeral_postgres(1787 tmp_path_factory: pytest.TempPathFactory, dbname: str1788 ) -> Iterator[str]:1789 """Throwaway Postgres on a unix socket with migrations applied."""1790 datadir = tmp_path_factory.mktemp("pgdata")1791 sockdir = tmp_path_factory.mktemp("pgsock")1792 subprocess.run( # noqa: S6031793 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1794 check=True,1795 capture_output=True,1796 )1797 proc = subprocess.Popen( # noqa: S6031798 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1799 stdout=subprocess.DEVNULL,1800 stderr=subprocess.DEVNULL,1801 )1802 try:1803 deadline = time.monotonic() + 301804 while (1805 subprocess.run( # noqa: S6031806 ["pg_isready", "-h", str(sockdir), "-U", "test"],1807 check=False,1808 capture_output=True,1809 ).returncode1810 != 01811 ):1812 # The socket appears before recovery finishes; createdb would1813 # fail with "the database system is starting up".1814 if time.monotonic() > deadline:1815 msg = "postgres did not start"1816> raise RuntimeError(msg)1817E RuntimeError: postgres did not start18181819nixbot/tests/support.py:319: RuntimeError1820_____ ERROR at setup of test_build_page_shows_per_attribute_eval_warnings ______1821[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418221823request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1824tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')18251826 @pytest.fixture(scope="module")1827 def postgres_dsn(1828 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1829 ) -> Iterator[str]:1830 if shutil.which("initdb") is None:1831 pytest.skip("postgresql not available")1832 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1833> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1834 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^18351836nixbot/tests/conftest.py:33: 1837_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1838/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1839 return next(self.gen)1840 ^^^^^^^^^^^^^^1841_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18421843tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1844dbname = 'web'18451846 @contextlib.contextmanager1847 def ephemeral_postgres(1848 tmp_path_factory: pytest.TempPathFactory, dbname: str1849 ) -> Iterator[str]:1850 """Throwaway Postgres on a unix socket with migrations applied."""1851 datadir = tmp_path_factory.mktemp("pgdata")1852 sockdir = tmp_path_factory.mktemp("pgsock")1853 subprocess.run( # noqa: S6031854 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1855 check=True,1856 capture_output=True,1857 )1858 proc = subprocess.Popen( # noqa: S6031859 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1860 stdout=subprocess.DEVNULL,1861 stderr=subprocess.DEVNULL,1862 )1863 try:1864 deadline = time.monotonic() + 301865 while (1866 subprocess.run( # noqa: S6031867 ["pg_isready", "-h", str(sockdir), "-U", "test"],1868 check=False,1869 capture_output=True,1870 ).returncode1871 != 01872 ):1873 # The socket appears before recovery finishes; createdb would1874 # fail with "the database system is starting up".1875 if time.monotonic() > deadline:1876 msg = "postgres did not start"1877> raise RuntimeError(msg)1878E RuntimeError: postgres did not start18791880nixbot/tests/support.py:319: RuntimeError1881__________________ ERROR at setup of test_schema_constraints ___________________1882[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418831884self = <Coroutine test_schema_constraints>18851886 def setup(self) -> None:1887 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1888 if runner_fixture_id not in self.fixturenames:1889 self.fixturenames.append(runner_fixture_id)1890 # When loop factories are configured, resolve the loop factory1891 # fixture early so that a factory variant change cascades cache1892 # invalidation before any async fixture checks its cache.1893 hook_caller = self.config.hook.pytest_asyncio_loop_factories1894 if hook_caller.get_hookimpls():1895 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1896> return super().setup()1897 ^^^^^^^^^^^^^^^18981899/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1900_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1901nixbot/tests/conftest.py:33: in postgres_dsn1902 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1903 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1904/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1905 return next(self.gen)1906 ^^^^^^^^^^^^^^1907_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19081909tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1910dbname = 'db'19111912 @contextlib.contextmanager1913 def ephemeral_postgres(1914 tmp_path_factory: pytest.TempPathFactory, dbname: str1915 ) -> Iterator[str]:1916 """Throwaway Postgres on a unix socket with migrations applied."""1917 datadir = tmp_path_factory.mktemp("pgdata")1918 sockdir = tmp_path_factory.mktemp("pgsock")1919 subprocess.run( # noqa: S6031920 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1921 check=True,1922 capture_output=True,1923 )1924 proc = subprocess.Popen( # noqa: S6031925 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1926 stdout=subprocess.DEVNULL,1927 stderr=subprocess.DEVNULL,1928 )1929 try:1930 deadline = time.monotonic() + 301931 while (1932 subprocess.run( # noqa: S6031933 ["pg_isready", "-h", str(sockdir), "-U", "test"],1934 check=False,1935 capture_output=True,1936 ).returncode1937 != 01938 ):1939 # The socket appears before recovery finishes; createdb would1940 # fail with "the database system is starting up".1941 if time.monotonic() > deadline:1942 msg = "postgres did not start"1943> raise RuntimeError(msg)1944E RuntimeError: postgres did not start19451946nixbot/tests/support.py:319: RuntimeError1947___________ ERROR at setup of test_checkout_is_pr_head_without_token ___________1948[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419491950self = <Coroutine test_checkout_is_pr_head_without_token>19511952 def setup(self) -> None:1953 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1954 if runner_fixture_id not in self.fixturenames:1955 self.fixturenames.append(runner_fixture_id)1956 # When loop factories are configured, resolve the loop factory1957 # fixture early so that a factory variant change cascades cache1958 # invalidation before any async fixture checks its cache.1959 hook_caller = self.config.hook.pytest_asyncio_loop_factories1960 if hook_caller.get_hookimpls():1961 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1962> return super().setup()1963 ^^^^^^^^^^^^^^^19641965/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1966_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1967nixbot/tests/conftest.py:33: in postgres_dsn1968 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1969 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1970/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1971 return next(self.gen)1972 ^^^^^^^^^^^^^^1973_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19741975tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...tch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1976dbname = 'deliver'19771978 @contextlib.contextmanager1979 def ephemeral_postgres(1980 tmp_path_factory: pytest.TempPathFactory, dbname: str1981 ) -> Iterator[str]:1982 """Throwaway Postgres on a unix socket with migrations applied."""1983 datadir = tmp_path_factory.mktemp("pgdata")1984 sockdir = tmp_path_factory.mktemp("pgsock")1985 subprocess.run( # noqa: S6031986 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1987 check=True,1988 capture_output=True,1989 )1990 proc = subprocess.Popen( # noqa: S6031991 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1992 stdout=subprocess.DEVNULL,1993 stderr=subprocess.DEVNULL,1994 )1995 try:1996 deadline = time.monotonic() + 301997 while (1998 subprocess.run( # noqa: S6031999 ["pg_isready", "-h", str(sockdir), "-U", "test"],2000 check=False,loading 18,855 hidden lines…
2085620857tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20858dbname = 'orchestrator'2085920860 @contextlib.contextmanager20861 def ephemeral_postgres(20862 tmp_path_factory: pytest.TempPathFactory, dbname: str20863 ) -> Iterator[str]:20864 """Throwaway Postgres on a unix socket with migrations applied."""20865 datadir = tmp_path_factory.mktemp("pgdata")20866 sockdir = tmp_path_factory.mktemp("pgsock")20867 subprocess.run( # noqa: S60320868 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20869 check=True,20870 capture_output=True,20871 )20872 proc = subprocess.Popen( # noqa: S60320873 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20874 stdout=subprocess.DEVNULL,20875 stderr=subprocess.DEVNULL,20876 )20877 try:20878 deadline = time.monotonic() + 3020879 while (20880 subprocess.run( # noqa: S60320881 ["pg_isready", "-h", str(sockdir), "-U", "test"],20882 check=False,20883 capture_output=True,20884 ).returncode20885 != 020886 ):20887 # The socket appears before recovery finishes; createdb would20888 # fail with "the database system is starting up".20889 if time.monotonic() > deadline:20890 msg = "postgres did not start"20891> raise RuntimeError(msg)20892E RuntimeError: postgres did not start2089320894nixbot/tests/support.py:319: RuntimeError20895_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __20896[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142089720898request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20899tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2090020901 @pytest.fixture(scope="module")20902 def postgres_dsn(20903 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20904 ) -> Iterator[str]:20905 if shutil.which("initdb") is None:20906 pytest.skip("postgresql not available")20907 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20908> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20909 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2091020911nixbot/tests/conftest.py:33: 20912_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20913/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20914 return next(self.gen)20915 ^^^^^^^^^^^^^^20916_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2091720918tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20919dbname = 'web'2092020921 @contextlib.contextmanager20922 def ephemeral_postgres(20923 tmp_path_factory: pytest.TempPathFactory, dbname: str20924 ) -> Iterator[str]:20925 """Throwaway Postgres on a unix socket with migrations applied."""20926 datadir = tmp_path_factory.mktemp("pgdata")20927 sockdir = tmp_path_factory.mktemp("pgsock")20928 subprocess.run( # noqa: S60320929 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20930 check=True,20931 capture_output=True,20932 )20933 proc = subprocess.Popen( # noqa: S60320934 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20935 stdout=subprocess.DEVNULL,20936 stderr=subprocess.DEVNULL,20937 )20938 try:20939 deadline = time.monotonic() + 3020940 while (20941 subprocess.run( # noqa: S60320942 ["pg_isready", "-h", str(sockdir), "-U", "test"],20943 check=False,20944 capture_output=True,20945 ).returncode20946 != 020947 ):20948 # The socket appears before recovery finishes; createdb would20949 # fail with "the database system is starting up".20950 if time.monotonic() > deadline:20951 msg = "postgres did not start"20952> raise RuntimeError(msg)20953E RuntimeError: postgres did not start2095420955nixbot/tests/support.py:319: RuntimeError20956_________________ ERROR at setup of test_effect_rows_roundtrip _________________20957[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142095820959self = <Coroutine test_effect_rows_roundtrip>2096020961 def setup(self) -> None:20962 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20963 if runner_fixture_id not in self.fixturenames:20964 self.fixturenames.append(runner_fixture_id)20965 # When loop factories are configured, resolve the loop factory20966 # fixture early so that a factory variant change cascades cache20967 # invalidation before any async fixture checks its cache.20968 hook_caller = self.config.hook.pytest_asyncio_loop_factories20969 if hook_caller.get_hookimpls():20970 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20971> return super().setup()20972 ^^^^^^^^^^^^^^^2097320974/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20975_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20976nixbot/tests/conftest.py:33: in postgres_dsn20977 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20978 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20979/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20980 return next(self.gen)20981 ^^^^^^^^^^^^^^20982_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2098320984tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20985dbname = 'orchestrator'2098620987 @contextlib.contextmanager20988 def ephemeral_postgres(20989 tmp_path_factory: pytest.TempPathFactory, dbname: str20990 ) -> Iterator[str]:20991 """Throwaway Postgres on a unix socket with migrations applied."""20992 datadir = tmp_path_factory.mktemp("pgdata")20993 sockdir = tmp_path_factory.mktemp("pgsock")20994 subprocess.run( # noqa: S60320995 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20996 check=True,20997 capture_output=True,20998 )20999 proc = subprocess.Popen( # noqa: S60321000 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21001 stdout=subprocess.DEVNULL,21002 stderr=subprocess.DEVNULL,21003 )21004 try:21005 deadline = time.monotonic() + 3021006 while (21007 subprocess.run( # noqa: S60321008 ["pg_isready", "-h", str(sockdir), "-U", "test"],21009 check=False,21010 capture_output=True,21011 ).returncode21012 != 021013 ):21014 # The socket appears before recovery finishes; createdb would21015 # fail with "the database system is starting up".21016 if time.monotonic() > deadline:21017 msg = "postgres did not start"21018> raise RuntimeError(msg)21019E RuntimeError: postgres did not start2102021021nixbot/tests/support.py:319: RuntimeError21022__________ ERROR at setup of test_old_schedule_history_url_redirects ___________21023[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142102421025request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21026tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2102721028 @pytest.fixture(scope="module")21029 def postgres_dsn(21030 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21031 ) -> Iterator[str]:21032 if shutil.which("initdb") is None:21033 pytest.skip("postgresql not available")21034 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21035> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21036 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2103721038nixbot/tests/conftest.py:33: 21039_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21040/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21041 return next(self.gen)21042 ^^^^^^^^^^^^^^21043_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2104421045tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21046dbname = 'web'2104721048 @contextlib.contextmanager21049 def ephemeral_postgres(21050 tmp_path_factory: pytest.TempPathFactory, dbname: str21051 ) -> Iterator[str]:21052 """Throwaway Postgres on a unix socket with migrations applied."""21053 datadir = tmp_path_factory.mktemp("pgdata")21054 sockdir = tmp_path_factory.mktemp("pgsock")21055 subprocess.run( # noqa: S60321056 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21057 check=True,21058 capture_output=True,21059 )21060 proc = subprocess.Popen( # noqa: S60321061 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21062 stdout=subprocess.DEVNULL,21063 stderr=subprocess.DEVNULL,21064 )21065 try:21066 deadline = time.monotonic() + 3021067 while (21068 subprocess.run( # noqa: S60321069 ["pg_isready", "-h", str(sockdir), "-U", "test"],21070 check=False,21071 capture_output=True,21072 ).returncode21073 != 021074 ):21075 # The socket appears before recovery finishes; createdb would21076 # fail with "the database system is starting up".21077 if time.monotonic() > deadline:21078 msg = "postgres did not start"21079> raise RuntimeError(msg)21080E RuntimeError: postgres did not start2108121082nixbot/tests/support.py:319: RuntimeError21083__________ ERROR at setup of test_project_effects_filter_and_paginate __________21084[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142108521086request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21087tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2108821089 @pytest.fixture(scope="module")21090 def postgres_dsn(21091 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21092 ) -> Iterator[str]:21093 if shutil.which("initdb") is None:21094 pytest.skip("postgresql not available")21095 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21096> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21097 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2109821099nixbot/tests/conftest.py:33: 21100_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21101/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21102 return next(self.gen)21103 ^^^^^^^^^^^^^^21104_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2110521106tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21107dbname = 'web'2110821109 @contextlib.contextmanager21110 def ephemeral_postgres(21111 tmp_path_factory: pytest.TempPathFactory, dbname: str21112 ) -> Iterator[str]:21113 """Throwaway Postgres on a unix socket with migrations applied."""21114 datadir = tmp_path_factory.mktemp("pgdata")21115 sockdir = tmp_path_factory.mktemp("pgsock")21116 subprocess.run( # noqa: S60321117 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21118 check=True,21119 capture_output=True,21120 )21121 proc = subprocess.Popen( # noqa: S60321122 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21123 stdout=subprocess.DEVNULL,21124 stderr=subprocess.DEVNULL,21125 )21126 try:21127 deadline = time.monotonic() + 3021128 while (21129 subprocess.run( # noqa: S60321130 ["pg_isready", "-h", str(sockdir), "-U", "test"],21131 check=False,21132 capture_output=True,21133 ).returncode21134 != 021135 ):21136 # The socket appears before recovery finishes; createdb would21137 # fail with "the database system is starting up".21138 if time.monotonic() > deadline:21139 msg = "postgres did not start"21140> raise RuntimeError(msg)21141E RuntimeError: postgres did not start2114221143nixbot/tests/support.py:319: RuntimeError21144_________ ERROR at setup of test_pending_effects_replace_skipped_rows __________21145[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142114621147self = <Coroutine test_pending_effects_replace_skipped_rows>2114821149 def setup(self) -> None:21150 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21151 if runner_fixture_id not in self.fixturenames:21152 self.fixturenames.append(runner_fixture_id)21153 # When loop factories are configured, resolve the loop factory21154 # fixture early so that a factory variant change cascades cache21155 # invalidation before any async fixture checks its cache.21156 hook_caller = self.config.hook.pytest_asyncio_loop_factories21157 if hook_caller.get_hookimpls():21158 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21159> return super().setup()21160 ^^^^^^^^^^^^^^^2116121162/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21163_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21164nixbot/tests/conftest.py:33: in postgres_dsn21165 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21166 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21167/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21168 return next(self.gen)21169 ^^^^^^^^^^^^^^21170_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2117121172tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21173dbname = 'orchestrator'2117421175 @contextlib.contextmanager21176 def ephemeral_postgres(21177 tmp_path_factory: pytest.TempPathFactory, dbname: str21178 ) -> Iterator[str]:21179 """Throwaway Postgres on a unix socket with migrations applied."""21180 datadir = tmp_path_factory.mktemp("pgdata")21181 sockdir = tmp_path_factory.mktemp("pgsock")21182 subprocess.run( # noqa: S60321183 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21184 check=True,21185 capture_output=True,21186 )21187 proc = subprocess.Popen( # noqa: S60321188 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21189 stdout=subprocess.DEVNULL,21190 stderr=subprocess.DEVNULL,21191 )21192 try:21193 deadline = time.monotonic() + 3021194 while (21195 subprocess.run( # noqa: S60321196 ["pg_isready", "-h", str(sockdir), "-U", "test"],21197 check=False,21198 capture_output=True,21199 ).returncode21200 != 021201 ):21202 # The socket appears before recovery finishes; createdb would21203 # fail with "the database system is starting up".21204 if time.monotonic() > deadline:21205 msg = "postgres did not start"21206> raise RuntimeError(msg)21207E RuntimeError: postgres did not start2120821209nixbot/tests/support.py:319: RuntimeError21210_________ ERROR at setup of test_scheduled_run_stream_replays_history __________21211[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142121221213request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21214tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2121521216 @pytest.fixture(scope="module")21217 def postgres_dsn(21218 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21219 ) -> Iterator[str]:21220 if shutil.which("initdb") is None:21221 pytest.skip("postgresql not available")21222 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21223> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21224 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2122521226nixbot/tests/conftest.py:33: 21227_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21228/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21229 return next(self.gen)21230 ^^^^^^^^^^^^^^21231_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2123221233tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21234dbname = 'web'2123521236 @contextlib.contextmanager21237 def ephemeral_postgres(21238 tmp_path_factory: pytest.TempPathFactory, dbname: str21239 ) -> Iterator[str]:21240 """Throwaway Postgres on a unix socket with migrations applied."""21241 datadir = tmp_path_factory.mktemp("pgdata")21242 sockdir = tmp_path_factory.mktemp("pgsock")21243 subprocess.run( # noqa: S60321244 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21245 check=True,21246 capture_output=True,21247 )21248 proc = subprocess.Popen( # noqa: S60321249 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21250 stdout=subprocess.DEVNULL,21251 stderr=subprocess.DEVNULL,21252 )21253 try:21254 deadline = time.monotonic() + 3021255 while (21256 subprocess.run( # noqa: S60321257 ["pg_isready", "-h", str(sockdir), "-U", "test"],21258 check=False,21259 capture_output=True,21260 ).returncode21261 != 021262 ):21263 # The socket appears before recovery finishes; createdb would21264 # fail with "the database system is starting up".21265 if time.monotonic() > deadline:21266 msg = "postgres did not start"21267> raise RuntimeError(msg)21268E RuntimeError: postgres did not start2126921270nixbot/tests/support.py:319: RuntimeError21271___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21272[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142127321274request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21275tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2127621277 @pytest.fixture(scope="module")21278 def postgres_dsn(21279 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21280 ) -> Iterator[str]:21281 if shutil.which("initdb") is None:21282 pytest.skip("postgresql not available")21283 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21284> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21285 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2128621287nixbot/tests/conftest.py:33: 21288_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21289/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21290 return next(self.gen)21291 ^^^^^^^^^^^^^^21292_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2129321294tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21295dbname = 'web'2129621297 @contextlib.contextmanager21298 def ephemeral_postgres(21299 tmp_path_factory: pytest.TempPathFactory, dbname: str21300 ) -> Iterator[str]:21301 """Throwaway Postgres on a unix socket with migrations applied."""21302 datadir = tmp_path_factory.mktemp("pgdata")21303 sockdir = tmp_path_factory.mktemp("pgsock")21304 subprocess.run( # noqa: S60321305 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21306 check=True,21307 capture_output=True,21308 )21309 proc = subprocess.Popen( # noqa: S60321310 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21311 stdout=subprocess.DEVNULL,21312 stderr=subprocess.DEVNULL,21313 )21314 try:21315 deadline = time.monotonic() + 3021316 while (21317 subprocess.run( # noqa: S60321318 ["pg_isready", "-h", str(sockdir), "-U", "test"],21319 check=False,21320 capture_output=True,21321 ).returncode21322 != 021323 ):21324 # The socket appears before recovery finishes; createdb would21325 # fail with "the database system is starting up".21326 if time.monotonic() > deadline:21327 msg = "postgres did not start"21328> raise RuntimeError(msg)21329E RuntimeError: postgres did not start2133021331nixbot/tests/support.py:319: RuntimeError21332___________ ERROR at setup of test_effect_items_resume_only_pending ____________21333[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142133421335self = <Coroutine test_effect_items_resume_only_pending>2133621337 def setup(self) -> None:21338 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21339 if runner_fixture_id not in self.fixturenames:21340 self.fixturenames.append(runner_fixture_id)21341 # When loop factories are configured, resolve the loop factory21342 # fixture early so that a factory variant change cascades cache21343 # invalidation before any async fixture checks its cache.21344 hook_caller = self.config.hook.pytest_asyncio_loop_factories21345 if hook_caller.get_hookimpls():21346 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21347> return super().setup()21348 ^^^^^^^^^^^^^^^2134921350/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21351_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21352nixbot/tests/conftest.py:33: in postgres_dsn21353 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21354 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21355/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21356 return next(self.gen)21357 ^^^^^^^^^^^^^^21358_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2135921360tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21361dbname = 'orchestrator'2136221363 @contextlib.contextmanager21364 def ephemeral_postgres(21365 tmp_path_factory: pytest.TempPathFactory, dbname: str21366 ) -> Iterator[str]:21367 """Throwaway Postgres on a unix socket with migrations applied."""21368 datadir = tmp_path_factory.mktemp("pgdata")21369 sockdir = tmp_path_factory.mktemp("pgsock")21370 subprocess.run( # noqa: S60321371 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21372 check=True,21373 capture_output=True,21374 )21375 proc = subprocess.Popen( # noqa: S60321376 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21377 stdout=subprocess.DEVNULL,21378 stderr=subprocess.DEVNULL,21379 )21380 try:21381 deadline = time.monotonic() + 3021382 while (21383 subprocess.run( # noqa: S60321384 ["pg_isready", "-h", str(sockdir), "-U", "test"],21385 check=False,21386 capture_output=True,21387 ).returncode21388 != 021389 ):21390 # The socket appears before recovery finishes; createdb would21391 # fail with "the database system is starting up".21392 if time.monotonic() > deadline:21393 msg = "postgres did not start"21394> raise RuntimeError(msg)21395E RuntimeError: postgres did not start2139621397nixbot/tests/support.py:319: RuntimeError21398_________________ ERROR at setup of test_api_log_toc_and_text __________________21399[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142140021401request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21402tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2140321404 @pytest.fixture(scope="module")21405 def postgres_dsn(21406 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21407 ) -> Iterator[str]:21408 if shutil.which("initdb") is None:21409 pytest.skip("postgresql not available")21410 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21411> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21412 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2141321414nixbot/tests/conftest.py:33: 21415_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21416/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21417 return next(self.gen)21418 ^^^^^^^^^^^^^^21419_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2142021421tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21422dbname = 'web'2142321424 @contextlib.contextmanager21425 def ephemeral_postgres(21426 tmp_path_factory: pytest.TempPathFactory, dbname: str21427 ) -> Iterator[str]:21428 """Throwaway Postgres on a unix socket with migrations applied."""21429 datadir = tmp_path_factory.mktemp("pgdata")21430 sockdir = tmp_path_factory.mktemp("pgsock")21431 subprocess.run( # noqa: S60321432 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21433 check=True,21434 capture_output=True,21435 )21436 proc = subprocess.Popen( # noqa: S60321437 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21438 stdout=subprocess.DEVNULL,21439 stderr=subprocess.DEVNULL,21440 )21441 try:21442 deadline = time.monotonic() + 3021443 while (21444 subprocess.run( # noqa: S60321445 ["pg_isready", "-h", str(sockdir), "-U", "test"],21446 check=False,21447 capture_output=True,21448 ).returncode21449 != 021450 ):21451 # The socket appears before recovery finishes; createdb would21452 # fail with "the database system is starting up".21453 if time.monotonic() > deadline:21454 msg = "postgres did not start"21455> raise RuntimeError(msg)21456E RuntimeError: postgres did not start2145721458nixbot/tests/support.py:319: RuntimeError21459_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21460[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142146121462request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21463tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2146421465 @pytest.fixture(scope="module")21466 def postgres_dsn(21467 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21468 ) -> Iterator[str]:21469 if shutil.which("initdb") is None:21470 pytest.skip("postgresql not available")21471 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21472> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21473 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2147421475nixbot/tests/conftest.py:33: 21476_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21477/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21478 return next(self.gen)21479 ^^^^^^^^^^^^^^21480_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2148121482tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21483dbname = 'web'2148421485 @contextlib.contextmanager21486 def ephemeral_postgres(21487 tmp_path_factory: pytest.TempPathFactory, dbname: str21488 ) -> Iterator[str]:21489 """Throwaway Postgres on a unix socket with migrations applied."""21490 datadir = tmp_path_factory.mktemp("pgdata")21491 sockdir = tmp_path_factory.mktemp("pgsock")21492 subprocess.run( # noqa: S60321493 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21494 check=True,21495 capture_output=True,21496 )21497 proc = subprocess.Popen( # noqa: S60321498 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21499 stdout=subprocess.DEVNULL,21500 stderr=subprocess.DEVNULL,21501 )21502 try:21503 deadline = time.monotonic() + 3021504 while (21505 subprocess.run( # noqa: S60321506 ["pg_isready", "-h", str(sockdir), "-U", "test"],21507 check=False,21508 capture_output=True,21509 ).returncode21510 != 021511 ):21512 # The socket appears before recovery finishes; createdb would21513 # fail with "the database system is starting up".21514 if time.monotonic() > deadline:21515 msg = "postgres did not start"21516> raise RuntimeError(msg)21517E RuntimeError: postgres did not start2151821519nixbot/tests/support.py:319: RuntimeError21520_____________ ERROR at setup of test_effect_crash_settles_the_row ______________21521[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142152221523self = <Coroutine test_effect_crash_settles_the_row>2152421525 def setup(self) -> None:21526 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21527 if runner_fixture_id not in self.fixturenames:21528 self.fixturenames.append(runner_fixture_id)21529 # When loop factories are configured, resolve the loop factory21530 # fixture early so that a factory variant change cascades cache21531 # invalidation before any async fixture checks its cache.21532 hook_caller = self.config.hook.pytest_asyncio_loop_factories21533 if hook_caller.get_hookimpls():21534 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21535> return super().setup()21536 ^^^^^^^^^^^^^^^2153721538/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21539_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21540nixbot/tests/conftest.py:33: in postgres_dsn21541 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21542 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21543/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21544 return next(self.gen)21545 ^^^^^^^^^^^^^^21546_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2154721548tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21549dbname = 'orchestrator'2155021551 @contextlib.contextmanager21552 def ephemeral_postgres(21553 tmp_path_factory: pytest.TempPathFactory, dbname: str21554 ) -> Iterator[str]:21555 """Throwaway Postgres on a unix socket with migrations applied."""21556 datadir = tmp_path_factory.mktemp("pgdata")21557 sockdir = tmp_path_factory.mktemp("pgsock")21558 subprocess.run( # noqa: S60321559 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21560 check=True,21561 capture_output=True,21562 )21563 proc = subprocess.Popen( # noqa: S60321564 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21565 stdout=subprocess.DEVNULL,21566 stderr=subprocess.DEVNULL,21567 )21568 try:21569 deadline = time.monotonic() + 3021570 while (21571 subprocess.run( # noqa: S60321572 ["pg_isready", "-h", str(sockdir), "-U", "test"],21573 check=False,21574 capture_output=True,21575 ).returncode21576 != 021577 ):21578 # The socket appears before recovery finishes; createdb would21579 # fail with "the database system is starting up".21580 if time.monotonic() > deadline:21581 msg = "postgres did not start"21582> raise RuntimeError(msg)21583E RuntimeError: postgres did not start2158421585nixbot/tests/support.py:319: RuntimeError21586__________________ ERROR at setup of test_api_log_stream_json __________________21587[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142158821589request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21590tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2159121592 @pytest.fixture(scope="module")21593 def postgres_dsn(21594 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21595 ) -> Iterator[str]:21596 if shutil.which("initdb") is None:21597 pytest.skip("postgresql not available")21598 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21599> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21600 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2160121602nixbot/tests/conftest.py:33: 21603_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21604/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21605 return next(self.gen)21606 ^^^^^^^^^^^^^^21607_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2160821609tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21610dbname = 'web'2161121612 @contextlib.contextmanager21613 def ephemeral_postgres(21614 tmp_path_factory: pytest.TempPathFactory, dbname: str21615 ) -> Iterator[str]:21616 """Throwaway Postgres on a unix socket with migrations applied."""21617 datadir = tmp_path_factory.mktemp("pgdata")21618 sockdir = tmp_path_factory.mktemp("pgsock")21619 subprocess.run( # noqa: S60321620 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21621 check=True,21622 capture_output=True,21623 )21624 proc = subprocess.Popen( # noqa: S60321625 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21626 stdout=subprocess.DEVNULL,21627 stderr=subprocess.DEVNULL,21628 )21629 try:21630 deadline = time.monotonic() + 3021631 while (21632 subprocess.run( # noqa: S60321633 ["pg_isready", "-h", str(sockdir), "-U", "test"],21634 check=False,21635 capture_output=True,21636 ).returncode21637 != 021638 ):21639 # The socket appears before recovery finishes; createdb would21640 # fail with "the database system is starting up".21641 if time.monotonic() > deadline:21642 msg = "postgres did not start"21643> raise RuntimeError(msg)21644E RuntimeError: postgres did not start2164521646nixbot/tests/support.py:319: RuntimeError21647_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______21648[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142164921650self = <Coroutine test_concurrent_effects_use_independent_worktrees>2165121652 def setup(self) -> None:21653 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21654 if runner_fixture_id not in self.fixturenames:21655 self.fixturenames.append(runner_fixture_id)21656 # When loop factories are configured, resolve the loop factory21657 # fixture early so that a factory variant change cascades cache21658 # invalidation before any async fixture checks its cache.21659 hook_caller = self.config.hook.pytest_asyncio_loop_factories21660 if hook_caller.get_hookimpls():21661 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21662> return super().setup()21663 ^^^^^^^^^^^^^^^2166421665/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21666_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21667nixbot/tests/conftest.py:33: in postgres_dsn21668 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21669 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21670/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21671 return next(self.gen)21672 ^^^^^^^^^^^^^^21673_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2167421675tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21676dbname = 'orchestrator'2167721678 @contextlib.contextmanager21679 def ephemeral_postgres(21680 tmp_path_factory: pytest.TempPathFactory, dbname: str21681 ) -> Iterator[str]:21682 """Throwaway Postgres on a unix socket with migrations applied."""21683 datadir = tmp_path_factory.mktemp("pgdata")21684 sockdir = tmp_path_factory.mktemp("pgsock")21685 subprocess.run( # noqa: S60321686 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21687 check=True,21688 capture_output=True,21689 )21690 proc = subprocess.Popen( # noqa: S60321691 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21692 stdout=subprocess.DEVNULL,21693 stderr=subprocess.DEVNULL,21694 )21695 try:21696 deadline = time.monotonic() + 3021697 while (21698 subprocess.run( # noqa: S60321699 ["pg_isready", "-h", str(sockdir), "-U", "test"],21700 check=False,21701 capture_output=True,21702 ).returncode21703 != 021704 ):21705 # The socket appears before recovery finishes; createdb would21706 # fail with "the database system is starting up".21707 if time.monotonic() > deadline:21708 msg = "postgres did not start"21709> raise RuntimeError(msg)21710E RuntimeError: postgres did not start2171121712nixbot/tests/support.py:319: RuntimeError21713_______________ ERROR at setup of test_build_eval_stats_surface ________________21714[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142171521716request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21717tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2171821719 @pytest.fixture(scope="module")21720 def postgres_dsn(21721 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21722 ) -> Iterator[str]:21723 if shutil.which("initdb") is None:21724 pytest.skip("postgresql not available")21725 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21726> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21727 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2172821729nixbot/tests/conftest.py:33: 21730_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21731/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21732 return next(self.gen)21733 ^^^^^^^^^^^^^^21734_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173521736tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21737dbname = 'web'2173821739 @contextlib.contextmanager21740 def ephemeral_postgres(21741 tmp_path_factory: pytest.TempPathFactory, dbname: str21742 ) -> Iterator[str]:21743 """Throwaway Postgres on a unix socket with migrations applied."""21744 datadir = tmp_path_factory.mktemp("pgdata")21745 sockdir = tmp_path_factory.mktemp("pgsock")21746 subprocess.run( # noqa: S60321747 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21748 check=True,21749 capture_output=True,21750 )21751 proc = subprocess.Popen( # noqa: S60321752 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21753 stdout=subprocess.DEVNULL,21754 stderr=subprocess.DEVNULL,21755 )21756 try:21757 deadline = time.monotonic() + 3021758 while (21759 subprocess.run( # noqa: S60321760 ["pg_isready", "-h", str(sockdir), "-U", "test"],21761 check=False,21762 capture_output=True,21763 ).returncode21764 != 021765 ):21766 # The socket appears before recovery finishes; createdb would21767 # fail with "the database system is starting up".21768 if time.monotonic() > deadline:21769 msg = "postgres did not start"21770> raise RuntimeError(msg)21771E RuntimeError: postgres did not start2177221773nixbot/tests/support.py:319: RuntimeError21774__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________21775[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177621777self = <Coroutine test_locked_effect_gets_shared_dedup_key>2177821779 def setup(self) -> None:21780 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21781 if runner_fixture_id not in self.fixturenames:21782 self.fixturenames.append(runner_fixture_id)21783 # When loop factories are configured, resolve the loop factory21784 # fixture early so that a factory variant change cascades cache21785 # invalidation before any async fixture checks its cache.21786 hook_caller = self.config.hook.pytest_asyncio_loop_factories21787 if hook_caller.get_hookimpls():21788 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21789> return super().setup()21790 ^^^^^^^^^^^^^^^2179121792/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21793_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21794nixbot/tests/conftest.py:33: in postgres_dsn21795 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21796 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21797/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21798 return next(self.gen)21799 ^^^^^^^^^^^^^^21800_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2180121802tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21803dbname = 'orchestrator'2180421805 @contextlib.contextmanager21806 def ephemeral_postgres(21807 tmp_path_factory: pytest.TempPathFactory, dbname: str21808 ) -> Iterator[str]:21809 """Throwaway Postgres on a unix socket with migrations applied."""21810 datadir = tmp_path_factory.mktemp("pgdata")21811 sockdir = tmp_path_factory.mktemp("pgsock")21812 subprocess.run( # noqa: S60321813 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21814 check=True,21815 capture_output=True,21816 )21817 proc = subprocess.Popen( # noqa: S60321818 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21819 stdout=subprocess.DEVNULL,21820 stderr=subprocess.DEVNULL,21821 )21822 try:21823 deadline = time.monotonic() + 3021824 while (21825 subprocess.run( # noqa: S60321826 ["pg_isready", "-h", str(sockdir), "-U", "test"],21827 check=False,21828 capture_output=True,21829 ).returncode21830 != 021831 ):21832 # The socket appears before recovery finishes; createdb would21833 # fail with "the database system is starting up".21834 if time.monotonic() > deadline:21835 msg = "postgres did not start"21836> raise RuntimeError(msg)21837E RuntimeError: postgres did not start2183821839nixbot/tests/support.py:319: RuntimeError21840______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______21841[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142184221843self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2184421845 def setup(self) -> None:21846 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21847 if runner_fixture_id not in self.fixturenames:21848 self.fixturenames.append(runner_fixture_id)21849 # When loop factories are configured, resolve the loop factory21850 # fixture early so that a factory variant change cascades cache21851 # invalidation before any async fixture checks its cache.21852 hook_caller = self.config.hook.pytest_asyncio_loop_factories21853 if hook_caller.get_hookimpls():21854 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21855> return super().setup()21856 ^^^^^^^^^^^^^^^2185721858/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21859_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21860nixbot/tests/conftest.py:33: in postgres_dsn21861 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21862 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21863/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21864 return next(self.gen)21865 ^^^^^^^^^^^^^^21866_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186721868tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21869dbname = 'orchestrator'2187021871 @contextlib.contextmanager21872 def ephemeral_postgres(21873 tmp_path_factory: pytest.TempPathFactory, dbname: str21874 ) -> Iterator[str]:21875 """Throwaway Postgres on a unix socket with migrations applied."""21876 datadir = tmp_path_factory.mktemp("pgdata")21877 sockdir = tmp_path_factory.mktemp("pgsock")21878 subprocess.run( # noqa: S60321879 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21880 check=True,21881 capture_output=True,21882 )21883 proc = subprocess.Popen( # noqa: S60321884 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21885 stdout=subprocess.DEVNULL,21886 stderr=subprocess.DEVNULL,21887 )21888 try:21889 deadline = time.monotonic() + 3021890 while (21891 subprocess.run( # noqa: S60321892 ["pg_isready", "-h", str(sockdir), "-U", "test"],21893 check=False,21894 capture_output=True,21895 ).returncode21896 != 021897 ):21898 # The socket appears before recovery finishes; createdb would21899 # fail with "the database system is starting up".21900 if time.monotonic() > deadline:21901 msg = "postgres did not start"21902> raise RuntimeError(msg)21903E RuntimeError: postgres did not start2190421905nixbot/tests/support.py:319: RuntimeError21906__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21907[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190821909self = <Coroutine test_effect_dep_failure_skips_dependent>2191021911 def setup(self) -> None:21912 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21913 if runner_fixture_id not in self.fixturenames:21914 self.fixturenames.append(runner_fixture_id)21915 # When loop factories are configured, resolve the loop factory21916 # fixture early so that a factory variant change cascades cache21917 # invalidation before any async fixture checks its cache.21918 hook_caller = self.config.hook.pytest_asyncio_loop_factories21919 if hook_caller.get_hookimpls():21920 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21921> return super().setup()21922 ^^^^^^^^^^^^^^^2192321924/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21925_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21926nixbot/tests/conftest.py:33: in postgres_dsn21927 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21928 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21929/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21930 return next(self.gen)21931 ^^^^^^^^^^^^^^21932_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2193321934tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21935dbname = 'orchestrator'2193621937 @contextlib.contextmanager21938 def ephemeral_postgres(21939 tmp_path_factory: pytest.TempPathFactory, dbname: str21940 ) -> Iterator[str]:21941 """Throwaway Postgres on a unix socket with migrations applied."""21942 datadir = tmp_path_factory.mktemp("pgdata")21943 sockdir = tmp_path_factory.mktemp("pgsock")21944 subprocess.run( # noqa: S60321945 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21946 check=True,21947 capture_output=True,21948 )21949 proc = subprocess.Popen( # noqa: S60321950 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21951 stdout=subprocess.DEVNULL,21952 stderr=subprocess.DEVNULL,21953 )21954 try:21955 deadline = time.monotonic() + 3021956 while (21957 subprocess.run( # noqa: S60321958 ["pg_isready", "-h", str(sockdir), "-U", "test"],21959 check=False,21960 capture_output=True,21961 ).returncode21962 != 021963 ):21964 # The socket appears before recovery finishes; createdb would21965 # fail with "the database system is starting up".21966 if time.monotonic() > deadline:21967 msg = "postgres did not start"21968> raise RuntimeError(msg)21969E RuntimeError: postgres did not start2197021971nixbot/tests/support.py:319: RuntimeError21972______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21973[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142197421975self = <Coroutine test_lock_serializes_builds_without_interleaving>2197621977 def setup(self) -> None:21978 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21979 if runner_fixture_id not in self.fixturenames:21980 self.fixturenames.append(runner_fixture_id)21981 # When loop factories are configured, resolve the loop factory21982 # fixture early so that a factory variant change cascades cache21983 # invalidation before any async fixture checks its cache.21984 hook_caller = self.config.hook.pytest_asyncio_loop_factories21985 if hook_caller.get_hookimpls():21986 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21987> return super().setup()21988 ^^^^^^^^^^^^^^^2198921990/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21991_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21992nixbot/tests/conftest.py:33: in postgres_dsn21993 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21994 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21995/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21996 return next(self.gen)21997 ^^^^^^^^^^^^^^21998_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199922000tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22001dbname = 'orchestrator'2200222003 @contextlib.contextmanager22004 def ephemeral_postgres(22005 tmp_path_factory: pytest.TempPathFactory, dbname: str22006 ) -> Iterator[str]:22007 """Throwaway Postgres on a unix socket with migrations applied."""22008 datadir = tmp_path_factory.mktemp("pgdata")22009 sockdir = tmp_path_factory.mktemp("pgsock")22010 subprocess.run( # noqa: S60322011 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22012 check=True,22013 capture_output=True,22014 )22015 proc = subprocess.Popen( # noqa: S60322016 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22017 stdout=subprocess.DEVNULL,22018 stderr=subprocess.DEVNULL,22019 )22020 try:22021 deadline = time.monotonic() + 3022022 while (22023 subprocess.run( # noqa: S60322024 ["pg_isready", "-h", str(sockdir), "-U", "test"],22025 check=False,22026 capture_output=True,22027 ).returncode22028 != 022029 ):22030 # The socket appears before recovery finishes; createdb would22031 # fail with "the database system is starting up".22032 if time.monotonic() > deadline:22033 msg = "postgres did not start"22034> raise RuntimeError(msg)22035E RuntimeError: postgres did not start2203622037nixbot/tests/support.py:319: RuntimeError22038___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________22039[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142204022041self = <Coroutine test_effect_dep_cycle_fails_discovery>2204222043 def setup(self) -> None:22044 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22045 if runner_fixture_id not in self.fixturenames:22046 self.fixturenames.append(runner_fixture_id)22047 # When loop factories are configured, resolve the loop factory22048 # fixture early so that a factory variant change cascades cache22049 # invalidation before any async fixture checks its cache.22050 hook_caller = self.config.hook.pytest_asyncio_loop_factories22051 if hook_caller.get_hookimpls():22052 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22053> return super().setup()22054 ^^^^^^^^^^^^^^^2205522056/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22057_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22058nixbot/tests/conftest.py:33: in postgres_dsn22059 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22060 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22061/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22062 return next(self.gen)22063 ^^^^^^^^^^^^^^22064_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206522066tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22067dbname = 'orchestrator'2206822069 @contextlib.contextmanager22070 def ephemeral_postgres(22071 tmp_path_factory: pytest.TempPathFactory, dbname: str22072 ) -> Iterator[str]:22073 """Throwaway Postgres on a unix socket with migrations applied."""22074 datadir = tmp_path_factory.mktemp("pgdata")22075 sockdir = tmp_path_factory.mktemp("pgsock")22076 subprocess.run( # noqa: S60322077 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22078 check=True,22079 capture_output=True,22080 )22081 proc = subprocess.Popen( # noqa: S60322082 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22083 stdout=subprocess.DEVNULL,22084 stderr=subprocess.DEVNULL,22085 )22086 try:22087 deadline = time.monotonic() + 3022088 while (22089 subprocess.run( # noqa: S60322090 ["pg_isready", "-h", str(sockdir), "-U", "test"],22091 check=False,22092 capture_output=True,22093 ).returncode22094 != 022095 ):22096 # The socket appears before recovery finishes; createdb would22097 # fail with "the database system is starting up".22098 if time.monotonic() > deadline:22099 msg = "postgres did not start"22100> raise RuntimeError(msg)22101E RuntimeError: postgres did not start2210222103nixbot/tests/support.py:319: RuntimeError22104_________ ERROR at setup of test_failed_effect_reports_failure_status __________22105[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210622107self = <Coroutine test_failed_effect_reports_failure_status>2210822109 def setup(self) -> None:22110 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22111 if runner_fixture_id not in self.fixturenames:22112 self.fixturenames.append(runner_fixture_id)22113 # When loop factories are configured, resolve the loop factory22114 # fixture early so that a factory variant change cascades cache22115 # invalidation before any async fixture checks its cache.22116 hook_caller = self.config.hook.pytest_asyncio_loop_factories22117 if hook_caller.get_hookimpls():22118 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22119> return super().setup()22120 ^^^^^^^^^^^^^^^2212122122/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22123_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22124nixbot/tests/conftest.py:33: in postgres_dsn22125 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22126 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22127/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22128 return next(self.gen)22129 ^^^^^^^^^^^^^^22130_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2213122132tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22133dbname = 'orchestrator'2213422135 @contextlib.contextmanager22136 def ephemeral_postgres(22137 tmp_path_factory: pytest.TempPathFactory, dbname: str22138 ) -> Iterator[str]:22139 """Throwaway Postgres on a unix socket with migrations applied."""22140 datadir = tmp_path_factory.mktemp("pgdata")22141 sockdir = tmp_path_factory.mktemp("pgsock")22142 subprocess.run( # noqa: S60322143 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22144 check=True,22145 capture_output=True,22146 )22147 proc = subprocess.Popen( # noqa: S60322148 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22149 stdout=subprocess.DEVNULL,22150 stderr=subprocess.DEVNULL,22151 )22152 try:22153 deadline = time.monotonic() + 3022154 while (22155 subprocess.run( # noqa: S60322156 ["pg_isready", "-h", str(sockdir), "-U", "test"],22157 check=False,22158 capture_output=True,22159 ).returncode22160 != 022161 ):22162 # The socket appears before recovery finishes; createdb would22163 # fail with "the database system is starting up".22164 if time.monotonic() > deadline:22165 msg = "postgres did not start"22166> raise RuntimeError(msg)22167E RuntimeError: postgres did not start2216822169nixbot/tests/support.py:319: RuntimeError22170________ ERROR at setup of test_post_process_error_does_not_wedge_build ________22171[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142217222173self = <Coroutine test_post_process_error_does_not_wedge_build>2217422175 def setup(self) -> None:22176 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22177 if runner_fixture_id not in self.fixturenames:22178 self.fixturenames.append(runner_fixture_id)22179 # When loop factories are configured, resolve the loop factory22180 # fixture early so that a factory variant change cascades cache22181 # invalidation before any async fixture checks its cache.22182 hook_caller = self.config.hook.pytest_asyncio_loop_factories22183 if hook_caller.get_hookimpls():22184 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22185> return super().setup()22186 ^^^^^^^^^^^^^^^2218722188/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22189_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22190nixbot/tests/conftest.py:33: in postgres_dsn22191 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22192 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22193/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22194 return next(self.gen)22195 ^^^^^^^^^^^^^^22196_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219722198tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22199dbname = 'orchestrator'2220022201 @contextlib.contextmanager22202 def ephemeral_postgres(22203 tmp_path_factory: pytest.TempPathFactory, dbname: str22204 ) -> Iterator[str]:22205 """Throwaway Postgres on a unix socket with migrations applied."""22206 datadir = tmp_path_factory.mktemp("pgdata")22207 sockdir = tmp_path_factory.mktemp("pgsock")22208 subprocess.run( # noqa: S60322209 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22210 check=True,22211 capture_output=True,22212 )22213 proc = subprocess.Popen( # noqa: S60322214 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22215 stdout=subprocess.DEVNULL,22216 stderr=subprocess.DEVNULL,22217 )22218 try:22219 deadline = time.monotonic() + 3022220 while (22221 subprocess.run( # noqa: S60322222 ["pg_isready", "-h", str(sockdir), "-U", "test"],22223 check=False,22224 capture_output=True,22225 ).returncode22226 != 022227 ):22228 # The socket appears before recovery finishes; createdb would22229 # fail with "the database system is starting up".22230 if time.monotonic() > deadline:22231 msg = "postgres did not start"22232> raise RuntimeError(msg)22233E RuntimeError: postgres did not start2223422235nixbot/tests/support.py:319: RuntimeError22236_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________22237[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223822239self = <Coroutine test_unexpected_eval_path_error_settles_build>2224022241 def setup(self) -> None:22242 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22243 if runner_fixture_id not in self.fixturenames:22244 self.fixturenames.append(runner_fixture_id)22245 # When loop factories are configured, resolve the loop factory22246 # fixture early so that a factory variant change cascades cache22247 # invalidation before any async fixture checks its cache.22248 hook_caller = self.config.hook.pytest_asyncio_loop_factories22249 if hook_caller.get_hookimpls():22250 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22251> return super().setup()22252 ^^^^^^^^^^^^^^^2225322254/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22255_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22256nixbot/tests/conftest.py:33: in postgres_dsn22257 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22259/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22260 return next(self.gen)22261 ^^^^^^^^^^^^^^22262_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2226322264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22265dbname = 'orchestrator'2226622267 @contextlib.contextmanager22268 def ephemeral_postgres(22269 tmp_path_factory: pytest.TempPathFactory, dbname: str22270 ) -> Iterator[str]:22271 """Throwaway Postgres on a unix socket with migrations applied."""22272 datadir = tmp_path_factory.mktemp("pgdata")22273 sockdir = tmp_path_factory.mktemp("pgsock")22274 subprocess.run( # noqa: S60322275 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22276 check=True,22277 capture_output=True,22278 )22279 proc = subprocess.Popen( # noqa: S60322280 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22281 stdout=subprocess.DEVNULL,22282 stderr=subprocess.DEVNULL,22283 )22284 try:22285 deadline = time.monotonic() + 3022286 while (22287 subprocess.run( # noqa: S60322288 ["pg_isready", "-h", str(sockdir), "-U", "test"],22289 check=False,22290 capture_output=True,22291 ).returncode22292 != 022293 ):22294 # The socket appears before recovery finishes; createdb would22295 # fail with "the database system is starting up".22296 if time.monotonic() > deadline:22297 msg = "postgres did not start"22298> raise RuntimeError(msg)22299E RuntimeError: postgres did not start2230022301nixbot/tests/support.py:319: RuntimeError22302____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____22303[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142230422305self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2230622307 def setup(self) -> None:22308 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22309 if runner_fixture_id not in self.fixturenames:22310 self.fixturenames.append(runner_fixture_id)22311 # When loop factories are configured, resolve the loop factory22312 # fixture early so that a factory variant change cascades cache22313 # invalidation before any async fixture checks its cache.22314 hook_caller = self.config.hook.pytest_asyncio_loop_factories22315 if hook_caller.get_hookimpls():22316 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22317> return super().setup()22318 ^^^^^^^^^^^^^^^2231922320/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22321_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22322nixbot/tests/conftest.py:33: in postgres_dsn22323 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22324 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22325/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22326 return next(self.gen)22327 ^^^^^^^^^^^^^^22328_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232922330tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22331dbname = 'orchestrator'2233222333 @contextlib.contextmanager22334 def ephemeral_postgres(22335 tmp_path_factory: pytest.TempPathFactory, dbname: str22336 ) -> Iterator[str]:22337 """Throwaway Postgres on a unix socket with migrations applied."""22338 datadir = tmp_path_factory.mktemp("pgdata")22339 sockdir = tmp_path_factory.mktemp("pgsock")22340 subprocess.run( # noqa: S60322341 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22342 check=True,22343 capture_output=True,22344 )22345 proc = subprocess.Popen( # noqa: S60322346 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22347 stdout=subprocess.DEVNULL,22348 stderr=subprocess.DEVNULL,22349 )22350 try:22351 deadline = time.monotonic() + 3022352 while (22353 subprocess.run( # noqa: S60322354 ["pg_isready", "-h", str(sockdir), "-U", "test"],22355 check=False,22356 capture_output=True,22357 ).returncode22358 != 022359 ):22360 # The socket appears before recovery finishes; createdb would22361 # fail with "the database system is starting up".22362 if time.monotonic() > deadline:22363 msg = "postgres did not start"22364> raise RuntimeError(msg)22365E RuntimeError: postgres did not start2236622367nixbot/tests/support.py:319: RuntimeError22368__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __22369[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142237022371self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2237222373 def setup(self) -> None:22374 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22375 if runner_fixture_id not in self.fixturenames:22376 self.fixturenames.append(runner_fixture_id)22377 # When loop factories are configured, resolve the loop factory22378 # fixture early so that a factory variant change cascades cache22379 # invalidation before any async fixture checks its cache.22380 hook_caller = self.config.hook.pytest_asyncio_loop_factories22381 if hook_caller.get_hookimpls():22382 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22383> return super().setup()22384 ^^^^^^^^^^^^^^^2238522386/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22387_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22388nixbot/tests/conftest.py:33: in postgres_dsn22389 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22390 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22391/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22392 return next(self.gen)22393 ^^^^^^^^^^^^^^22394_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239522396tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22397dbname = 'orchestrator'2239822399 @contextlib.contextmanager22400 def ephemeral_postgres(22401 tmp_path_factory: pytest.TempPathFactory, dbname: str22402 ) -> Iterator[str]:22403 """Throwaway Postgres on a unix socket with migrations applied."""22404 datadir = tmp_path_factory.mktemp("pgdata")22405 sockdir = tmp_path_factory.mktemp("pgsock")22406 subprocess.run( # noqa: S60322407 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22408 check=True,22409 capture_output=True,22410 )22411 proc = subprocess.Popen( # noqa: S60322412 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22413 stdout=subprocess.DEVNULL,22414 stderr=subprocess.DEVNULL,22415 )22416 try:22417 deadline = time.monotonic() + 3022418 while (22419 subprocess.run( # noqa: S60322420 ["pg_isready", "-h", str(sockdir), "-U", "test"],22421 check=False,22422 capture_output=True,22423 ).returncode22424 != 022425 ):22426 # The socket appears before recovery finishes; createdb would22427 # fail with "the database system is starting up".22428 if time.monotonic() > deadline:22429 msg = "postgres did not start"22430> raise RuntimeError(msg)22431E RuntimeError: postgres did not start2243222433nixbot/tests/support.py:319: RuntimeError22434______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______22435[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243622437self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2243822439 def setup(self) -> None:22440 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22441 if runner_fixture_id not in self.fixturenames:22442 self.fixturenames.append(runner_fixture_id)22443 # When loop factories are configured, resolve the loop factory22444 # fixture early so that a factory variant change cascades cache22445 # invalidation before any async fixture checks its cache.22446 hook_caller = self.config.hook.pytest_asyncio_loop_factories22447 if hook_caller.get_hookimpls():22448 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22449> return super().setup()22450 ^^^^^^^^^^^^^^^2245122452/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22453_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22454nixbot/tests/conftest.py:33: in postgres_dsn22455 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22456 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22457/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22458 return next(self.gen)22459 ^^^^^^^^^^^^^^22460_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2246122462tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22463dbname = 'orchestrator'2246422465 @contextlib.contextmanager22466 def ephemeral_postgres(22467 tmp_path_factory: pytest.TempPathFactory, dbname: str22468 ) -> Iterator[str]:22469 """Throwaway Postgres on a unix socket with migrations applied."""22470 datadir = tmp_path_factory.mktemp("pgdata")22471 sockdir = tmp_path_factory.mktemp("pgsock")22472 subprocess.run( # noqa: S60322473 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22474 check=True,22475 capture_output=True,22476 )22477 proc = subprocess.Popen( # noqa: S60322478 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22479 stdout=subprocess.DEVNULL,22480 stderr=subprocess.DEVNULL,22481 )22482 try:22483 deadline = time.monotonic() + 3022484 while (22485 subprocess.run( # noqa: S60322486 ["pg_isready", "-h", str(sockdir), "-U", "test"],22487 check=False,22488 capture_output=True,22489 ).returncode22490 != 022491 ):22492 # The socket appears before recovery finishes; createdb would22493 # fail with "the database system is starting up".22494 if time.monotonic() > deadline:22495 msg = "postgres did not start"22496> raise RuntimeError(msg)22497E RuntimeError: postgres did not start2249822499nixbot/tests/support.py:319: RuntimeError22500__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __22501[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142250222503self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2250422505 def setup(self) -> None:22506 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22507 if runner_fixture_id not in self.fixturenames:22508 self.fixturenames.append(runner_fixture_id)22509 # When loop factories are configured, resolve the loop factory22510 # fixture early so that a factory variant change cascades cache22511 # invalidation before any async fixture checks its cache.22512 hook_caller = self.config.hook.pytest_asyncio_loop_factories22513 if hook_caller.get_hookimpls():22514 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22515> return super().setup()22516 ^^^^^^^^^^^^^^^2251722518/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22519_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22520nixbot/tests/conftest.py:33: in postgres_dsn22521 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22522 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22523/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22524 return next(self.gen)22525 ^^^^^^^^^^^^^^22526_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252722528tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22529dbname = 'orchestrator'2253022531 @contextlib.contextmanager22532 def ephemeral_postgres(22533 tmp_path_factory: pytest.TempPathFactory, dbname: str22534 ) -> Iterator[str]:22535 """Throwaway Postgres on a unix socket with migrations applied."""22536 datadir = tmp_path_factory.mktemp("pgdata")22537 sockdir = tmp_path_factory.mktemp("pgsock")22538 subprocess.run( # noqa: S60322539 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22540 check=True,22541 capture_output=True,22542 )22543 proc = subprocess.Popen( # noqa: S60322544 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22545 stdout=subprocess.DEVNULL,22546 stderr=subprocess.DEVNULL,22547 )22548 try:22549 deadline = time.monotonic() + 3022550 while (22551 subprocess.run( # noqa: S60322552 ["pg_isready", "-h", str(sockdir), "-U", "test"],22553 check=False,22554 capture_output=True,22555 ).returncode22556 != 022557 ):22558 # The socket appears before recovery finishes; createdb would22559 # fail with "the database system is starting up".22560 if time.monotonic() > deadline:22561 msg = "postgres did not start"22562> raise RuntimeError(msg)22563E RuntimeError: postgres did not start2256422565nixbot/tests/support.py:319: RuntimeError22566__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __22567[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256822569self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2257022571 def setup(self) -> None:22572 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22573 if runner_fixture_id not in self.fixturenames:22574 self.fixturenames.append(runner_fixture_id)22575 # When loop factories are configured, resolve the loop factory22576 # fixture early so that a factory variant change cascades cache22577 # invalidation before any async fixture checks its cache.22578 hook_caller = self.config.hook.pytest_asyncio_loop_factories22579 if hook_caller.get_hookimpls():22580 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22581> return super().setup()22582 ^^^^^^^^^^^^^^^2258322584/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22585_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22586nixbot/tests/conftest.py:33: in postgres_dsn22587 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22588 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22589/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22590 return next(self.gen)22591 ^^^^^^^^^^^^^^22592_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2259322594tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22595dbname = 'orchestrator'2259622597 @contextlib.contextmanager22598 def ephemeral_postgres(22599 tmp_path_factory: pytest.TempPathFactory, dbname: str22600 ) -> Iterator[str]:22601 """Throwaway Postgres on a unix socket with migrations applied."""22602 datadir = tmp_path_factory.mktemp("pgdata")22603 sockdir = tmp_path_factory.mktemp("pgsock")22604 subprocess.run( # noqa: S60322605 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22606 check=True,22607 capture_output=True,22608 )22609 proc = subprocess.Popen( # noqa: S60322610 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22611 stdout=subprocess.DEVNULL,22612 stderr=subprocess.DEVNULL,22613 )22614 try:22615 deadline = time.monotonic() + 3022616 while (22617 subprocess.run( # noqa: S60322618 ["pg_isready", "-h", str(sockdir), "-U", "test"],22619 check=False,22620 capture_output=True,22621 ).returncode22622 != 022623 ):22624 # The socket appears before recovery finishes; createdb would22625 # fail with "the database system is starting up".22626 if time.monotonic() > deadline:22627 msg = "postgres did not start"22628> raise RuntimeError(msg)22629E RuntimeError: postgres did not start2263022631nixbot/tests/support.py:319: RuntimeError22632______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22633[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142263422635self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2263622637 def setup(self) -> None:22638 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22639 if runner_fixture_id not in self.fixturenames:22640 self.fixturenames.append(runner_fixture_id)22641 # When loop factories are configured, resolve the loop factory22642 # fixture early so that a factory variant change cascades cache22643 # invalidation before any async fixture checks its cache.22644 hook_caller = self.config.hook.pytest_asyncio_loop_factories22645 if hook_caller.get_hookimpls():22646 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22647> return super().setup()22648 ^^^^^^^^^^^^^^^2264922650/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22651_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22652nixbot/tests/conftest.py:33: in postgres_dsn22653 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22654 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22655/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22656 return next(self.gen)22657 ^^^^^^^^^^^^^^22658_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265922660tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22661dbname = 'orchestrator'2266222663 @contextlib.contextmanager22664 def ephemeral_postgres(22665 tmp_path_factory: pytest.TempPathFactory, dbname: str22666 ) -> Iterator[str]:22667 """Throwaway Postgres on a unix socket with migrations applied."""22668 datadir = tmp_path_factory.mktemp("pgdata")22669 sockdir = tmp_path_factory.mktemp("pgsock")22670 subprocess.run( # noqa: S60322671 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22672 check=True,22673 capture_output=True,22674 )22675 proc = subprocess.Popen( # noqa: S60322676 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22677 stdout=subprocess.DEVNULL,22678 stderr=subprocess.DEVNULL,22679 )22680 try:22681 deadline = time.monotonic() + 3022682 while (22683 subprocess.run( # noqa: S60322684 ["pg_isready", "-h", str(sockdir), "-U", "test"],22685 check=False,22686 capture_output=True,22687 ).returncode22688 != 022689 ):22690 # The socket appears before recovery finishes; createdb would22691 # fail with "the database system is starting up".22692 if time.monotonic() > deadline:22693 msg = "postgres did not start"22694> raise RuntimeError(msg)22695E RuntimeError: postgres did not start2269622697nixbot/tests/support.py:319: RuntimeError22698________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22699[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142270022701self = <Coroutine test_restart_build_drops_queued_effect_items>2270222703 def setup(self) -> None:22704 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22705 if runner_fixture_id not in self.fixturenames:22706 self.fixturenames.append(runner_fixture_id)22707 # When loop factories are configured, resolve the loop factory22708 # fixture early so that a factory variant change cascades cache22709 # invalidation before any async fixture checks its cache.22710 hook_caller = self.config.hook.pytest_asyncio_loop_factories22711 if hook_caller.get_hookimpls():22712 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22713> return super().setup()22714 ^^^^^^^^^^^^^^^2271522716/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22717_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22718nixbot/tests/conftest.py:33: in postgres_dsn22719 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22720 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22721/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22722 return next(self.gen)22723 ^^^^^^^^^^^^^^22724_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272522726tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22727dbname = 'orchestrator'2272822729 @contextlib.contextmanager22730 def ephemeral_postgres(22731 tmp_path_factory: pytest.TempPathFactory, dbname: str22732 ) -> Iterator[str]:22733 """Throwaway Postgres on a unix socket with migrations applied."""22734 datadir = tmp_path_factory.mktemp("pgdata")22735 sockdir = tmp_path_factory.mktemp("pgsock")22736 subprocess.run( # noqa: S60322737 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22738 check=True,22739 capture_output=True,22740 )22741 proc = subprocess.Popen( # noqa: S60322742 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22743 stdout=subprocess.DEVNULL,22744 stderr=subprocess.DEVNULL,22745 )22746 try:22747 deadline = time.monotonic() + 3022748 while (22749 subprocess.run( # noqa: S60322750 ["pg_isready", "-h", str(sockdir), "-U", "test"],22751 check=False,22752 capture_output=True,22753 ).returncode22754 != 022755 ):22756 # The socket appears before recovery finishes; createdb would22757 # fail with "the database system is starting up".22758 if time.monotonic() > deadline:22759 msg = "postgres did not start"22760> raise RuntimeError(msg)22761E RuntimeError: postgres did not start2276222763nixbot/tests/support.py:319: RuntimeError22764___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22765[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276622767self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2276822769 def setup(self) -> None:22770 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22771 if runner_fixture_id not in self.fixturenames:22772 self.fixturenames.append(runner_fixture_id)22773 # When loop factories are configured, resolve the loop factory22774 # fixture early so that a factory variant change cascades cache22775 # invalidation before any async fixture checks its cache.22776 hook_caller = self.config.hook.pytest_asyncio_loop_factories22777 if hook_caller.get_hookimpls():22778 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22779> return super().setup()22780 ^^^^^^^^^^^^^^^2278122782/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22783_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22784nixbot/tests/conftest.py:33: in postgres_dsn22785 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22786 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22787/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22788 return next(self.gen)22789 ^^^^^^^^^^^^^^22790_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2279122792tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22793dbname = 'orchestrator'2279422795 @contextlib.contextmanager22796 def ephemeral_postgres(22797 tmp_path_factory: pytest.TempPathFactory, dbname: str22798 ) -> Iterator[str]:22799 """Throwaway Postgres on a unix socket with migrations applied."""22800 datadir = tmp_path_factory.mktemp("pgdata")22801 sockdir = tmp_path_factory.mktemp("pgsock")22802 subprocess.run( # noqa: S60322803 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22804 check=True,22805 capture_output=True,22806 )22807 proc = subprocess.Popen( # noqa: S60322808 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22809 stdout=subprocess.DEVNULL,22810 stderr=subprocess.DEVNULL,22811 )22812 try:22813 deadline = time.monotonic() + 3022814 while (22815 subprocess.run( # noqa: S60322816 ["pg_isready", "-h", str(sockdir), "-U", "test"],22817 check=False,22818 capture_output=True,22819 ).returncode22820 != 022821 ):22822 # The socket appears before recovery finishes; createdb would22823 # fail with "the database system is starting up".22824 if time.monotonic() > deadline:22825 msg = "postgres did not start"22826> raise RuntimeError(msg)22827E RuntimeError: postgres did not start2282822829nixbot/tests/support.py:319: RuntimeError22830_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22831[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142283222833self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2283422835 def setup(self) -> None:22836 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22837 if runner_fixture_id not in self.fixturenames:22838 self.fixturenames.append(runner_fixture_id)22839 # When loop factories are configured, resolve the loop factory22840 # fixture early so that a factory variant change cascades cache22841 # invalidation before any async fixture checks its cache.22842 hook_caller = self.config.hook.pytest_asyncio_loop_factories22843 if hook_caller.get_hookimpls():22844 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22845> return super().setup()22846 ^^^^^^^^^^^^^^^2284722848/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22849_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22850nixbot/tests/conftest.py:33: in postgres_dsn22851 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22852 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22853/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22854 return next(self.gen)22855 ^^^^^^^^^^^^^^22856_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285722858tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22859dbname = 'orchestrator'2286022861 @contextlib.contextmanager22862 def ephemeral_postgres(22863 tmp_path_factory: pytest.TempPathFactory, dbname: str22864 ) -> Iterator[str]:22865 """Throwaway Postgres on a unix socket with migrations applied."""22866 datadir = tmp_path_factory.mktemp("pgdata")22867 sockdir = tmp_path_factory.mktemp("pgsock")22868 subprocess.run( # noqa: S60322869 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22870 check=True,22871 capture_output=True,22872 )22873 proc = subprocess.Popen( # noqa: S60322874 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22875 stdout=subprocess.DEVNULL,22876 stderr=subprocess.DEVNULL,22877 )22878 try:22879 deadline = time.monotonic() + 3022880 while (22881 subprocess.run( # noqa: S60322882 ["pg_isready", "-h", str(sockdir), "-U", "test"],22883 check=False,22884 capture_output=True,22885 ).returncode22886 != 022887 ):22888 # The socket appears before recovery finishes; createdb would22889 # fail with "the database system is starting up".22890 if time.monotonic() > deadline:22891 msg = "postgres did not start"22892> raise RuntimeError(msg)22893E RuntimeError: postgres did not start2289422895nixbot/tests/support.py:319: RuntimeError22896_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22897[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289822899self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2290022901 def setup(self) -> None:22902 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22903 if runner_fixture_id not in self.fixturenames:22904 self.fixturenames.append(runner_fixture_id)22905 # When loop factories are configured, resolve the loop factory22906 # fixture early so that a factory variant change cascades cache22907 # invalidation before any async fixture checks its cache.22908 hook_caller = self.config.hook.pytest_asyncio_loop_factories22909 if hook_caller.get_hookimpls():22910 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22911> return super().setup()22912 ^^^^^^^^^^^^^^^2291322914/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22915_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22916nixbot/tests/conftest.py:33: in postgres_dsn22917 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22918 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22919/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22920 return next(self.gen)22921 ^^^^^^^^^^^^^^22922_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2292322924tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22925dbname = 'orchestrator'2292622927 @contextlib.contextmanager22928 def ephemeral_postgres(22929 tmp_path_factory: pytest.TempPathFactory, dbname: str22930 ) -> Iterator[str]:22931 """Throwaway Postgres on a unix socket with migrations applied."""22932 datadir = tmp_path_factory.mktemp("pgdata")22933 sockdir = tmp_path_factory.mktemp("pgsock")22934 subprocess.run( # noqa: S60322935 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22936 check=True,22937 capture_output=True,22938 )22939 proc = subprocess.Popen( # noqa: S60322940 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22941 stdout=subprocess.DEVNULL,22942 stderr=subprocess.DEVNULL,22943 )22944 try:22945 deadline = time.monotonic() + 3022946 while (22947 subprocess.run( # noqa: S60322948 ["pg_isready", "-h", str(sockdir), "-U", "test"],22949 check=False,22950 capture_output=True,22951 ).returncode22952 != 022953 ):22954 # The socket appears before recovery finishes; createdb would22955 # fail with "the database system is starting up".22956 if time.monotonic() > deadline:22957 msg = "postgres did not start"22958> raise RuntimeError(msg)22959E RuntimeError: postgres did not start2296022961nixbot/tests/support.py:319: RuntimeError22962______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22963[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142296422965self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2296622967 def setup(self) -> None:22968 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22969 if runner_fixture_id not in self.fixturenames:22970 self.fixturenames.append(runner_fixture_id)22971 # When loop factories are configured, resolve the loop factory22972 # fixture early so that a factory variant change cascades cache22973 # invalidation before any async fixture checks its cache.22974 hook_caller = self.config.hook.pytest_asyncio_loop_factories22975 if hook_caller.get_hookimpls():22976 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22977> return super().setup()22978 ^^^^^^^^^^^^^^^2297922980/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22981_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22982nixbot/tests/conftest.py:33: in postgres_dsn22983 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22984 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22985/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22986 return next(self.gen)22987 ^^^^^^^^^^^^^^22988_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2298922990tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22991dbname = 'orchestrator'2299222993 @contextlib.contextmanager22994 def ephemeral_postgres(22995 tmp_path_factory: pytest.TempPathFactory, dbname: str22996 ) -> Iterator[str]:22997 """Throwaway Postgres on a unix socket with migrations applied."""22998 datadir = tmp_path_factory.mktemp("pgdata")22999 sockdir = tmp_path_factory.mktemp("pgsock")23000 subprocess.run( # noqa: S60323001 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23002 check=True,23003 capture_output=True,23004 )23005 proc = subprocess.Popen( # noqa: S60323006 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23007 stdout=subprocess.DEVNULL,23008 stderr=subprocess.DEVNULL,23009 )23010 try:23011 deadline = time.monotonic() + 3023012 while (23013 subprocess.run( # noqa: S60323014 ["pg_isready", "-h", str(sockdir), "-U", "test"],23015 check=False,23016 capture_output=True,23017 ).returncode23018 != 023019 ):23020 # The socket appears before recovery finishes; createdb would23021 # fail with "the database system is starting up".23022 if time.monotonic() > deadline:23023 msg = "postgres did not start"23024> raise RuntimeError(msg)23025E RuntimeError: postgres did not start2302623027nixbot/tests/support.py:319: RuntimeError23028____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____23029[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142303023031self = <Coroutine test_attach_to_already_terminal_build_replays_status>2303223033 def setup(self) -> None:23034 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23035 if runner_fixture_id not in self.fixturenames:23036 self.fixturenames.append(runner_fixture_id)23037 # When loop factories are configured, resolve the loop factory23038 # fixture early so that a factory variant change cascades cache23039 # invalidation before any async fixture checks its cache.23040 hook_caller = self.config.hook.pytest_asyncio_loop_factories23041 if hook_caller.get_hookimpls():23042 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23043> return super().setup()23044 ^^^^^^^^^^^^^^^2304523046/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23047_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23048nixbot/tests/conftest.py:33: in postgres_dsn23049 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23050 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23051/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23052 return next(self.gen)23053 ^^^^^^^^^^^^^^23054_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2305523056tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23057dbname = 'orchestrator'2305823059 @contextlib.contextmanager23060 def ephemeral_postgres(23061 tmp_path_factory: pytest.TempPathFactory, dbname: str23062 ) -> Iterator[str]:23063 """Throwaway Postgres on a unix socket with migrations applied."""23064 datadir = tmp_path_factory.mktemp("pgdata")23065 sockdir = tmp_path_factory.mktemp("pgsock")23066 subprocess.run( # noqa: S60323067 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23068 check=True,23069 capture_output=True,23070 )23071 proc = subprocess.Popen( # noqa: S60323072 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23073 stdout=subprocess.DEVNULL,23074 stderr=subprocess.DEVNULL,23075 )23076 try:23077 deadline = time.monotonic() + 3023078 while (23079 subprocess.run( # noqa: S60323080 ["pg_isready", "-h", str(sockdir), "-U", "test"],23081 check=False,23082 capture_output=True,23083 ).returncode23084 != 023085 ):23086 # The socket appears before recovery finishes; createdb would23087 # fail with "the database system is starting up".23088 if time.monotonic() > deadline:23089 msg = "postgres did not start"23090> raise RuntimeError(msg)23091E RuntimeError: postgres did not start2309223093nixbot/tests/support.py:319: RuntimeError23094___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____23095[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142309623097self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2309823099 def setup(self) -> None:23100 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23101 if runner_fixture_id not in self.fixturenames:23102 self.fixturenames.append(runner_fixture_id)23103 # When loop factories are configured, resolve the loop factory23104 # fixture early so that a factory variant change cascades cache23105 # invalidation before any async fixture checks its cache.23106 hook_caller = self.config.hook.pytest_asyncio_loop_factories23107 if hook_caller.get_hookimpls():23108 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23109> return super().setup()23110 ^^^^^^^^^^^^^^^2311123112/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23113_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23114nixbot/tests/conftest.py:33: in postgres_dsn23115 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23116 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23117/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23118 return next(self.gen)23119 ^^^^^^^^^^^^^^23120_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2312123122tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23123dbname = 'orchestrator'2312423125 @contextlib.contextmanager23126 def ephemeral_postgres(23127 tmp_path_factory: pytest.TempPathFactory, dbname: str23128 ) -> Iterator[str]:23129 """Throwaway Postgres on a unix socket with migrations applied."""23130 datadir = tmp_path_factory.mktemp("pgdata")23131 sockdir = tmp_path_factory.mktemp("pgsock")23132 subprocess.run( # noqa: S60323133 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23134 check=True,23135 capture_output=True,23136 )23137 proc = subprocess.Popen( # noqa: S60323138 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23139 stdout=subprocess.DEVNULL,23140 stderr=subprocess.DEVNULL,23141 )23142 try:23143 deadline = time.monotonic() + 3023144 while (23145 subprocess.run( # noqa: S60323146 ["pg_isready", "-h", str(sockdir), "-U", "test"],23147 check=False,23148 capture_output=True,23149 ).returncode23150 != 023151 ):23152 # The socket appears before recovery finishes; createdb would23153 # fail with "the database system is starting up".23154 if time.monotonic() > deadline:23155 msg = "postgres did not start"23156> raise RuntimeError(msg)23157E RuntimeError: postgres did not start2315823159nixbot/tests/support.py:319: RuntimeError23160____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____23161[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142316223163self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2316423165 def setup(self) -> None:23166 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23167 if runner_fixture_id not in self.fixturenames:23168 self.fixturenames.append(runner_fixture_id)23169 # When loop factories are configured, resolve the loop factory23170 # fixture early so that a factory variant change cascades cache23171 # invalidation before any async fixture checks its cache.23172 hook_caller = self.config.hook.pytest_asyncio_loop_factories23173 if hook_caller.get_hookimpls():23174 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23175> return super().setup()23176 ^^^^^^^^^^^^^^^2317723178/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23179_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23180nixbot/tests/conftest.py:33: in postgres_dsn23181 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23182 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23183/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23184 return next(self.gen)23185 ^^^^^^^^^^^^^^23186_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2318723188tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23189dbname = 'orchestrator'2319023191 @contextlib.contextmanager23192 def ephemeral_postgres(23193 tmp_path_factory: pytest.TempPathFactory, dbname: str23194 ) -> Iterator[str]:23195 """Throwaway Postgres on a unix socket with migrations applied."""23196 datadir = tmp_path_factory.mktemp("pgdata")23197 sockdir = tmp_path_factory.mktemp("pgsock")23198 subprocess.run( # noqa: S60323199 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23200 check=True,23201 capture_output=True,23202 )23203 proc = subprocess.Popen( # noqa: S60323204 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23205 stdout=subprocess.DEVNULL,23206 stderr=subprocess.DEVNULL,23207 )23208 try:23209 deadline = time.monotonic() + 3023210 while (23211 subprocess.run( # noqa: S60323212 ["pg_isready", "-h", str(sockdir), "-U", "test"],23213 check=False,23214 capture_output=True,23215 ).returncode23216 != 023217 ):23218 # The socket appears before recovery finishes; createdb would23219 # fail with "the database system is starting up".23220 if time.monotonic() > deadline:23221 msg = "postgres did not start"23222> raise RuntimeError(msg)23223E RuntimeError: postgres did not start2322423225nixbot/tests/support.py:319: RuntimeError23226__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________23227[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142322823229self = <Coroutine test_post_process_paths_are_forge_scoped>2323023231 def setup(self) -> None:23232 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23233 if runner_fixture_id not in self.fixturenames:23234 self.fixturenames.append(runner_fixture_id)23235 # When loop factories are configured, resolve the loop factory23236 # fixture early so that a factory variant change cascades cache23237 # invalidation before any async fixture checks its cache.23238 hook_caller = self.config.hook.pytest_asyncio_loop_factories23239 if hook_caller.get_hookimpls():23240 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23241> return super().setup()23242 ^^^^^^^^^^^^^^^2324323244/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23245_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23246nixbot/tests/conftest.py:33: in postgres_dsn23247 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23248 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23249/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23250 return next(self.gen)23251 ^^^^^^^^^^^^^^23252_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2325323254tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23255dbname = 'orchestrator'2325623257 @contextlib.contextmanager23258 def ephemeral_postgres(23259 tmp_path_factory: pytest.TempPathFactory, dbname: str23260 ) -> Iterator[str]:23261 """Throwaway Postgres on a unix socket with migrations applied."""23262 datadir = tmp_path_factory.mktemp("pgdata")23263 sockdir = tmp_path_factory.mktemp("pgsock")23264 subprocess.run( # noqa: S60323265 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23266 check=True,23267 capture_output=True,23268 )23269 proc = subprocess.Popen( # noqa: S60323270 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23271 stdout=subprocess.DEVNULL,23272 stderr=subprocess.DEVNULL,23273 )23274 try:23275 deadline = time.monotonic() + 3023276 while (23277 subprocess.run( # noqa: S60323278 ["pg_isready", "-h", str(sockdir), "-U", "test"],23279 check=False,23280 capture_output=True,23281 ).returncode23282 != 023283 ):23284 # The socket appears before recovery finishes; createdb would23285 # fail with "the database system is starting up".23286 if time.monotonic() > deadline:23287 msg = "postgres did not start"23288> raise RuntimeError(msg)23289E RuntimeError: postgres did not start2329023291nixbot/tests/support.py:319: RuntimeError23292_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______23293[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142329423295self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2329623297 def setup(self) -> None:23298 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23299 if runner_fixture_id not in self.fixturenames:23300 self.fixturenames.append(runner_fixture_id)23301 # When loop factories are configured, resolve the loop factory23302 # fixture early so that a factory variant change cascades cache23303 # invalidation before any async fixture checks its cache.23304 hook_caller = self.config.hook.pytest_asyncio_loop_factories23305 if hook_caller.get_hookimpls():23306 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23307> return super().setup()23308 ^^^^^^^^^^^^^^^2330923310/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23311_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23312nixbot/tests/conftest.py:33: in postgres_dsn23313 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23314 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23315/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23316 return next(self.gen)23317 ^^^^^^^^^^^^^^23318_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2331923320tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23321dbname = 'orchestrator'2332223323 @contextlib.contextmanager23324 def ephemeral_postgres(23325 tmp_path_factory: pytest.TempPathFactory, dbname: str23326 ) -> Iterator[str]:23327 """Throwaway Postgres on a unix socket with migrations applied."""23328 datadir = tmp_path_factory.mktemp("pgdata")23329 sockdir = tmp_path_factory.mktemp("pgsock")23330 subprocess.run( # noqa: S60323331 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23332 check=True,23333 capture_output=True,23334 )23335 proc = subprocess.Popen( # noqa: S60323336 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23337 stdout=subprocess.DEVNULL,23338 stderr=subprocess.DEVNULL,23339 )23340 try:23341 deadline = time.monotonic() + 3023342 while (23343 subprocess.run( # noqa: S60323344 ["pg_isready", "-h", str(sockdir), "-U", "test"],23345 check=False,23346 capture_output=True,23347 ).returncode23348 != 023349 ):23350 # The socket appears before recovery finishes; createdb would23351 # fail with "the database system is starting up".23352 if time.monotonic() > deadline:23353 msg = "postgres did not start"23354> raise RuntimeError(msg)23355E RuntimeError: postgres did not start2335623357nixbot/tests/support.py:319: RuntimeError23358_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____23359[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142336023361self = <Coroutine test_reuse_post_process_error_still_reports_status>2336223363 def setup(self) -> None:23364 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23365 if runner_fixture_id not in self.fixturenames:23366 self.fixturenames.append(runner_fixture_id)23367 # When loop factories are configured, resolve the loop factory23368 # fixture early so that a factory variant change cascades cache23369 # invalidation before any async fixture checks its cache.23370 hook_caller = self.config.hook.pytest_asyncio_loop_factories23371 if hook_caller.get_hookimpls():23372 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23373> return super().setup()23374 ^^^^^^^^^^^^^^^2337523376/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23377_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23378nixbot/tests/conftest.py:33: in postgres_dsn23379 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23380 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23381/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23382 return next(self.gen)23383 ^^^^^^^^^^^^^^23384_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2338523386tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23387dbname = 'orchestrator'2338823389 @contextlib.contextmanager23390 def ephemeral_postgres(23391 tmp_path_factory: pytest.TempPathFactory, dbname: str23392 ) -> Iterator[str]:23393 """Throwaway Postgres on a unix socket with migrations applied."""23394 datadir = tmp_path_factory.mktemp("pgdata")23395 sockdir = tmp_path_factory.mktemp("pgsock")23396 subprocess.run( # noqa: S60323397 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23398 check=True,23399 capture_output=True,23400 )23401 proc = subprocess.Popen( # noqa: S60323402 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23403 stdout=subprocess.DEVNULL,23404 stderr=subprocess.DEVNULL,23405 )23406 try:23407 deadline = time.monotonic() + 3023408 while (23409 subprocess.run( # noqa: S60323410 ["pg_isready", "-h", str(sockdir), "-U", "test"],23411 check=False,23412 capture_output=True,23413 ).returncode23414 != 023415 ):23416 # The socket appears before recovery finishes; createdb would23417 # fail with "the database system is starting up".23418 if time.monotonic() > deadline:23419 msg = "postgres did not start"23420> raise RuntimeError(msg)23421E RuntimeError: postgres did not start2342223423nixbot/tests/support.py:319: RuntimeError23424____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____23425[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142342623427self = <Coroutine test_reuse_with_missing_output_still_post_processes>2342823429 def setup(self) -> None:23430 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23431 if runner_fixture_id not in self.fixturenames:23432 self.fixturenames.append(runner_fixture_id)23433 # When loop factories are configured, resolve the loop factory23434 # fixture early so that a factory variant change cascades cache23435 # invalidation before any async fixture checks its cache.23436 hook_caller = self.config.hook.pytest_asyncio_loop_factories23437 if hook_caller.get_hookimpls():23438 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23439> return super().setup()23440 ^^^^^^^^^^^^^^^2344123442/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23443_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23444nixbot/tests/conftest.py:33: in postgres_dsn23445 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23446 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23447/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23448 return next(self.gen)23449 ^^^^^^^^^^^^^^23450_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2345123452tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/p...atch/a3a33ba29a8739a6/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23453dbname = 'orchestrator'2345423455 @contextlib.contextmanager23456 def ephemeral_postgres(23457 tmp_path_factory: pytest.TempPathFactory, dbname: str23458 ) -> Iterator[str]:23459 """Throwaway Postgres on a unix socket with migrations applied."""23460 datadir = tmp_path_factory.mktemp("pgdata")23461 sockdir = tmp_path_factory.mktemp("pgsock")23462 subprocess.run( # noqa: S60323463 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23464 check=True,23465 capture_output=True,23466 )23467 proc = subprocess.Popen( # noqa: S60323468 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23469 stdout=subprocess.DEVNULL,23470 stderr=subprocess.DEVNULL,23471 )23472 try:23473 deadline = time.monotonic() + 3023474 while (23475 subprocess.run( # noqa: S60323476 ["pg_isready", "-h", str(sockdir), "-U", "test"],23477 check=False,23478 capture_output=True,23479 ).returncode23480 != 023481 ):23482 # The socket appears before recovery finishes; createdb would23483 # fail with "the database system is starting up".23484 if time.monotonic() > deadline:23485 msg = "postgres did not start"23486> raise RuntimeError(msg)23487E RuntimeError: postgres did not start2348823489nixbot/tests/support.py:319: RuntimeError23490=========================== short test summary info ============================23491ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23492ERROR nixbot/tests/test_schedules.py::test_concurrent_replace_schedules_do_not_collide23493ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23494ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23495ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23496ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23497ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23498ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23499ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23500ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23501ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23502ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23503ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23504ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23505ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23506ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23507ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23508ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23509ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23510ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23511ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23512ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23513ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23514ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23515ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23516ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23517ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23518ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23519ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23520ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23521ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23522ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23523ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23524ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23525ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23526ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23527ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23528ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23529ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23530ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23531ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23532ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23533ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23534ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23535ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23536ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23537ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23538ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23539ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23540ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23541ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23542ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23543ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23544ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23545ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23546ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23547ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23548ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23549ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23550ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23551ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23552ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23553ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23554ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[0]23555ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23556ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23557ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23558ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23559ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23560ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23561ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23562ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23563ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23564ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23565ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[1]23566ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23567ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23568ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23569ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23570ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23571ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23572ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23573ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23574ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23575ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23576ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23577ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23578ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23579ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23580ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23581ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23582ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23583ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23584ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23585ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23586ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23587ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23588ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[2]23589ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23590ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23591ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23592ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23593ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23594ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23595ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23596ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23597ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23598ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23599ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23600ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23601ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23602ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[3]23603ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23604ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23605ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23606ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23607ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23608ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23609ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23610ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23611ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23612ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[4]23613ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23614ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23615ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23616ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23617ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23618ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23619ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23620ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23621ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23622ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23623ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23624ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[5]23625ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23626ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23627ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23628ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23629ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23630ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23631ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23632ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23633ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23634ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23635ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23636ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23637ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23638ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23639ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[6]23640ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23641ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23642ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23643ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23644ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23645ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23646ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23647ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23648ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23649ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23650ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[7]23651ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23652ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23653ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23654ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23655ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23656ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23657ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23658ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23659ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23660ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23661ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23662ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23663ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23664ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23665ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23666ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23667ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23668ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23669ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23670ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23671ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23672ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23673ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23674ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23675ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23676ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23677ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23678ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23679ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23680ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23681ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23682ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23683ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23684ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23685ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23686ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23687ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23688ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23689ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23690ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23691ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23692ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23693ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23694ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23695ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23696ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23697ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23698ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23699ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23700ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23701ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23702ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23703ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23704ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23705ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23706ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23707ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23708ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23709ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23710ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23711ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23712ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23713ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23714ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23715ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23716ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23717ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23718ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23719ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23720ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23721ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23722ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23723ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23724ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23725ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23726ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23727ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23728ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23729ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23730ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23731ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23732ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23733ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23734ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23735ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23736ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23737ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23738ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23739ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23740ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23741ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23742ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23743ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23744ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23745ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23746ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23747ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23748ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23749ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23750ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23751ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23752ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23753ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23754ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23755ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23756ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23757ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23758ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23759ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23760ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23761ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23762ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23763ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23764ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23765ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23766ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23767ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23768ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23769ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23770ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23771ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23772ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23773ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23774ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23775ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23776ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23777ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23778ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23779ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23780ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23781ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23782ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23783ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23784ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23785ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23786ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23787ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23788ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23789ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23790ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23791ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23792ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23793ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23794ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23795ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23796ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23797ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23798ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23799ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23800ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23801ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23802ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23803ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23804ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23805ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23806ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23807ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23808ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23809ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23810ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423811ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23812ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23813ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23814ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23815ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23816ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23817ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23818ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23819ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23820ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23821ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23822ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23823ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23824ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23825ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23826ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23827ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23828ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23829ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23830ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23831ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23832ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23833ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23834ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23835ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23836ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23837ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23838ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23839ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23840ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23841ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23842ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23843ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23844ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23845ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23846ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23847ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23848ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23849ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23850ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23851ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23852ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23853ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23854ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23855================= 477 passed, 29 skipped, 364 errors in 42.23s =================