python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #451
· 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/s3xvhv4yqpdrzymilmmzl402lvdw6vmw-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/3/scratch/86057315c4491ad0/build/ in /nix/store/m24m6dwrxwj5qmc4nnp9q627nb372qcs-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/m24m6dwrxwj5qmc4nnp9q627nb372qcs-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/m24m6dwrxwj5qmc4nnp9q627nb372qcs-python3.14-nixbot-tests/lib /nix/store/m24m6dwrxwj5qmc4nnp9q627nb372qcs-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/3/scratch/86057315c4491ad0/build/ in /nix/store/pd39765jqhpi55d24z9d7zjhxf2qpcg1-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/pd39765jqhpi55d24z9d7zjhxf2qpcg1-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/m24m6dwrxwj5qmc4nnp9q627nb372qcs-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/3/scratch/86057315c4491ad0/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 [861 items]112113....................ssssssss...................................sssssssss [ 8%]114........................................................sss............. [ 16%]115.s...................................................................... [ 25%]116........................................................................ [ 33%]117...............ssss.........................................s........... [ 41%]118........................................................................ [ 50%]119..............................sEEEEEE......E.....EE.EEEEEEEEE.E..EEEEEEE [ 58%]120EEEEEEEEEEEEEEE.EEEEEEEE.EE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 66%]121EEEEEEEEEEEEEEEE.EEEEEEEEEE.EEEEEEEE.EE.EEEEEEEEEEEEEEEEEEEE.EEEEEEE.E.E [ 75%]122E..EsEEsEE.EEEEEEEE.EEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 83%]123EEEEEEEE..EEEE........EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]124EEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]125==================================== ERRORS ====================================126_________________ ERROR at setup of test_repo_list_and_toggle __________________127[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14128129fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>130request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>131132 @pytest.hookimpl(wrapper=True)133 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:134 if (135 fixturedef.argname == "event_loop_policy"136 and fixturedef.func.__module__ != __name__137 ):138 warnings.warn(139 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),140 )141 asyncio_mode = _get_asyncio_mode(request.config)142 if not _is_asyncio_fixture_function(fixturedef.func):143 if asyncio_mode == Mode.STRICT:144 # Ignore async fixtures without explicit asyncio mark in strict mode145 # This applies to pytest_trio fixtures, for example146 return (yield)147 if not _is_coroutine_or_asyncgen(fixturedef.func):148> return (yield)149 ^^^^^150151/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 152_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 153nixbot/tests/conftest.py:33: in postgres_dsn154 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:155 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^156/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__157 return next(self.gen)158 ^^^^^^^^^^^^^^159_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 160161tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')162dbname = 'cli'163164 @contextlib.contextmanager165 def ephemeral_postgres(166 tmp_path_factory: pytest.TempPathFactory, dbname: str167 ) -> Iterator[str]:168 """Throwaway Postgres on a unix socket with migrations applied."""169 datadir = tmp_path_factory.mktemp("pgdata")170 sockdir = tmp_path_factory.mktemp("pgsock")171 subprocess.run( # noqa: S603172 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],173 check=True,174 capture_output=True,175 )176 proc = subprocess.Popen( # noqa: S603177 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],178 stdout=subprocess.DEVNULL,179 stderr=subprocess.DEVNULL,180 )181 try:182 deadline = time.monotonic() + 30183 while (184 subprocess.run( # noqa: S603185 ["pg_isready", "-h", str(sockdir), "-U", "test"],186 check=False,187 capture_output=True,188 ).returncode189 != 0190 ):191 # The socket appears before recovery finishes; createdb would192 # fail with "the database system is starting up".193 if time.monotonic() > deadline:194 msg = "postgres did not start"195> raise RuntimeError(msg)196E RuntimeError: postgres did not start197198nixbot/tests/support.py:319: RuntimeError199__________________ ERROR at setup of test_build_list_and_view __________________200[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14201202request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>203tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')204205 @pytest.fixture(scope="module")206 def postgres_dsn(207 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory208 ) -> Iterator[str]:209 if shutil.which("initdb") is None:210 pytest.skip("postgresql not available")211 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")212> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:213 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^214215nixbot/tests/conftest.py:33: 216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 217/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__218 return next(self.gen)219 ^^^^^^^^^^^^^^220_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 221222tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')223dbname = 'cli'224225 @contextlib.contextmanager226 def ephemeral_postgres(227 tmp_path_factory: pytest.TempPathFactory, dbname: str228 ) -> Iterator[str]:229 """Throwaway Postgres on a unix socket with migrations applied."""230 datadir = tmp_path_factory.mktemp("pgdata")231 sockdir = tmp_path_factory.mktemp("pgsock")232 subprocess.run( # noqa: S603233 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],234 check=True,235 capture_output=True,236 )237 proc = subprocess.Popen( # noqa: S603238 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],239 stdout=subprocess.DEVNULL,240 stderr=subprocess.DEVNULL,241 )242 try:243 deadline = time.monotonic() + 30244 while (245 subprocess.run( # noqa: S603246 ["pg_isready", "-h", str(sockdir), "-U", "test"],247 check=False,248 capture_output=True,249 ).returncode250 != 0251 ):252 # The socket appears before recovery finishes; createdb would253 # fail with "the database system is starting up".254 if time.monotonic() > deadline:255 msg = "postgres did not start"256> raise RuntimeError(msg)257E RuntimeError: postgres did not start258259nixbot/tests/support.py:319: RuntimeError260_________________ ERROR at setup of test_build_restart_cancel __________________261[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14262263request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')265266 @pytest.fixture(scope="module")267 def postgres_dsn(268 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory269 ) -> Iterator[str]:270 if shutil.which("initdb") is None:271 pytest.skip("postgresql not available")272 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")273> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:274 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^275276nixbot/tests/conftest.py:33: 277_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 278/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__279 return next(self.gen)280 ^^^^^^^^^^^^^^281_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 282283tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')284dbname = 'cli'285286 @contextlib.contextmanager287 def ephemeral_postgres(288 tmp_path_factory: pytest.TempPathFactory, dbname: str289 ) -> Iterator[str]:290 """Throwaway Postgres on a unix socket with migrations applied."""291 datadir = tmp_path_factory.mktemp("pgdata")292 sockdir = tmp_path_factory.mktemp("pgsock")293 subprocess.run( # noqa: S603294 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],295 check=True,296 capture_output=True,297 )298 proc = subprocess.Popen( # noqa: S603299 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],300 stdout=subprocess.DEVNULL,301 stderr=subprocess.DEVNULL,302 )303 try:304 deadline = time.monotonic() + 30305 while (306 subprocess.run( # noqa: S603307 ["pg_isready", "-h", str(sockdir), "-U", "test"],308 check=False,309 capture_output=True,310 ).returncode311 != 0312 ):313 # The socket appears before recovery finishes; createdb would314 # fail with "the database system is starting up".315 if time.monotonic() > deadline:316 msg = "postgres did not start"317> raise RuntimeError(msg)318E RuntimeError: postgres did not start319320nixbot/tests/support.py:319: RuntimeError321_______________ ERROR at setup of test_log_summary_attr_and_drv ________________322[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14323324request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')326327 @pytest.fixture(scope="module")328 def postgres_dsn(329 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory330 ) -> Iterator[str]:331 if shutil.which("initdb") is None:332 pytest.skip("postgresql not available")333 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")334> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:335 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^336337nixbot/tests/conftest.py:33: 338_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 339/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__340 return next(self.gen)341 ^^^^^^^^^^^^^^342_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 343344tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')345dbname = 'cli'346347 @contextlib.contextmanager348 def ephemeral_postgres(349 tmp_path_factory: pytest.TempPathFactory, dbname: str350 ) -> Iterator[str]:351 """Throwaway Postgres on a unix socket with migrations applied."""352 datadir = tmp_path_factory.mktemp("pgdata")353 sockdir = tmp_path_factory.mktemp("pgsock")354 subprocess.run( # noqa: S603355 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],356 check=True,357 capture_output=True,358 )359 proc = subprocess.Popen( # noqa: S603360 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],361 stdout=subprocess.DEVNULL,362 stderr=subprocess.DEVNULL,363 )364 try:365 deadline = time.monotonic() + 30366 while (367 subprocess.run( # noqa: S603368 ["pg_isready", "-h", str(sockdir), "-U", "test"],369 check=False,370 capture_output=True,371 ).returncode372 != 0373 ):374 # The socket appears before recovery finishes; createdb would375 # fail with "the database system is starting up".376 if time.monotonic() > deadline:377 msg = "postgres did not start"378> raise RuntimeError(msg)379E RuntimeError: postgres did not start380381nixbot/tests/support.py:319: RuntimeError382_______________ ERROR at setup of test_repo_and_build_inference ________________383[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14384385request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>386tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')387388 @pytest.fixture(scope="module")389 def postgres_dsn(390 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory391 ) -> Iterator[str]:392 if shutil.which("initdb") is None:393 pytest.skip("postgresql not available")394 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")395> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:396 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^397398nixbot/tests/conftest.py:33: 399_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 400/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__401 return next(self.gen)402 ^^^^^^^^^^^^^^403_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 404405tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')406dbname = 'cli'407408 @contextlib.contextmanager409 def ephemeral_postgres(410 tmp_path_factory: pytest.TempPathFactory, dbname: str411 ) -> Iterator[str]:412 """Throwaway Postgres on a unix socket with migrations applied."""413 datadir = tmp_path_factory.mktemp("pgdata")414 sockdir = tmp_path_factory.mktemp("pgsock")415 subprocess.run( # noqa: S603416 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],417 check=True,418 capture_output=True,419 )420 proc = subprocess.Popen( # noqa: S603421 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],422 stdout=subprocess.DEVNULL,423 stderr=subprocess.DEVNULL,424 )425 try:426 deadline = time.monotonic() + 30427 while (428 subprocess.run( # noqa: S603429 ["pg_isready", "-h", str(sockdir), "-U", "test"],430 check=False,431 capture_output=True,432 ).returncode433 != 0434 ):435 # The socket appears before recovery finishes; createdb would436 # fail with "the database system is starting up".437 if time.monotonic() > deadline:438 msg = "postgres did not start"439> raise RuntimeError(msg)440E RuntimeError: postgres did not start441442nixbot/tests/support.py:319: RuntimeError443______________________ ERROR at setup of test_auth_status ______________________444[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14445446request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>447tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')448449 @pytest.fixture(scope="module")450 def postgres_dsn(451 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory452 ) -> Iterator[str]:453 if shutil.which("initdb") is None:454 pytest.skip("postgresql not available")455 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")456> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:457 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^458459nixbot/tests/conftest.py:33: 460_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 461/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__462 return next(self.gen)463 ^^^^^^^^^^^^^^464_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 465466tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')467dbname = 'cli'468469 @contextlib.contextmanager470 def ephemeral_postgres(471 tmp_path_factory: pytest.TempPathFactory, dbname: str472 ) -> Iterator[str]:473 """Throwaway Postgres on a unix socket with migrations applied."""474 datadir = tmp_path_factory.mktemp("pgdata")475 sockdir = tmp_path_factory.mktemp("pgsock")476 subprocess.run( # noqa: S603477 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],478 check=True,479 capture_output=True,480 )481 proc = subprocess.Popen( # noqa: S603482 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],483 stdout=subprocess.DEVNULL,484 stderr=subprocess.DEVNULL,485 )486 try:487 deadline = time.monotonic() + 30488 while (489 subprocess.run( # noqa: S603490 ["pg_isready", "-h", str(sockdir), "-U", "test"],491 check=False,492 capture_output=True,493 ).returncode494 != 0495 ):496 # The socket appears before recovery finishes; createdb would497 # fail with "the database system is starting up".498 if time.monotonic() > deadline:499 msg = "postgres did not start"500> raise RuntimeError(msg)501E RuntimeError: postgres did not start502503nixbot/tests/support.py:319: RuntimeError504___ ERROR at setup of test_log_follow_finished_attr_falls_back_to_stored_log ___505[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14506507request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>508tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')509510 @pytest.fixture(scope="module")511 def postgres_dsn(512 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory513 ) -> Iterator[str]:514 if shutil.which("initdb") is None:515 pytest.skip("postgresql not available")516 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")517> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:518 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^519520nixbot/tests/conftest.py:33: 521_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 522/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__523 return next(self.gen)524 ^^^^^^^^^^^^^^525_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 526527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')528dbname = 'cli'529530 @contextlib.contextmanager531 def ephemeral_postgres(532 tmp_path_factory: pytest.TempPathFactory, dbname: str533 ) -> Iterator[str]:534 """Throwaway Postgres on a unix socket with migrations applied."""535 datadir = tmp_path_factory.mktemp("pgdata")536 sockdir = tmp_path_factory.mktemp("pgsock")537 subprocess.run( # noqa: S603538 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],539 check=True,540 capture_output=True,541 )542 proc = subprocess.Popen( # noqa: S603543 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],544 stdout=subprocess.DEVNULL,545 stderr=subprocess.DEVNULL,546 )547 try:548 deadline = time.monotonic() + 30549 while (550 subprocess.run( # noqa: S603551 ["pg_isready", "-h", str(sockdir), "-U", "test"],552 check=False,553 capture_output=True,554 ).returncode555 != 0556 ):557 # The socket appears before recovery finishes; createdb would558 # fail with "the database system is starting up".559 if time.monotonic() > deadline:560 msg = "postgres did not start"561> raise RuntimeError(msg)562E RuntimeError: postgres did not start563564nixbot/tests/support.py:319: RuntimeError565_______________ ERROR at setup of test_log_effect_by_name_and_id _______________566[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14567568request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>569tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')570571 @pytest.fixture(scope="module")572 def postgres_dsn(573 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory574 ) -> Iterator[str]:575 if shutil.which("initdb") is None:576 pytest.skip("postgresql not available")577 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")578> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:579 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^580581nixbot/tests/conftest.py:33: 582_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__584 return next(self.gen)585 ^^^^^^^^^^^^^^586_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 587588tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')589dbname = 'cli'590591 @contextlib.contextmanager592 def ephemeral_postgres(593 tmp_path_factory: pytest.TempPathFactory, dbname: str594 ) -> Iterator[str]:595 """Throwaway Postgres on a unix socket with migrations applied."""596 datadir = tmp_path_factory.mktemp("pgdata")597 sockdir = tmp_path_factory.mktemp("pgsock")598 subprocess.run( # noqa: S603599 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],600 check=True,601 capture_output=True,602 )603 proc = subprocess.Popen( # noqa: S603604 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],605 stdout=subprocess.DEVNULL,606 stderr=subprocess.DEVNULL,607 )608 try:609 deadline = time.monotonic() + 30610 while (611 subprocess.run( # noqa: S603612 ["pg_isready", "-h", str(sockdir), "-U", "test"],613 check=False,614 capture_output=True,615 ).returncode616 != 0617 ):618 # The socket appears before recovery finishes; createdb would619 # fail with "the database system is starting up".620 if time.monotonic() > deadline:621 msg = "postgres did not start"622> raise RuntimeError(msg)623E RuntimeError: postgres did not start624625nixbot/tests/support.py:319: RuntimeError626_______ ERROR at setup of test_log_effect_is_not_shadowed_by_attributes ________627[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14628629request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>630tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')631632 @pytest.fixture(scope="module")633 def postgres_dsn(634 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory635 ) -> Iterator[str]:636 if shutil.which("initdb") is None:637 pytest.skip("postgresql not available")638 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")639> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^641642nixbot/tests/conftest.py:33: 643_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 644/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__645 return next(self.gen)646 ^^^^^^^^^^^^^^647_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 648649tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')650dbname = 'cli'651652 @contextlib.contextmanager653 def ephemeral_postgres(654 tmp_path_factory: pytest.TempPathFactory, dbname: str655 ) -> Iterator[str]:656 """Throwaway Postgres on a unix socket with migrations applied."""657 datadir = tmp_path_factory.mktemp("pgdata")658 sockdir = tmp_path_factory.mktemp("pgsock")659 subprocess.run( # noqa: S603660 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],661 check=True,662 capture_output=True,663 )664 proc = subprocess.Popen( # noqa: S603665 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],666 stdout=subprocess.DEVNULL,667 stderr=subprocess.DEVNULL,668 )669 try:670 deadline = time.monotonic() + 30671 while (672 subprocess.run( # noqa: S603673 ["pg_isready", "-h", str(sockdir), "-U", "test"],674 check=False,675 capture_output=True,676 ).returncode677 != 0678 ):679 # The socket appears before recovery finishes; createdb would680 # fail with "the database system is starting up".681 if time.monotonic() > deadline:682 msg = "postgres did not start"683> raise RuntimeError(msg)684E RuntimeError: postgres did not start685686nixbot/tests/support.py:319: RuntimeError687__________________ ERROR at setup of test_match_skip_and_run ___________________688[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14689690self = <Coroutine test_match_skip_and_run>691692 def setup(self) -> None:693 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"694 if runner_fixture_id not in self.fixturenames:695 self.fixturenames.append(runner_fixture_id)696 # When loop factories are configured, resolve the loop factory697 # fixture early so that a factory variant change cascades cache698 # invalidation before any async fixture checks its cache.699 hook_caller = self.config.hook.pytest_asyncio_loop_factories700 if hook_caller.get_hookimpls():701 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)702> return super().setup()703 ^^^^^^^^^^^^^^^704705/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 706_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 707/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup708 return (yield)709 ^^^^^710nixbot/tests/conftest.py:33: in postgres_dsn711 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:712 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^713/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__714 return next(self.gen)715 ^^^^^^^^^^^^^^716_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 717718tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')719dbname = 'deliver'720721 @contextlib.contextmanager722 def ephemeral_postgres(723 tmp_path_factory: pytest.TempPathFactory, dbname: str724 ) -> Iterator[str]:725 """Throwaway Postgres on a unix socket with migrations applied."""726 datadir = tmp_path_factory.mktemp("pgdata")727 sockdir = tmp_path_factory.mktemp("pgsock")728 subprocess.run( # noqa: S603729 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],730 check=True,731 capture_output=True,732 )733 proc = subprocess.Popen( # noqa: S603734 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],735 stdout=subprocess.DEVNULL,736 stderr=subprocess.DEVNULL,737 )738 try:739 deadline = time.monotonic() + 30740 while (741 subprocess.run( # noqa: S603742 ["pg_isready", "-h", str(sockdir), "-U", "test"],743 check=False,744 capture_output=True,745 ).returncode746 != 0747 ):748 # The socket appears before recovery finishes; createdb would749 # fail with "the database system is starting up".750 if time.monotonic() > deadline:751 msg = "postgres did not start"752> raise RuntimeError(msg)753E RuntimeError: postgres did not start754755nixbot/tests/support.py:319: RuntimeError756___________ ERROR at setup of test_permission_denied_records_reason ____________757[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14758759self = <Coroutine test_permission_denied_records_reason>760761 def setup(self) -> None:762 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"763 if runner_fixture_id not in self.fixturenames:764 self.fixturenames.append(runner_fixture_id)765 # When loop factories are configured, resolve the loop factory766 # fixture early so that a factory variant change cascades cache767 # invalidation before any async fixture checks its cache.768 hook_caller = self.config.hook.pytest_asyncio_loop_factories769 if hook_caller.get_hookimpls():770 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)771> return super().setup()772 ^^^^^^^^^^^^^^^773774/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 775_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776nixbot/tests/conftest.py:33: in postgres_dsn777 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:778 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^779/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__780 return next(self.gen)781 ^^^^^^^^^^^^^^782_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 783784tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')785dbname = 'deliver'786787 @contextlib.contextmanager788 def ephemeral_postgres(789 tmp_path_factory: pytest.TempPathFactory, dbname: str790 ) -> Iterator[str]:791 """Throwaway Postgres on a unix socket with migrations applied."""792 datadir = tmp_path_factory.mktemp("pgdata")793 sockdir = tmp_path_factory.mktemp("pgsock")794 subprocess.run( # noqa: S603795 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],796 check=True,797 capture_output=True,798 )799 proc = subprocess.Popen( # noqa: S603800 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],801 stdout=subprocess.DEVNULL,802 stderr=subprocess.DEVNULL,803 )804 try:805 deadline = time.monotonic() + 30806 while (807 subprocess.run( # noqa: S603808 ["pg_isready", "-h", str(sockdir), "-U", "test"],809 check=False,810 capture_output=True,811 ).returncode812 != 0813 ):814 # The socket appears before recovery finishes; createdb would815 # fail with "the database system is starting up".816 if time.monotonic() > deadline:817 msg = "postgres did not start"818> raise RuntimeError(msg)819E RuntimeError: postgres did not start820821nixbot/tests/support.py:319: RuntimeError822__________________ ERROR at setup of test_modified_files_gate __________________823[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14824825self = <Coroutine test_modified_files_gate>826827 def setup(self) -> None:828 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"829 if runner_fixture_id not in self.fixturenames:830 self.fixturenames.append(runner_fixture_id)831 # When loop factories are configured, resolve the loop factory832 # fixture early so that a factory variant change cascades cache833 # invalidation before any async fixture checks its cache.834 hook_caller = self.config.hook.pytest_asyncio_loop_factories835 if hook_caller.get_hookimpls():836 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)837> return super().setup()838 ^^^^^^^^^^^^^^^839840/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 841_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 842nixbot/tests/conftest.py:33: in postgres_dsn843 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:844 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^845/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__846 return next(self.gen)847 ^^^^^^^^^^^^^^848_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 849850tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')851dbname = 'deliver'852853 @contextlib.contextmanager854 def ephemeral_postgres(855 tmp_path_factory: pytest.TempPathFactory, dbname: str856 ) -> Iterator[str]:857 """Throwaway Postgres on a unix socket with migrations applied."""858 datadir = tmp_path_factory.mktemp("pgdata")859 sockdir = tmp_path_factory.mktemp("pgsock")860 subprocess.run( # noqa: S603861 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],862 check=True,863 capture_output=True,864 )865 proc = subprocess.Popen( # noqa: S603866 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],867 stdout=subprocess.DEVNULL,868 stderr=subprocess.DEVNULL,869 )870 try:871 deadline = time.monotonic() + 30872 while (873 subprocess.run( # noqa: S603874 ["pg_isready", "-h", str(sockdir), "-U", "test"],875 check=False,876 capture_output=True,877 ).returncode878 != 0879 ):880 # The socket appears before recovery finishes; createdb would881 # fail with "the database system is starting up".882 if time.monotonic() > deadline:883 msg = "postgres did not start"884> raise RuntimeError(msg)885E RuntimeError: postgres did not start886887nixbot/tests/support.py:319: RuntimeError888________________ ERROR at setup of test_forge_outage_is_retried ________________889[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14890891self = <Coroutine test_forge_outage_is_retried>892893 def setup(self) -> None:894 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"895 if runner_fixture_id not in self.fixturenames:896 self.fixturenames.append(runner_fixture_id)897 # When loop factories are configured, resolve the loop factory898 # fixture early so that a factory variant change cascades cache899 # invalidation before any async fixture checks its cache.900 hook_caller = self.config.hook.pytest_asyncio_loop_factories901 if hook_caller.get_hookimpls():902 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)903> return super().setup()904 ^^^^^^^^^^^^^^^905906/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 907_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 908nixbot/tests/conftest.py:33: in postgres_dsn909 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:910 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^911/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__912 return next(self.gen)913 ^^^^^^^^^^^^^^914_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 915916tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')917dbname = 'deliver'918919 @contextlib.contextmanager920 def ephemeral_postgres(921 tmp_path_factory: pytest.TempPathFactory, dbname: str922 ) -> Iterator[str]:923 """Throwaway Postgres on a unix socket with migrations applied."""924 datadir = tmp_path_factory.mktemp("pgdata")925 sockdir = tmp_path_factory.mktemp("pgsock")926 subprocess.run( # noqa: S603927 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],928 check=True,929 capture_output=True,930 )931 proc = subprocess.Popen( # noqa: S603932 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],933 stdout=subprocess.DEVNULL,934 stderr=subprocess.DEVNULL,935 )936 try:937 deadline = time.monotonic() + 30938 while (939 subprocess.run( # noqa: S603940 ["pg_isready", "-h", str(sockdir), "-U", "test"],941 check=False,942 capture_output=True,943 ).returncode944 != 0945 ):946 # The socket appears before recovery finishes; createdb would947 # fail with "the database system is starting up".948 if time.monotonic() > deadline:949 msg = "postgres did not start"950> raise RuntimeError(msg)951E RuntimeError: postgres did not start952953nixbot/tests/support.py:319: RuntimeError954___________ ERROR at setup of test_resume_skips_terminal_attributes ____________955[gw18] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14956957self = <Coroutine test_resume_skips_terminal_attributes>958959 def setup(self) -> None:960 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"961 if runner_fixture_id not in self.fixturenames:962 self.fixturenames.append(runner_fixture_id)963 # When loop factories are configured, resolve the loop factory964 # fixture early so that a factory variant change cascades cache965 # invalidation before any async fixture checks its cache.966 hook_caller = self.config.hook.pytest_asyncio_loop_factories967 if hook_caller.get_hookimpls():968 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)969> return super().setup()970 ^^^^^^^^^^^^^^^971972/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 973_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 974/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup975 return (yield)976 ^^^^^977nixbot/tests/conftest.py:33: in postgres_dsn978 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:979 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^980/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__981 return next(self.gen)982 ^^^^^^^^^^^^^^983_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 984985tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw18'), _retention_count=3, _retention_policy='all')986dbname = 'recovery'987988 @contextlib.contextmanager989 def ephemeral_postgres(990 tmp_path_factory: pytest.TempPathFactory, dbname: str991 ) -> Iterator[str]:992 """Throwaway Postgres on a unix socket with migrations applied."""993 datadir = tmp_path_factory.mktemp("pgdata")994 sockdir = tmp_path_factory.mktemp("pgsock")995 subprocess.run( # noqa: S603996 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],997 check=True,998 capture_output=True,999 )1000 proc = subprocess.Popen( # noqa: S6031001 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1002 stdout=subprocess.DEVNULL,1003 stderr=subprocess.DEVNULL,1004 )1005 try:1006 deadline = time.monotonic() + 301007 while (1008 subprocess.run( # noqa: S6031009 ["pg_isready", "-h", str(sockdir), "-U", "test"],1010 check=False,1011 capture_output=True,1012 ).returncode1013 != 01014 ):1015 # The socket appears before recovery finishes; createdb would1016 # fail with "the database system is starting up".1017 if time.monotonic() > deadline:1018 msg = "postgres did not start"1019> raise RuntimeError(msg)1020E RuntimeError: postgres did not start10211022nixbot/tests/support.py:319: RuntimeError1023_________________ ERROR at setup of test_forge_outage_gives_up _________________1024[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410251026self = <Coroutine test_forge_outage_gives_up>10271028 def setup(self) -> None:1029 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1030 if runner_fixture_id not in self.fixturenames:1031 self.fixturenames.append(runner_fixture_id)1032 # When loop factories are configured, resolve the loop factory1033 # fixture early so that a factory variant change cascades cache1034 # invalidation before any async fixture checks its cache.1035 hook_caller = self.config.hook.pytest_asyncio_loop_factories1036 if hook_caller.get_hookimpls():1037 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1038> return super().setup()1039 ^^^^^^^^^^^^^^^10401041/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1042_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1043nixbot/tests/conftest.py:33: in postgres_dsn1044 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1045 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1046/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1047 return next(self.gen)1048 ^^^^^^^^^^^^^^1049_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10501051tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1052dbname = 'deliver'10531054 @contextlib.contextmanager1055 def ephemeral_postgres(1056 tmp_path_factory: pytest.TempPathFactory, dbname: str1057 ) -> Iterator[str]:1058 """Throwaway Postgres on a unix socket with migrations applied."""1059 datadir = tmp_path_factory.mktemp("pgdata")1060 sockdir = tmp_path_factory.mktemp("pgsock")1061 subprocess.run( # noqa: S6031062 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1063 check=True,1064 capture_output=True,1065 )1066 proc = subprocess.Popen( # noqa: S6031067 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1068 stdout=subprocess.DEVNULL,1069 stderr=subprocess.DEVNULL,1070 )1071 try:1072 deadline = time.monotonic() + 301073 while (1074 subprocess.run( # noqa: S6031075 ["pg_isready", "-h", str(sockdir), "-U", "test"],1076 check=False,1077 capture_output=True,1078 ).returncode1079 != 01080 ):1081 # The socket appears before recovery finishes; createdb would1082 # fail with "the database system is starting up".1083 if time.monotonic() > deadline:1084 msg = "postgres did not start"1085> raise RuntimeError(msg)1086E RuntimeError: postgres did not start10871088nixbot/tests/support.py:319: RuntimeError1089_________________ ERROR at setup of test_settle_already_built __________________1090[gw18] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410911092self = <Coroutine test_settle_already_built>10931094 def setup(self) -> None:1095 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1096 if runner_fixture_id not in self.fixturenames:1097 self.fixturenames.append(runner_fixture_id)1098 # When loop factories are configured, resolve the loop factory1099 # fixture early so that a factory variant change cascades cache1100 # invalidation before any async fixture checks its cache.1101 hook_caller = self.config.hook.pytest_asyncio_loop_factories1102 if hook_caller.get_hookimpls():1103 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1104> return super().setup()1105 ^^^^^^^^^^^^^^^11061107/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1108_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1109nixbot/tests/conftest.py:33: in postgres_dsn1110 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1111 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1112/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1113 return next(self.gen)1114 ^^^^^^^^^^^^^^1115_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11161117tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw18'), _retention_count=3, _retention_policy='all')1118dbname = 'recovery'11191120 @contextlib.contextmanager1121 def ephemeral_postgres(1122 tmp_path_factory: pytest.TempPathFactory, dbname: str1123 ) -> Iterator[str]:1124 """Throwaway Postgres on a unix socket with migrations applied."""1125 datadir = tmp_path_factory.mktemp("pgdata")1126 sockdir = tmp_path_factory.mktemp("pgsock")1127 subprocess.run( # noqa: S6031128 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1129 check=True,1130 capture_output=True,1131 )1132 proc = subprocess.Popen( # noqa: S6031133 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1134 stdout=subprocess.DEVNULL,1135 stderr=subprocess.DEVNULL,1136 )1137 try:1138 deadline = time.monotonic() + 301139 while (1140 subprocess.run( # noqa: S6031141 ["pg_isready", "-h", str(sockdir), "-U", "test"],1142 check=False,1143 capture_output=True,1144 ).returncode1145 != 01146 ):1147 # The socket appears before recovery finishes; createdb would1148 # fail with "the database system is starting up".1149 if time.monotonic() > deadline:1150 msg = "postgres did not start"1151> raise RuntimeError(msg)1152E RuntimeError: postgres did not start11531154nixbot/tests/support.py:319: RuntimeError1155_____ ERROR at setup of test_lock_shared_with_push_effect_and_supersession _____1156[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411571158self = <Coroutine test_lock_shared_with_push_effect_and_supersession>11591160 def setup(self) -> None:1161 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1162 if runner_fixture_id not in self.fixturenames:1163 self.fixturenames.append(runner_fixture_id)1164 # When loop factories are configured, resolve the loop factory1165 # fixture early so that a factory variant change cascades cache1166 # invalidation before any async fixture checks its cache.1167 hook_caller = self.config.hook.pytest_asyncio_loop_factories1168 if hook_caller.get_hookimpls():1169 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1170> return super().setup()1171 ^^^^^^^^^^^^^^^11721173/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1174_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1175nixbot/tests/conftest.py:33: in postgres_dsn1176 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1177 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1178/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1179 return next(self.gen)1180 ^^^^^^^^^^^^^^1181_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11821183tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1184dbname = 'deliver'11851186 @contextlib.contextmanager1187 def ephemeral_postgres(1188 tmp_path_factory: pytest.TempPathFactory, dbname: str1189 ) -> Iterator[str]:1190 """Throwaway Postgres on a unix socket with migrations applied."""1191 datadir = tmp_path_factory.mktemp("pgdata")1192 sockdir = tmp_path_factory.mktemp("pgsock")1193 subprocess.run( # noqa: S6031194 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1195 check=True,1196 capture_output=True,1197 )1198 proc = subprocess.Popen( # noqa: S6031199 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1200 stdout=subprocess.DEVNULL,1201 stderr=subprocess.DEVNULL,1202 )1203 try:1204 deadline = time.monotonic() + 301205 while (1206 subprocess.run( # noqa: S6031207 ["pg_isready", "-h", str(sockdir), "-U", "test"],1208 check=False,1209 capture_output=True,1210 ).returncode1211 != 01212 ):1213 # The socket appears before recovery finishes; createdb would1214 # fail with "the database system is starting up".1215 if time.monotonic() > deadline:1216 msg = "postgres did not start"1217> raise RuntimeError(msg)1218E RuntimeError: postgres did not start12191220nixbot/tests/support.py:319: RuntimeError1221___________________ ERROR at setup of test_retention_cleanup ___________________1222[gw18] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412231224self = <Coroutine test_retention_cleanup>12251226 def setup(self) -> None:1227 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1228 if runner_fixture_id not in self.fixturenames:1229 self.fixturenames.append(runner_fixture_id)1230 # When loop factories are configured, resolve the loop factory1231 # fixture early so that a factory variant change cascades cache1232 # invalidation before any async fixture checks its cache.1233 hook_caller = self.config.hook.pytest_asyncio_loop_factories1234 if hook_caller.get_hookimpls():1235 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1236> return super().setup()1237 ^^^^^^^^^^^^^^^12381239/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1240_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1241nixbot/tests/conftest.py:33: in postgres_dsn1242 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1243 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1244/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1245 return next(self.gen)1246 ^^^^^^^^^^^^^^1247_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12481249tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw18'), _retention_count=3, _retention_policy='all')1250dbname = 'recovery'12511252 @contextlib.contextmanager1253 def ephemeral_postgres(1254 tmp_path_factory: pytest.TempPathFactory, dbname: str1255 ) -> Iterator[str]:1256 """Throwaway Postgres on a unix socket with migrations applied."""1257 datadir = tmp_path_factory.mktemp("pgdata")1258 sockdir = tmp_path_factory.mktemp("pgsock")1259 subprocess.run( # noqa: S6031260 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1261 check=True,1262 capture_output=True,1263 )1264 proc = subprocess.Popen( # noqa: S6031265 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1266 stdout=subprocess.DEVNULL,1267 stderr=subprocess.DEVNULL,1268 )1269 try:1270 deadline = time.monotonic() + 301271 while (1272 subprocess.run( # noqa: S6031273 ["pg_isready", "-h", str(sockdir), "-U", "test"],1274 check=False,1275 capture_output=True,1276 ).returncode1277 != 01278 ):1279 # The socket appears before recovery finishes; createdb would1280 # fail with "the database system is starting up".1281 if time.monotonic() > deadline:1282 msg = "postgres did not start"1283> raise RuntimeError(msg)1284E RuntimeError: postgres did not start12851286nixbot/tests/support.py:319: RuntimeError1287___________ ERROR at setup of test_checkout_is_pr_head_without_token ___________1288[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412891290self = <Coroutine test_checkout_is_pr_head_without_token>12911292 def setup(self) -> None:1293 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1294 if runner_fixture_id not in self.fixturenames:1295 self.fixturenames.append(runner_fixture_id)1296 # When loop factories are configured, resolve the loop factory1297 # fixture early so that a factory variant change cascades cache1298 # invalidation before any async fixture checks its cache.1299 hook_caller = self.config.hook.pytest_asyncio_loop_factories1300 if hook_caller.get_hookimpls():1301 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1302> return super().setup()1303 ^^^^^^^^^^^^^^^13041305/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1306_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1307nixbot/tests/conftest.py:33: in postgres_dsn1308 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1309 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1310/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1311 return next(self.gen)1312 ^^^^^^^^^^^^^^1313_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13141315tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1316dbname = 'deliver'13171318 @contextlib.contextmanager1319 def ephemeral_postgres(1320 tmp_path_factory: pytest.TempPathFactory, dbname: str1321 ) -> Iterator[str]:1322 """Throwaway Postgres on a unix socket with migrations applied."""1323 datadir = tmp_path_factory.mktemp("pgdata")1324 sockdir = tmp_path_factory.mktemp("pgsock")1325 subprocess.run( # noqa: S6031326 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1327 check=True,1328 capture_output=True,1329 )1330 proc = subprocess.Popen( # noqa: S6031331 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1332 stdout=subprocess.DEVNULL,1333 stderr=subprocess.DEVNULL,1334 )1335 try:1336 deadline = time.monotonic() + 301337 while (1338 subprocess.run( # noqa: S6031339 ["pg_isready", "-h", str(sockdir), "-U", "test"],1340 check=False,1341 capture_output=True,1342 ).returncode1343 != 01344 ):1345 # The socket appears before recovery finishes; createdb would1346 # fail with "the database system is starting up".1347 if time.monotonic() > deadline:1348 msg = "postgres did not start"1349> raise RuntimeError(msg)1350E RuntimeError: postgres did not start13511352nixbot/tests/support.py:319: RuntimeError1353____________ ERROR at setup of test_build_success_enqueues_delivery ____________1354[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413551356self = <Coroutine test_build_success_enqueues_delivery>13571358 def setup(self) -> None:1359 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1360 if runner_fixture_id not in self.fixturenames:1361 self.fixturenames.append(runner_fixture_id)1362 # When loop factories are configured, resolve the loop factory1363 # fixture early so that a factory variant change cascades cache1364 # invalidation before any async fixture checks its cache.1365 hook_caller = self.config.hook.pytest_asyncio_loop_factories1366 if hook_caller.get_hookimpls():1367 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1368> return super().setup()1369 ^^^^^^^^^^^^^^^13701371/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1372_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1373nixbot/tests/conftest.py:33: in postgres_dsn1374 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1375 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1376/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1377 return next(self.gen)1378 ^^^^^^^^^^^^^^1379_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13801381tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1382dbname = 'deliver'13831384 @contextlib.contextmanager1385 def ephemeral_postgres(1386 tmp_path_factory: pytest.TempPathFactory, dbname: str1387 ) -> Iterator[str]:1388 """Throwaway Postgres on a unix socket with migrations applied."""1389 datadir = tmp_path_factory.mktemp("pgdata")1390 sockdir = tmp_path_factory.mktemp("pgsock")1391 subprocess.run( # noqa: S6031392 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1393 check=True,1394 capture_output=True,1395 )1396 proc = subprocess.Popen( # noqa: S6031397 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1398 stdout=subprocess.DEVNULL,1399 stderr=subprocess.DEVNULL,1400 )1401 try:1402 deadline = time.monotonic() + 301403 while (1404 subprocess.run( # noqa: S6031405 ["pg_isready", "-h", str(sockdir), "-U", "test"],1406 check=False,1407 capture_output=True,1408 ).returncode1409 != 01410 ):1411 # The socket appears before recovery finishes; createdb would1412 # fail with "the database system is starting up".1413 if time.monotonic() > deadline:1414 msg = "postgres did not start"1415> raise RuntimeError(msg)1416E RuntimeError: postgres did not start14171418nixbot/tests/support.py:319: RuntimeError1419____ ERROR at setup of test_resume_includes_interrupted_building_attributes ____1420[gw18] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414211422self = <Coroutine test_resume_includes_interrupted_building_attributes>14231424 def setup(self) -> None:1425 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1426 if runner_fixture_id not in self.fixturenames:1427 self.fixturenames.append(runner_fixture_id)1428 # When loop factories are configured, resolve the loop factory1429 # fixture early so that a factory variant change cascades cache1430 # invalidation before any async fixture checks its cache.1431 hook_caller = self.config.hook.pytest_asyncio_loop_factories1432 if hook_caller.get_hookimpls():1433 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1434> return super().setup()1435 ^^^^^^^^^^^^^^^14361437/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1438_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1439nixbot/tests/conftest.py:33: in postgres_dsn1440 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1441 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1442/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1443 return next(self.gen)1444 ^^^^^^^^^^^^^^1445_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14461447tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw18'), _retention_count=3, _retention_policy='all')1448dbname = 'recovery'14491450 @contextlib.contextmanager1451 def ephemeral_postgres(1452 tmp_path_factory: pytest.TempPathFactory, dbname: str1453 ) -> Iterator[str]:1454 """Throwaway Postgres on a unix socket with migrations applied."""1455 datadir = tmp_path_factory.mktemp("pgdata")1456 sockdir = tmp_path_factory.mktemp("pgsock")1457 subprocess.run( # noqa: S6031458 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1459 check=True,1460 capture_output=True,1461 )1462 proc = subprocess.Popen( # noqa: S6031463 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1464 stdout=subprocess.DEVNULL,1465 stderr=subprocess.DEVNULL,1466 )1467 try:1468 deadline = time.monotonic() + 301469 while (1470 subprocess.run( # noqa: S6031471 ["pg_isready", "-h", str(sockdir), "-U", "test"],1472 check=False,1473 capture_output=True,1474 ).returncode1475 != 01476 ):1477 # The socket appears before recovery finishes; createdb would1478 # fail with "the database system is starting up".1479 if time.monotonic() > deadline:1480 msg = "postgres did not start"1481> raise RuntimeError(msg)1482E RuntimeError: postgres did not start14831484nixbot/tests/support.py:319: RuntimeError1485_______ ERROR at setup of test_scheduled_worktree_id_distinct_per_effect _______1486[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414871488fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1489request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>14901491 @pytest.hookimpl(wrapper=True)1492 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1493 if (1494 fixturedef.argname == "event_loop_policy"1495 and fixturedef.func.__module__ != __name__1496 ):1497 warnings.warn(1498 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1499 )1500 asyncio_mode = _get_asyncio_mode(request.config)1501 if not _is_asyncio_fixture_function(fixturedef.func):1502 if asyncio_mode == Mode.STRICT:1503 # Ignore async fixtures without explicit asyncio mark in strict mode1504 # This applies to pytest_trio fixtures, for example1505 return (yield)1506 if not _is_coroutine_or_asyncgen(fixturedef.func):1507> return (yield)1508 ^^^^^15091510/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1511_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1512nixbot/tests/conftest.py:33: in postgres_dsn1513 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1514 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1515/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1516 return next(self.gen)1517 ^^^^^^^^^^^^^^1518_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15191520tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1521dbname = 'service'15221523 @contextlib.contextmanager1524 def ephemeral_postgres(1525 tmp_path_factory: pytest.TempPathFactory, dbname: str1526 ) -> Iterator[str]:1527 """Throwaway Postgres on a unix socket with migrations applied."""1528 datadir = tmp_path_factory.mktemp("pgdata")1529 sockdir = tmp_path_factory.mktemp("pgsock")1530 subprocess.run( # noqa: S6031531 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1532 check=True,1533 capture_output=True,1534 )1535 proc = subprocess.Popen( # noqa: S6031536 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1537 stdout=subprocess.DEVNULL,1538 stderr=subprocess.DEVNULL,1539 )1540 try:1541 deadline = time.monotonic() + 301542 while (1543 subprocess.run( # noqa: S6031544 ["pg_isready", "-h", str(sockdir), "-U", "test"],1545 check=False,1546 capture_output=True,1547 ).returncode1548 != 01549 ):1550 # The socket appears before recovery finishes; createdb would1551 # fail with "the database system is starting up".1552 if time.monotonic() > deadline:1553 msg = "postgres did not start"1554> raise RuntimeError(msg)1555E RuntimeError: postgres did not start15561557nixbot/tests/support.py:319: RuntimeError1558__________ ERROR at setup of test_comment_and_close_webhooks_deliver ___________1559[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415601561self = <Coroutine test_comment_and_close_webhooks_deliver>15621563 def setup(self) -> None:1564 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1565 if runner_fixture_id not in self.fixturenames:1566 self.fixturenames.append(runner_fixture_id)1567 # When loop factories are configured, resolve the loop factory1568 # fixture early so that a factory variant change cascades cache1569 # invalidation before any async fixture checks its cache.1570 hook_caller = self.config.hook.pytest_asyncio_loop_factories1571 if hook_caller.get_hookimpls():1572 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1573> return super().setup()1574 ^^^^^^^^^^^^^^^15751576/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1577_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1578nixbot/tests/conftest.py:33: in postgres_dsn1579 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1580 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1581/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1582 return next(self.gen)1583 ^^^^^^^^^^^^^^1584_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15851586tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1587dbname = 'deliver'15881589 @contextlib.contextmanager1590 def ephemeral_postgres(1591 tmp_path_factory: pytest.TempPathFactory, dbname: str1592 ) -> Iterator[str]:1593 """Throwaway Postgres on a unix socket with migrations applied."""1594 datadir = tmp_path_factory.mktemp("pgdata")1595 sockdir = tmp_path_factory.mktemp("pgsock")1596 subprocess.run( # noqa: S6031597 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1598 check=True,1599 capture_output=True,1600 )1601 proc = subprocess.Popen( # noqa: S6031602 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1603 stdout=subprocess.DEVNULL,1604 stderr=subprocess.DEVNULL,1605 )1606 try:1607 deadline = time.monotonic() + 301608 while (1609 subprocess.run( # noqa: S6031610 ["pg_isready", "-h", str(sockdir), "-U", "test"],1611 check=False,1612 capture_output=True,1613 ).returncode1614 != 01615 ):1616 # The socket appears before recovery finishes; createdb would1617 # fail with "the database system is starting up".1618 if time.monotonic() > deadline:1619 msg = "postgres did not start"1620> raise RuntimeError(msg)1621E RuntimeError: postgres did not start16221623nixbot/tests/support.py:319: RuntimeError1624_______ ERROR at setup of test_scheduled_worktree_id_sanitizes_traversal _______1625[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416261627request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>1628tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')16291630 @pytest.fixture(scope="module")1631 def postgres_dsn(1632 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1633 ) -> Iterator[str]:1634 if shutil.which("initdb") is None:1635 pytest.skip("postgresql not available")1636 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1637> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1638 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16391640nixbot/tests/conftest.py:33: 1641_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1642/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1643 return next(self.gen)1644 ^^^^^^^^^^^^^^1645_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16461647tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1648dbname = 'service'16491650 @contextlib.contextmanager1651 def ephemeral_postgres(1652 tmp_path_factory: pytest.TempPathFactory, dbname: str1653 ) -> Iterator[str]:1654 """Throwaway Postgres on a unix socket with migrations applied."""1655 datadir = tmp_path_factory.mktemp("pgdata")1656 sockdir = tmp_path_factory.mktemp("pgsock")1657 subprocess.run( # noqa: S6031658 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1659 check=True,1660 capture_output=True,1661 )1662 proc = subprocess.Popen( # noqa: S6031663 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1664 stdout=subprocess.DEVNULL,1665 stderr=subprocess.DEVNULL,1666 )1667 try:1668 deadline = time.monotonic() + 301669 while (1670 subprocess.run( # noqa: S6031671 ["pg_isready", "-h", str(sockdir), "-U", "test"],1672 check=False,1673 capture_output=True,1674 ).returncode1675 != 01676 ):1677 # The socket appears before recovery finishes; createdb would1678 # fail with "the database system is starting up".1679 if time.monotonic() > deadline:1680 msg = "postgres did not start"1681> raise RuntimeError(msg)1682E RuntimeError: postgres did not start16831684nixbot/tests/support.py:319: RuntimeError1685___________ ERROR at setup of test_retention_skips_restarted_builds ____________1686[gw18] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416871688self = <Coroutine test_retention_skips_restarted_builds>16891690 def setup(self) -> None:1691 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1692 if runner_fixture_id not in self.fixturenames:1693 self.fixturenames.append(runner_fixture_id)1694 # When loop factories are configured, resolve the loop factory1695 # fixture early so that a factory variant change cascades cache1696 # invalidation before any async fixture checks its cache.1697 hook_caller = self.config.hook.pytest_asyncio_loop_factories1698 if hook_caller.get_hookimpls():1699 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1700> return super().setup()1701 ^^^^^^^^^^^^^^^17021703/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1704_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1705nixbot/tests/conftest.py:33: in postgres_dsn1706 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1707 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1708/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1709 return next(self.gen)1710 ^^^^^^^^^^^^^^1711_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17121713tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw18'), _retention_count=3, _retention_policy='all')1714dbname = 'recovery'17151716 @contextlib.contextmanager1717 def ephemeral_postgres(1718 tmp_path_factory: pytest.TempPathFactory, dbname: str1719 ) -> Iterator[str]:1720 """Throwaway Postgres on a unix socket with migrations applied."""1721 datadir = tmp_path_factory.mktemp("pgdata")1722 sockdir = tmp_path_factory.mktemp("pgsock")1723 subprocess.run( # noqa: S6031724 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1725 check=True,1726 capture_output=True,1727 )1728 proc = subprocess.Popen( # noqa: S6031729 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1730 stdout=subprocess.DEVNULL,1731 stderr=subprocess.DEVNULL,1732 )1733 try:1734 deadline = time.monotonic() + 301735 while (1736 subprocess.run( # noqa: S6031737 ["pg_isready", "-h", str(sockdir), "-U", "test"],1738 check=False,1739 capture_output=True,1740 ).returncode1741 != 01742 ):1743 # The socket appears before recovery finishes; createdb would1744 # fail with "the database system is starting up".1745 if time.monotonic() > deadline:1746 msg = "postgres did not start"1747> raise RuntimeError(msg)1748E RuntimeError: postgres did not start17491750nixbot/tests/support.py:319: RuntimeError1751________________ ERROR at setup of test_resolve_credential_path ________________1752[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417531754request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>1755tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')17561757 @pytest.fixture(scope="module")1758 def postgres_dsn(1759 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1760 ) -> Iterator[str]:1761 if shutil.which("initdb") is None:1762 pytest.skip("postgresql not available")1763 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1764> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1765 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17661767nixbot/tests/conftest.py:33: 1768_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1769/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1770 return next(self.gen)1771 ^^^^^^^^^^^^^^1772_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17731774tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1775dbname = 'service'17761777 @contextlib.contextmanager1778 def ephemeral_postgres(1779 tmp_path_factory: pytest.TempPathFactory, dbname: str1780 ) -> Iterator[str]:1781 """Throwaway Postgres on a unix socket with migrations applied."""1782 datadir = tmp_path_factory.mktemp("pgdata")1783 sockdir = tmp_path_factory.mktemp("pgsock")1784 subprocess.run( # noqa: S6031785 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1786 check=True,1787 capture_output=True,1788 )1789 proc = subprocess.Popen( # noqa: S6031790 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1791 stdout=subprocess.DEVNULL,1792 stderr=subprocess.DEVNULL,1793 )1794 try:1795 deadline = time.monotonic() + 301796 while (1797 subprocess.run( # noqa: S6031798 ["pg_isready", "-h", str(sockdir), "-U", "test"],1799 check=False,1800 capture_output=True,1801 ).returncode1802 != 01803 ):1804 # The socket appears before recovery finishes; createdb would1805 # fail with "the database system is starting up".1806 if time.monotonic() > deadline:1807 msg = "postgres did not start"1808> raise RuntimeError(msg)1809E RuntimeError: postgres did not start18101811nixbot/tests/support.py:319: RuntimeError1812__________ ERROR at setup of test_close_after_merge_push_reused_build __________1813[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418141815self = <Coroutine test_close_after_merge_push_reused_build>18161817 def setup(self) -> None:1818 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1819 if runner_fixture_id not in self.fixturenames:1820 self.fixturenames.append(runner_fixture_id)1821 # When loop factories are configured, resolve the loop factory1822 # fixture early so that a factory variant change cascades cache1823 # invalidation before any async fixture checks its cache.1824 hook_caller = self.config.hook.pytest_asyncio_loop_factories1825 if hook_caller.get_hookimpls():1826 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1827> return super().setup()1828 ^^^^^^^^^^^^^^^18291830/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1831_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1832nixbot/tests/conftest.py:33: in postgres_dsn1833 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1834 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1835/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1836 return next(self.gen)1837 ^^^^^^^^^^^^^^1838_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18391840tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1841dbname = 'deliver'18421843 @contextlib.contextmanager1844 def ephemeral_postgres(1845 tmp_path_factory: pytest.TempPathFactory, dbname: str1846 ) -> Iterator[str]:1847 """Throwaway Postgres on a unix socket with migrations applied."""1848 datadir = tmp_path_factory.mktemp("pgdata")1849 sockdir = tmp_path_factory.mktemp("pgsock")1850 subprocess.run( # noqa: S6031851 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1852 check=True,1853 capture_output=True,1854 )1855 proc = subprocess.Popen( # noqa: S6031856 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1857 stdout=subprocess.DEVNULL,1858 stderr=subprocess.DEVNULL,1859 )1860 try:1861 deadline = time.monotonic() + 301862 while (1863 subprocess.run( # noqa: S6031864 ["pg_isready", "-h", str(sockdir), "-U", "test"],1865 check=False,1866 capture_output=True,1867 ).returncode1868 != 01869 ):1870 # The socket appears before recovery finishes; createdb would1871 # fail with "the database system is starting up".1872 if time.monotonic() > deadline:1873 msg = "postgres did not start"1874> raise RuntimeError(msg)1875E RuntimeError: postgres did not start18761877nixbot/tests/support.py:319: RuntimeError1878____________ ERROR at setup of test_chunk_args_splits_on_byte_limit ____________1879[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418801881fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1882request = <SubRequest 'postgres_dsn' for <Function test_chunk_args_splits_on_byte_limit>>18831884 @pytest.hookimpl(wrapper=True)1885 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1886 if (1887 fixturedef.argname == "event_loop_policy"1888 and fixturedef.func.__module__ != __name__1889 ):1890 warnings.warn(1891 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1892 )1893 asyncio_mode = _get_asyncio_mode(request.config)1894 if not _is_asyncio_fixture_function(fixturedef.func):1895 if asyncio_mode == Mode.STRICT:1896 # Ignore async fixtures without explicit asyncio mark in strict mode1897 # This applies to pytest_trio fixtures, for example1898 return (yield)1899 if not _is_coroutine_or_asyncgen(fixturedef.func):1900> return (yield)1901 ^^^^^19021903/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1904_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1905nixbot/tests/conftest.py:33: in postgres_dsn1906 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1907 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1908/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1909 return next(self.gen)1910 ^^^^^^^^^^^^^^1911_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19121913tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...tch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1914dbname = 'upload'19151916 @contextlib.contextmanager1917 def ephemeral_postgres(1918 tmp_path_factory: pytest.TempPathFactory, dbname: str1919 ) -> Iterator[str]:1920 """Throwaway Postgres on a unix socket with migrations applied."""1921 datadir = tmp_path_factory.mktemp("pgdata")1922 sockdir = tmp_path_factory.mktemp("pgsock")1923 subprocess.run( # noqa: S6031924 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1925 check=True,1926 capture_output=True,1927 )1928 proc = subprocess.Popen( # noqa: S6031929 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1930 stdout=subprocess.DEVNULL,1931 stderr=subprocess.DEVNULL,1932 )1933 try:1934 deadline = time.monotonic() + 301935 while (1936 subprocess.run( # noqa: S6031937 ["pg_isready", "-h", str(sockdir), "-U", "test"],1938 check=False,1939 capture_output=True,1940 ).returncode1941 != 01942 ):1943 # The socket appears before recovery finishes; createdb would1944 # fail with "the database system is starting up".1945 if time.monotonic() > deadline:1946 msg = "postgres did not start"1947> raise RuntimeError(msg)1948E RuntimeError: postgres did not start19491950nixbot/tests/support.py:319: RuntimeError1951___________ ERROR at setup of test_build_service_accepts_asyncpg_dsn ___________1952[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419531954self = <Coroutine test_build_service_accepts_asyncpg_dsn>19551956 def setup(self) -> None:1957 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1958 if runner_fixture_id not in self.fixturenames:1959 self.fixturenames.append(runner_fixture_id)1960 # When loop factories are configured, resolve the loop factory1961 # fixture early so that a factory variant change cascades cache1962 # invalidation before any async fixture checks its cache.1963 hook_caller = self.config.hook.pytest_asyncio_loop_factories1964 if hook_caller.get_hookimpls():1965 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1966> return super().setup()1967 ^^^^^^^^^^^^^^^19681969/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1970_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1971nixbot/tests/conftest.py:33: in postgres_dsn1972 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1973 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1974/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1975 return next(self.gen)1976 ^^^^^^^^^^^^^^1977_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19781979tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1980dbname = 'service'19811982 @contextlib.contextmanager1983 def ephemeral_postgres(1984 tmp_path_factory: pytest.TempPathFactory, dbname: str1985 ) -> Iterator[str]:1986 """Throwaway Postgres on a unix socket with migrations applied."""1987 datadir = tmp_path_factory.mktemp("pgdata")1988 sockdir = tmp_path_factory.mktemp("pgsock")1989 subprocess.run( # noqa: S6031990 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1991 check=True,1992 capture_output=True,1993 )1994 proc = subprocess.Popen( # noqa: S6031995 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1996 stdout=subprocess.DEVNULL,1997 stderr=subprocess.DEVNULL,1998 )1999 try:2000 deadline = time.monotonic() + 30loading 18,247 hidden lines…
20248 capture_output=True,20249 ).returncode20250 != 020251 ):20252 # The socket appears before recovery finishes; createdb would20253 # fail with "the database system is starting up".20254 if time.monotonic() > deadline:20255 msg = "postgres did not start"20256> raise RuntimeError(msg)20257E RuntimeError: postgres did not start2025820259nixbot/tests/support.py:319: RuntimeError20260______________ ERROR at setup of test_gitlab_nested_group_routes _______________20261[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142026220263request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2026520266 @pytest.fixture(scope="module")20267 def postgres_dsn(20268 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20269 ) -> Iterator[str]:20270 if shutil.which("initdb") is None:20271 pytest.skip("postgresql not available")20272 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20273> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20274 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2027520276nixbot/tests/conftest.py:33: 20277_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20278/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20279 return next(self.gen)20280 ^^^^^^^^^^^^^^20281_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2028220283tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20284dbname = 'web'2028520286 @contextlib.contextmanager20287 def ephemeral_postgres(20288 tmp_path_factory: pytest.TempPathFactory, dbname: str20289 ) -> Iterator[str]:20290 """Throwaway Postgres on a unix socket with migrations applied."""20291 datadir = tmp_path_factory.mktemp("pgdata")20292 sockdir = tmp_path_factory.mktemp("pgsock")20293 subprocess.run( # noqa: S60320294 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20295 check=True,20296 capture_output=True,20297 )20298 proc = subprocess.Popen( # noqa: S60320299 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20300 stdout=subprocess.DEVNULL,20301 stderr=subprocess.DEVNULL,20302 )20303 try:20304 deadline = time.monotonic() + 3020305 while (20306 subprocess.run( # noqa: S60320307 ["pg_isready", "-h", str(sockdir), "-U", "test"],20308 check=False,20309 capture_output=True,20310 ).returncode20311 != 020312 ):20313 # The socket appears before recovery finishes; createdb would20314 # fail with "the database system is starting up".20315 if time.monotonic() > deadline:20316 msg = "postgres did not start"20317> raise RuntimeError(msg)20318E RuntimeError: postgres did not start2031920320nixbot/tests/support.py:319: RuntimeError20321___________ ERROR at setup of test_scheduled_run_viewer_renders_ansi ___________20322[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142032320324request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2032620327 @pytest.fixture(scope="module")20328 def postgres_dsn(20329 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20330 ) -> Iterator[str]:20331 if shutil.which("initdb") is None:20332 pytest.skip("postgresql not available")20333 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20334> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20335 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2033620337nixbot/tests/conftest.py:33: 20338_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20339/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20340 return next(self.gen)20341 ^^^^^^^^^^^^^^20342_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2034320344tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20345dbname = 'web'2034620347 @contextlib.contextmanager20348 def ephemeral_postgres(20349 tmp_path_factory: pytest.TempPathFactory, dbname: str20350 ) -> Iterator[str]:20351 """Throwaway Postgres on a unix socket with migrations applied."""20352 datadir = tmp_path_factory.mktemp("pgdata")20353 sockdir = tmp_path_factory.mktemp("pgsock")20354 subprocess.run( # noqa: S60320355 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20356 check=True,20357 capture_output=True,20358 )20359 proc = subprocess.Popen( # noqa: S60320360 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20361 stdout=subprocess.DEVNULL,20362 stderr=subprocess.DEVNULL,20363 )20364 try:20365 deadline = time.monotonic() + 3020366 while (20367 subprocess.run( # noqa: S60320368 ["pg_isready", "-h", str(sockdir), "-U", "test"],20369 check=False,20370 capture_output=True,20371 ).returncode20372 != 020373 ):20374 # The socket appears before recovery finishes; createdb would20375 # fail with "the database system is starting up".20376 if time.monotonic() > deadline:20377 msg = "postgres did not start"20378> raise RuntimeError(msg)20379E RuntimeError: postgres did not start2038020381nixbot/tests/support.py:319: RuntimeError20382__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________20383[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142038420385self = <Coroutine test_locked_effect_gets_shared_dedup_key>2038620387 def setup(self) -> None:20388 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20389 if runner_fixture_id not in self.fixturenames:20390 self.fixturenames.append(runner_fixture_id)20391 # When loop factories are configured, resolve the loop factory20392 # fixture early so that a factory variant change cascades cache20393 # invalidation before any async fixture checks its cache.20394 hook_caller = self.config.hook.pytest_asyncio_loop_factories20395 if hook_caller.get_hookimpls():20396 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20397> return super().setup()20398 ^^^^^^^^^^^^^^^2039920400/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20401_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20402nixbot/tests/conftest.py:33: in postgres_dsn20403 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20404 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20405/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20406 return next(self.gen)20407 ^^^^^^^^^^^^^^20408_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2040920410tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20411dbname = 'orchestrator'2041220413 @contextlib.contextmanager20414 def ephemeral_postgres(20415 tmp_path_factory: pytest.TempPathFactory, dbname: str20416 ) -> Iterator[str]:20417 """Throwaway Postgres on a unix socket with migrations applied."""20418 datadir = tmp_path_factory.mktemp("pgdata")20419 sockdir = tmp_path_factory.mktemp("pgsock")20420 subprocess.run( # noqa: S60320421 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20422 check=True,20423 capture_output=True,20424 )20425 proc = subprocess.Popen( # noqa: S60320426 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20427 stdout=subprocess.DEVNULL,20428 stderr=subprocess.DEVNULL,20429 )20430 try:20431 deadline = time.monotonic() + 3020432 while (20433 subprocess.run( # noqa: S60320434 ["pg_isready", "-h", str(sockdir), "-U", "test"],20435 check=False,20436 capture_output=True,20437 ).returncode20438 != 020439 ):20440 # The socket appears before recovery finishes; createdb would20441 # fail with "the database system is starting up".20442 if time.monotonic() > deadline:20443 msg = "postgres did not start"20444> raise RuntimeError(msg)20445E RuntimeError: postgres did not start2044620447nixbot/tests/support.py:319: RuntimeError20448________ ERROR at setup of test_scheduled_run_viewer_cross_project_404 _________20449[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142045020451request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20452tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2045320454 @pytest.fixture(scope="module")20455 def postgres_dsn(20456 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20457 ) -> Iterator[str]:20458 if shutil.which("initdb") is None:20459 pytest.skip("postgresql not available")20460 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20461> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20462 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2046320464nixbot/tests/conftest.py:33: 20465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20466/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20467 return next(self.gen)20468 ^^^^^^^^^^^^^^20469_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2047020471tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20472dbname = 'web'2047320474 @contextlib.contextmanager20475 def ephemeral_postgres(20476 tmp_path_factory: pytest.TempPathFactory, dbname: str20477 ) -> Iterator[str]:20478 """Throwaway Postgres on a unix socket with migrations applied."""20479 datadir = tmp_path_factory.mktemp("pgdata")20480 sockdir = tmp_path_factory.mktemp("pgsock")20481 subprocess.run( # noqa: S60320482 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20483 check=True,20484 capture_output=True,20485 )20486 proc = subprocess.Popen( # noqa: S60320487 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20488 stdout=subprocess.DEVNULL,20489 stderr=subprocess.DEVNULL,20490 )20491 try:20492 deadline = time.monotonic() + 3020493 while (20494 subprocess.run( # noqa: S60320495 ["pg_isready", "-h", str(sockdir), "-U", "test"],20496 check=False,20497 capture_output=True,20498 ).returncode20499 != 020500 ):20501 # The socket appears before recovery finishes; createdb would20502 # fail with "the database system is starting up".20503 if time.monotonic() > deadline:20504 msg = "postgres did not start"20505> raise RuntimeError(msg)20506E RuntimeError: postgres did not start2050720508nixbot/tests/support.py:319: RuntimeError20509_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______20510[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142051120512request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20513tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2051420515 @pytest.fixture(scope="module")20516 def postgres_dsn(20517 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20518 ) -> Iterator[str]:20519 if shutil.which("initdb") is None:20520 pytest.skip("postgresql not available")20521 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20522> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20523 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2052420525nixbot/tests/conftest.py:33: 20526_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20527/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20528 return next(self.gen)20529 ^^^^^^^^^^^^^^20530_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2053120532tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20533dbname = 'web'2053420535 @contextlib.contextmanager20536 def ephemeral_postgres(20537 tmp_path_factory: pytest.TempPathFactory, dbname: str20538 ) -> Iterator[str]:20539 """Throwaway Postgres on a unix socket with migrations applied."""20540 datadir = tmp_path_factory.mktemp("pgdata")20541 sockdir = tmp_path_factory.mktemp("pgsock")20542 subprocess.run( # noqa: S60320543 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20544 check=True,20545 capture_output=True,20546 )20547 proc = subprocess.Popen( # noqa: S60320548 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20549 stdout=subprocess.DEVNULL,20550 stderr=subprocess.DEVNULL,20551 )20552 try:20553 deadline = time.monotonic() + 3020554 while (20555 subprocess.run( # noqa: S60320556 ["pg_isready", "-h", str(sockdir), "-U", "test"],20557 check=False,20558 capture_output=True,20559 ).returncode20560 != 020561 ):20562 # The socket appears before recovery finishes; createdb would20563 # fail with "the database system is starting up".20564 if time.monotonic() > deadline:20565 msg = "postgres did not start"20566> raise RuntimeError(msg)20567E RuntimeError: postgres did not start2056820569nixbot/tests/support.py:319: RuntimeError20570______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______20571[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142057220573self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2057420575 def setup(self) -> None:20576 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20577 if runner_fixture_id not in self.fixturenames:20578 self.fixturenames.append(runner_fixture_id)20579 # When loop factories are configured, resolve the loop factory20580 # fixture early so that a factory variant change cascades cache20581 # invalidation before any async fixture checks its cache.20582 hook_caller = self.config.hook.pytest_asyncio_loop_factories20583 if hook_caller.get_hookimpls():20584 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20585> return super().setup()20586 ^^^^^^^^^^^^^^^2058720588/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20589_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20590nixbot/tests/conftest.py:33: in postgres_dsn20591 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20592 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20593/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20594 return next(self.gen)20595 ^^^^^^^^^^^^^^20596_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2059720598tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20599dbname = 'orchestrator'2060020601 @contextlib.contextmanager20602 def ephemeral_postgres(20603 tmp_path_factory: pytest.TempPathFactory, dbname: str20604 ) -> Iterator[str]:20605 """Throwaway Postgres on a unix socket with migrations applied."""20606 datadir = tmp_path_factory.mktemp("pgdata")20607 sockdir = tmp_path_factory.mktemp("pgsock")20608 subprocess.run( # noqa: S60320609 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20610 check=True,20611 capture_output=True,20612 )20613 proc = subprocess.Popen( # noqa: S60320614 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20615 stdout=subprocess.DEVNULL,20616 stderr=subprocess.DEVNULL,20617 )20618 try:20619 deadline = time.monotonic() + 3020620 while (20621 subprocess.run( # noqa: S60320622 ["pg_isready", "-h", str(sockdir), "-U", "test"],20623 check=False,20624 capture_output=True,20625 ).returncode20626 != 020627 ):20628 # The socket appears before recovery finishes; createdb would20629 # fail with "the database system is starting up".20630 if time.monotonic() > deadline:20631 msg = "postgres did not start"20632> raise RuntimeError(msg)20633E RuntimeError: postgres did not start2063420635nixbot/tests/support.py:319: RuntimeError20636________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________20637[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142063820639request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20640tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2064120642 @pytest.fixture(scope="module")20643 def postgres_dsn(20644 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20645 ) -> Iterator[str]:20646 if shutil.which("initdb") is None:20647 pytest.skip("postgresql not available")20648 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20649> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20650 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2065120652nixbot/tests/conftest.py:33: 20653_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20654/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20655 return next(self.gen)20656 ^^^^^^^^^^^^^^20657_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2065820659tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20660dbname = 'web'2066120662 @contextlib.contextmanager20663 def ephemeral_postgres(20664 tmp_path_factory: pytest.TempPathFactory, dbname: str20665 ) -> Iterator[str]:20666 """Throwaway Postgres on a unix socket with migrations applied."""20667 datadir = tmp_path_factory.mktemp("pgdata")20668 sockdir = tmp_path_factory.mktemp("pgsock")20669 subprocess.run( # noqa: S60320670 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20671 check=True,20672 capture_output=True,20673 )20674 proc = subprocess.Popen( # noqa: S60320675 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20676 stdout=subprocess.DEVNULL,20677 stderr=subprocess.DEVNULL,20678 )20679 try:20680 deadline = time.monotonic() + 3020681 while (20682 subprocess.run( # noqa: S60320683 ["pg_isready", "-h", str(sockdir), "-U", "test"],20684 check=False,20685 capture_output=True,20686 ).returncode20687 != 020688 ):20689 # The socket appears before recovery finishes; createdb would20690 # fail with "the database system is starting up".20691 if time.monotonic() > deadline:20692 msg = "postgres did not start"20693> raise RuntimeError(msg)20694E RuntimeError: postgres did not start2069520696nixbot/tests/support.py:319: RuntimeError20697__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________20698[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142069920700self = <Coroutine test_effect_dep_failure_skips_dependent>2070120702 def setup(self) -> None:20703 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20704 if runner_fixture_id not in self.fixturenames:20705 self.fixturenames.append(runner_fixture_id)20706 # When loop factories are configured, resolve the loop factory20707 # fixture early so that a factory variant change cascades cache20708 # invalidation before any async fixture checks its cache.20709 hook_caller = self.config.hook.pytest_asyncio_loop_factories20710 if hook_caller.get_hookimpls():20711 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20712> return super().setup()20713 ^^^^^^^^^^^^^^^2071420715/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20716_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20717nixbot/tests/conftest.py:33: in postgres_dsn20718 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20719 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20720/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20721 return next(self.gen)20722 ^^^^^^^^^^^^^^20723_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2072420725tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20726dbname = 'orchestrator'2072720728 @contextlib.contextmanager20729 def ephemeral_postgres(20730 tmp_path_factory: pytest.TempPathFactory, dbname: str20731 ) -> Iterator[str]:20732 """Throwaway Postgres on a unix socket with migrations applied."""20733 datadir = tmp_path_factory.mktemp("pgdata")20734 sockdir = tmp_path_factory.mktemp("pgsock")20735 subprocess.run( # noqa: S60320736 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20737 check=True,20738 capture_output=True,20739 )20740 proc = subprocess.Popen( # noqa: S60320741 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20742 stdout=subprocess.DEVNULL,20743 stderr=subprocess.DEVNULL,20744 )20745 try:20746 deadline = time.monotonic() + 3020747 while (20748 subprocess.run( # noqa: S60320749 ["pg_isready", "-h", str(sockdir), "-U", "test"],20750 check=False,20751 capture_output=True,20752 ).returncode20753 != 020754 ):20755 # The socket appears before recovery finishes; createdb would20756 # fail with "the database system is starting up".20757 if time.monotonic() > deadline:20758 msg = "postgres did not start"20759> raise RuntimeError(msg)20760E RuntimeError: postgres did not start2076120762nixbot/tests/support.py:319: RuntimeError20763_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________20764[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142076520766request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20767tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2076820769 @pytest.fixture(scope="module")20770 def postgres_dsn(20771 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20772 ) -> Iterator[str]:20773 if shutil.which("initdb") is None:20774 pytest.skip("postgresql not available")20775 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20776> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20777 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2077820779nixbot/tests/conftest.py:33: 20780_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20781/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20782 return next(self.gen)20783 ^^^^^^^^^^^^^^20784_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2078520786tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20787dbname = 'web'2078820789 @contextlib.contextmanager20790 def ephemeral_postgres(20791 tmp_path_factory: pytest.TempPathFactory, dbname: str20792 ) -> Iterator[str]:20793 """Throwaway Postgres on a unix socket with migrations applied."""20794 datadir = tmp_path_factory.mktemp("pgdata")20795 sockdir = tmp_path_factory.mktemp("pgsock")20796 subprocess.run( # noqa: S60320797 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20798 check=True,20799 capture_output=True,20800 )20801 proc = subprocess.Popen( # noqa: S60320802 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20803 stdout=subprocess.DEVNULL,20804 stderr=subprocess.DEVNULL,20805 )20806 try:20807 deadline = time.monotonic() + 3020808 while (20809 subprocess.run( # noqa: S60320810 ["pg_isready", "-h", str(sockdir), "-U", "test"],20811 check=False,20812 capture_output=True,20813 ).returncode20814 != 020815 ):20816 # The socket appears before recovery finishes; createdb would20817 # fail with "the database system is starting up".20818 if time.monotonic() > deadline:20819 msg = "postgres did not start"20820> raise RuntimeError(msg)20821E RuntimeError: postgres did not start2082220823nixbot/tests/support.py:319: RuntimeError20824_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __20825[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142082620827request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20828tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2082920830 @pytest.fixture(scope="module")20831 def postgres_dsn(20832 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20833 ) -> Iterator[str]:20834 if shutil.which("initdb") is None:20835 pytest.skip("postgresql not available")20836 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20837> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20838 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2083920840nixbot/tests/conftest.py:33: 20841_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20842/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20843 return next(self.gen)20844 ^^^^^^^^^^^^^^20845_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2084620847tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20848dbname = 'web'2084920850 @contextlib.contextmanager20851 def ephemeral_postgres(20852 tmp_path_factory: pytest.TempPathFactory, dbname: str20853 ) -> Iterator[str]:20854 """Throwaway Postgres on a unix socket with migrations applied."""20855 datadir = tmp_path_factory.mktemp("pgdata")20856 sockdir = tmp_path_factory.mktemp("pgsock")20857 subprocess.run( # noqa: S60320858 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20859 check=True,20860 capture_output=True,20861 )20862 proc = subprocess.Popen( # noqa: S60320863 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20864 stdout=subprocess.DEVNULL,20865 stderr=subprocess.DEVNULL,20866 )20867 try:20868 deadline = time.monotonic() + 3020869 while (20870 subprocess.run( # noqa: S60320871 ["pg_isready", "-h", str(sockdir), "-U", "test"],20872 check=False,20873 capture_output=True,20874 ).returncode20875 != 020876 ):20877 # The socket appears before recovery finishes; createdb would20878 # fail with "the database system is starting up".20879 if time.monotonic() > deadline:20880 msg = "postgres did not start"20881> raise RuntimeError(msg)20882E RuntimeError: postgres did not start2088320884nixbot/tests/support.py:319: RuntimeError20885______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______20886[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142088720888self = <Coroutine test_lock_serializes_builds_without_interleaving>2088920890 def setup(self) -> None:20891 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20892 if runner_fixture_id not in self.fixturenames:20893 self.fixturenames.append(runner_fixture_id)20894 # When loop factories are configured, resolve the loop factory20895 # fixture early so that a factory variant change cascades cache20896 # invalidation before any async fixture checks its cache.20897 hook_caller = self.config.hook.pytest_asyncio_loop_factories20898 if hook_caller.get_hookimpls():20899 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20900> return super().setup()20901 ^^^^^^^^^^^^^^^2090220903/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20904_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20905nixbot/tests/conftest.py:33: in postgres_dsn20906 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20907 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20908/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20909 return next(self.gen)20910 ^^^^^^^^^^^^^^20911_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2091220913tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20914dbname = 'orchestrator'2091520916 @contextlib.contextmanager20917 def ephemeral_postgres(20918 tmp_path_factory: pytest.TempPathFactory, dbname: str20919 ) -> Iterator[str]:20920 """Throwaway Postgres on a unix socket with migrations applied."""20921 datadir = tmp_path_factory.mktemp("pgdata")20922 sockdir = tmp_path_factory.mktemp("pgsock")20923 subprocess.run( # noqa: S60320924 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20925 check=True,20926 capture_output=True,20927 )20928 proc = subprocess.Popen( # noqa: S60320929 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20930 stdout=subprocess.DEVNULL,20931 stderr=subprocess.DEVNULL,20932 )20933 try:20934 deadline = time.monotonic() + 3020935 while (20936 subprocess.run( # noqa: S60320937 ["pg_isready", "-h", str(sockdir), "-U", "test"],20938 check=False,20939 capture_output=True,20940 ).returncode20941 != 020942 ):20943 # The socket appears before recovery finishes; createdb would20944 # fail with "the database system is starting up".20945 if time.monotonic() > deadline:20946 msg = "postgres did not start"20947> raise RuntimeError(msg)20948E RuntimeError: postgres did not start2094920950nixbot/tests/support.py:319: RuntimeError20951__________ ERROR at setup of test_old_schedule_history_url_redirects ___________20952[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142095320954request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20955tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2095620957 @pytest.fixture(scope="module")20958 def postgres_dsn(20959 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20960 ) -> Iterator[str]:20961 if shutil.which("initdb") is None:20962 pytest.skip("postgresql not available")20963 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20964> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20965 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2096620967nixbot/tests/conftest.py:33: 20968_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20969/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20970 return next(self.gen)20971 ^^^^^^^^^^^^^^20972_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2097320974tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20975dbname = 'web'2097620977 @contextlib.contextmanager20978 def ephemeral_postgres(20979 tmp_path_factory: pytest.TempPathFactory, dbname: str20980 ) -> Iterator[str]:20981 """Throwaway Postgres on a unix socket with migrations applied."""20982 datadir = tmp_path_factory.mktemp("pgdata")20983 sockdir = tmp_path_factory.mktemp("pgsock")20984 subprocess.run( # noqa: S60320985 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20986 check=True,20987 capture_output=True,20988 )20989 proc = subprocess.Popen( # noqa: S60320990 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20991 stdout=subprocess.DEVNULL,20992 stderr=subprocess.DEVNULL,20993 )20994 try:20995 deadline = time.monotonic() + 3020996 while (20997 subprocess.run( # noqa: S60320998 ["pg_isready", "-h", str(sockdir), "-U", "test"],20999 check=False,21000 capture_output=True,21001 ).returncode21002 != 021003 ):21004 # The socket appears before recovery finishes; createdb would21005 # fail with "the database system is starting up".21006 if time.monotonic() > deadline:21007 msg = "postgres did not start"21008> raise RuntimeError(msg)21009E RuntimeError: postgres did not start2101021011nixbot/tests/support.py:319: RuntimeError21012__________ ERROR at setup of test_project_effects_filter_and_paginate __________21013[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142101421015request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21016tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2101721018 @pytest.fixture(scope="module")21019 def postgres_dsn(21020 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21021 ) -> Iterator[str]:21022 if shutil.which("initdb") is None:21023 pytest.skip("postgresql not available")21024 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21025> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21026 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2102721028nixbot/tests/conftest.py:33: 21029_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21030/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21031 return next(self.gen)21032 ^^^^^^^^^^^^^^21033_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2103421035tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21036dbname = 'web'2103721038 @contextlib.contextmanager21039 def ephemeral_postgres(21040 tmp_path_factory: pytest.TempPathFactory, dbname: str21041 ) -> Iterator[str]:21042 """Throwaway Postgres on a unix socket with migrations applied."""21043 datadir = tmp_path_factory.mktemp("pgdata")21044 sockdir = tmp_path_factory.mktemp("pgsock")21045 subprocess.run( # noqa: S60321046 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21047 check=True,21048 capture_output=True,21049 )21050 proc = subprocess.Popen( # noqa: S60321051 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21052 stdout=subprocess.DEVNULL,21053 stderr=subprocess.DEVNULL,21054 )21055 try:21056 deadline = time.monotonic() + 3021057 while (21058 subprocess.run( # noqa: S60321059 ["pg_isready", "-h", str(sockdir), "-U", "test"],21060 check=False,21061 capture_output=True,21062 ).returncode21063 != 021064 ):21065 # The socket appears before recovery finishes; createdb would21066 # fail with "the database system is starting up".21067 if time.monotonic() > deadline:21068 msg = "postgres did not start"21069> raise RuntimeError(msg)21070E RuntimeError: postgres did not start2107121072nixbot/tests/support.py:319: RuntimeError21073___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21074[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142107521076self = <Coroutine test_effect_dep_cycle_fails_discovery>2107721078 def setup(self) -> None:21079 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21080 if runner_fixture_id not in self.fixturenames:21081 self.fixturenames.append(runner_fixture_id)21082 # When loop factories are configured, resolve the loop factory21083 # fixture early so that a factory variant change cascades cache21084 # invalidation before any async fixture checks its cache.21085 hook_caller = self.config.hook.pytest_asyncio_loop_factories21086 if hook_caller.get_hookimpls():21087 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21088> return super().setup()21089 ^^^^^^^^^^^^^^^2109021091/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21092_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21093nixbot/tests/conftest.py:33: in postgres_dsn21094 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21095 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21096/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21097 return next(self.gen)21098 ^^^^^^^^^^^^^^21099_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2110021101tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21102dbname = 'orchestrator'2110321104 @contextlib.contextmanager21105 def ephemeral_postgres(21106 tmp_path_factory: pytest.TempPathFactory, dbname: str21107 ) -> Iterator[str]:21108 """Throwaway Postgres on a unix socket with migrations applied."""21109 datadir = tmp_path_factory.mktemp("pgdata")21110 sockdir = tmp_path_factory.mktemp("pgsock")21111 subprocess.run( # noqa: S60321112 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21113 check=True,21114 capture_output=True,21115 )21116 proc = subprocess.Popen( # noqa: S60321117 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21118 stdout=subprocess.DEVNULL,21119 stderr=subprocess.DEVNULL,21120 )21121 try:21122 deadline = time.monotonic() + 3021123 while (21124 subprocess.run( # noqa: S60321125 ["pg_isready", "-h", str(sockdir), "-U", "test"],21126 check=False,21127 capture_output=True,21128 ).returncode21129 != 021130 ):21131 # The socket appears before recovery finishes; createdb would21132 # fail with "the database system is starting up".21133 if time.monotonic() > deadline:21134 msg = "postgres did not start"21135> raise RuntimeError(msg)21136E RuntimeError: postgres did not start2113721138nixbot/tests/support.py:319: RuntimeError21139_________ ERROR at setup of test_scheduled_run_stream_replays_history __________21140[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142114121142request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21143tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2114421145 @pytest.fixture(scope="module")21146 def postgres_dsn(21147 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21148 ) -> Iterator[str]:21149 if shutil.which("initdb") is None:21150 pytest.skip("postgresql not available")21151 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21152> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21153 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2115421155nixbot/tests/conftest.py:33: 21156_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21157/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21158 return next(self.gen)21159 ^^^^^^^^^^^^^^21160_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2116121162tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21163dbname = 'web'2116421165 @contextlib.contextmanager21166 def ephemeral_postgres(21167 tmp_path_factory: pytest.TempPathFactory, dbname: str21168 ) -> Iterator[str]:21169 """Throwaway Postgres on a unix socket with migrations applied."""21170 datadir = tmp_path_factory.mktemp("pgdata")21171 sockdir = tmp_path_factory.mktemp("pgsock")21172 subprocess.run( # noqa: S60321173 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21174 check=True,21175 capture_output=True,21176 )21177 proc = subprocess.Popen( # noqa: S60321178 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21179 stdout=subprocess.DEVNULL,21180 stderr=subprocess.DEVNULL,21181 )21182 try:21183 deadline = time.monotonic() + 3021184 while (21185 subprocess.run( # noqa: S60321186 ["pg_isready", "-h", str(sockdir), "-U", "test"],21187 check=False,21188 capture_output=True,21189 ).returncode21190 != 021191 ):21192 # The socket appears before recovery finishes; createdb would21193 # fail with "the database system is starting up".21194 if time.monotonic() > deadline:21195 msg = "postgres did not start"21196> raise RuntimeError(msg)21197E RuntimeError: postgres did not start2119821199nixbot/tests/support.py:319: RuntimeError21200_________ ERROR at setup of test_failed_effect_reports_failure_status __________21201[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142120221203self = <Coroutine test_failed_effect_reports_failure_status>2120421205 def setup(self) -> None:21206 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21207 if runner_fixture_id not in self.fixturenames:21208 self.fixturenames.append(runner_fixture_id)21209 # When loop factories are configured, resolve the loop factory21210 # fixture early so that a factory variant change cascades cache21211 # invalidation before any async fixture checks its cache.21212 hook_caller = self.config.hook.pytest_asyncio_loop_factories21213 if hook_caller.get_hookimpls():21214 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21215> return super().setup()21216 ^^^^^^^^^^^^^^^2121721218/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21219_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21220nixbot/tests/conftest.py:33: in postgres_dsn21221 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21222 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21223/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21224 return next(self.gen)21225 ^^^^^^^^^^^^^^21226_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2122721228tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21229dbname = 'orchestrator'2123021231 @contextlib.contextmanager21232 def ephemeral_postgres(21233 tmp_path_factory: pytest.TempPathFactory, dbname: str21234 ) -> Iterator[str]:21235 """Throwaway Postgres on a unix socket with migrations applied."""21236 datadir = tmp_path_factory.mktemp("pgdata")21237 sockdir = tmp_path_factory.mktemp("pgsock")21238 subprocess.run( # noqa: S60321239 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21240 check=True,21241 capture_output=True,21242 )21243 proc = subprocess.Popen( # noqa: S60321244 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21245 stdout=subprocess.DEVNULL,21246 stderr=subprocess.DEVNULL,21247 )21248 try:21249 deadline = time.monotonic() + 3021250 while (21251 subprocess.run( # noqa: S60321252 ["pg_isready", "-h", str(sockdir), "-U", "test"],21253 check=False,21254 capture_output=True,21255 ).returncode21256 != 021257 ):21258 # The socket appears before recovery finishes; createdb would21259 # fail with "the database system is starting up".21260 if time.monotonic() > deadline:21261 msg = "postgres did not start"21262> raise RuntimeError(msg)21263E RuntimeError: postgres did not start2126421265nixbot/tests/support.py:319: RuntimeError21266___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21267[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142126821269request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21270tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2127121272 @pytest.fixture(scope="module")21273 def postgres_dsn(21274 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21275 ) -> Iterator[str]:21276 if shutil.which("initdb") is None:21277 pytest.skip("postgresql not available")21278 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21279> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21280 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2128121282nixbot/tests/conftest.py:33: 21283_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21284/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21285 return next(self.gen)21286 ^^^^^^^^^^^^^^21287_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2128821289tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21290dbname = 'web'2129121292 @contextlib.contextmanager21293 def ephemeral_postgres(21294 tmp_path_factory: pytest.TempPathFactory, dbname: str21295 ) -> Iterator[str]:21296 """Throwaway Postgres on a unix socket with migrations applied."""21297 datadir = tmp_path_factory.mktemp("pgdata")21298 sockdir = tmp_path_factory.mktemp("pgsock")21299 subprocess.run( # noqa: S60321300 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21301 check=True,21302 capture_output=True,21303 )21304 proc = subprocess.Popen( # noqa: S60321305 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21306 stdout=subprocess.DEVNULL,21307 stderr=subprocess.DEVNULL,21308 )21309 try:21310 deadline = time.monotonic() + 3021311 while (21312 subprocess.run( # noqa: S60321313 ["pg_isready", "-h", str(sockdir), "-U", "test"],21314 check=False,21315 capture_output=True,21316 ).returncode21317 != 021318 ):21319 # The socket appears before recovery finishes; createdb would21320 # fail with "the database system is starting up".21321 if time.monotonic() > deadline:21322 msg = "postgres did not start"21323> raise RuntimeError(msg)21324E RuntimeError: postgres did not start2132521326nixbot/tests/support.py:319: RuntimeError21327_________________ ERROR at setup of test_api_log_toc_and_text __________________21328[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142132921330request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21331tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2133221333 @pytest.fixture(scope="module")21334 def postgres_dsn(21335 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21336 ) -> Iterator[str]:21337 if shutil.which("initdb") is None:21338 pytest.skip("postgresql not available")21339 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21340> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21341 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2134221343nixbot/tests/conftest.py:33: 21344_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21345/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21346 return next(self.gen)21347 ^^^^^^^^^^^^^^21348_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2134921350tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21351dbname = 'web'2135221353 @contextlib.contextmanager21354 def ephemeral_postgres(21355 tmp_path_factory: pytest.TempPathFactory, dbname: str21356 ) -> Iterator[str]:21357 """Throwaway Postgres on a unix socket with migrations applied."""21358 datadir = tmp_path_factory.mktemp("pgdata")21359 sockdir = tmp_path_factory.mktemp("pgsock")21360 subprocess.run( # noqa: S60321361 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21362 check=True,21363 capture_output=True,21364 )21365 proc = subprocess.Popen( # noqa: S60321366 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21367 stdout=subprocess.DEVNULL,21368 stderr=subprocess.DEVNULL,21369 )21370 try:21371 deadline = time.monotonic() + 3021372 while (21373 subprocess.run( # noqa: S60321374 ["pg_isready", "-h", str(sockdir), "-U", "test"],21375 check=False,21376 capture_output=True,21377 ).returncode21378 != 021379 ):21380 # The socket appears before recovery finishes; createdb would21381 # fail with "the database system is starting up".21382 if time.monotonic() > deadline:21383 msg = "postgres did not start"21384> raise RuntimeError(msg)21385E RuntimeError: postgres did not start2138621387nixbot/tests/support.py:319: RuntimeError21388________ ERROR at setup of test_post_process_error_does_not_wedge_build ________21389[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142139021391self = <Coroutine test_post_process_error_does_not_wedge_build>2139221393 def setup(self) -> None:21394 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21395 if runner_fixture_id not in self.fixturenames:21396 self.fixturenames.append(runner_fixture_id)21397 # When loop factories are configured, resolve the loop factory21398 # fixture early so that a factory variant change cascades cache21399 # invalidation before any async fixture checks its cache.21400 hook_caller = self.config.hook.pytest_asyncio_loop_factories21401 if hook_caller.get_hookimpls():21402 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21403> return super().setup()21404 ^^^^^^^^^^^^^^^2140521406/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21407_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21408nixbot/tests/conftest.py:33: in postgres_dsn21409 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21410 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21411/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21412 return next(self.gen)21413 ^^^^^^^^^^^^^^21414_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2141521416tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21417dbname = 'orchestrator'2141821419 @contextlib.contextmanager21420 def ephemeral_postgres(21421 tmp_path_factory: pytest.TempPathFactory, dbname: str21422 ) -> Iterator[str]:21423 """Throwaway Postgres on a unix socket with migrations applied."""21424 datadir = tmp_path_factory.mktemp("pgdata")21425 sockdir = tmp_path_factory.mktemp("pgsock")21426 subprocess.run( # noqa: S60321427 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21428 check=True,21429 capture_output=True,21430 )21431 proc = subprocess.Popen( # noqa: S60321432 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21433 stdout=subprocess.DEVNULL,21434 stderr=subprocess.DEVNULL,21435 )21436 try:21437 deadline = time.monotonic() + 3021438 while (21439 subprocess.run( # noqa: S60321440 ["pg_isready", "-h", str(sockdir), "-U", "test"],21441 check=False,21442 capture_output=True,21443 ).returncode21444 != 021445 ):21446 # The socket appears before recovery finishes; createdb would21447 # fail with "the database system is starting up".21448 if time.monotonic() > deadline:21449 msg = "postgres did not start"21450> raise RuntimeError(msg)21451E RuntimeError: postgres did not start2145221453nixbot/tests/support.py:319: RuntimeError21454_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21455[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142145621457request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21458tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2145921460 @pytest.fixture(scope="module")21461 def postgres_dsn(21462 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21463 ) -> Iterator[str]:21464 if shutil.which("initdb") is None:21465 pytest.skip("postgresql not available")21466 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21467> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21468 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2146921470nixbot/tests/conftest.py:33: 21471_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21472/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21473 return next(self.gen)21474 ^^^^^^^^^^^^^^21475_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2147621477tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21478dbname = 'web'2147921480 @contextlib.contextmanager21481 def ephemeral_postgres(21482 tmp_path_factory: pytest.TempPathFactory, dbname: str21483 ) -> Iterator[str]:21484 """Throwaway Postgres on a unix socket with migrations applied."""21485 datadir = tmp_path_factory.mktemp("pgdata")21486 sockdir = tmp_path_factory.mktemp("pgsock")21487 subprocess.run( # noqa: S60321488 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21489 check=True,21490 capture_output=True,21491 )21492 proc = subprocess.Popen( # noqa: S60321493 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21494 stdout=subprocess.DEVNULL,21495 stderr=subprocess.DEVNULL,21496 )21497 try:21498 deadline = time.monotonic() + 3021499 while (21500 subprocess.run( # noqa: S60321501 ["pg_isready", "-h", str(sockdir), "-U", "test"],21502 check=False,21503 capture_output=True,21504 ).returncode21505 != 021506 ):21507 # The socket appears before recovery finishes; createdb would21508 # fail with "the database system is starting up".21509 if time.monotonic() > deadline:21510 msg = "postgres did not start"21511> raise RuntimeError(msg)21512E RuntimeError: postgres did not start2151321514nixbot/tests/support.py:319: RuntimeError21515__________________ ERROR at setup of test_api_log_stream_json __________________21516[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142151721518request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21519tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2152021521 @pytest.fixture(scope="module")21522 def postgres_dsn(21523 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21524 ) -> Iterator[str]:21525 if shutil.which("initdb") is None:21526 pytest.skip("postgresql not available")21527 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21528> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21529 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2153021531nixbot/tests/conftest.py:33: 21532_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21533/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21534 return next(self.gen)21535 ^^^^^^^^^^^^^^21536_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153721538tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21539dbname = 'web'2154021541 @contextlib.contextmanager21542 def ephemeral_postgres(21543 tmp_path_factory: pytest.TempPathFactory, dbname: str21544 ) -> Iterator[str]:21545 """Throwaway Postgres on a unix socket with migrations applied."""21546 datadir = tmp_path_factory.mktemp("pgdata")21547 sockdir = tmp_path_factory.mktemp("pgsock")21548 subprocess.run( # noqa: S60321549 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21550 check=True,21551 capture_output=True,21552 )21553 proc = subprocess.Popen( # noqa: S60321554 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21555 stdout=subprocess.DEVNULL,21556 stderr=subprocess.DEVNULL,21557 )21558 try:21559 deadline = time.monotonic() + 3021560 while (21561 subprocess.run( # noqa: S60321562 ["pg_isready", "-h", str(sockdir), "-U", "test"],21563 check=False,21564 capture_output=True,21565 ).returncode21566 != 021567 ):21568 # The socket appears before recovery finishes; createdb would21569 # fail with "the database system is starting up".21570 if time.monotonic() > deadline:21571 msg = "postgres did not start"21572> raise RuntimeError(msg)21573E RuntimeError: postgres did not start2157421575nixbot/tests/support.py:319: RuntimeError21576_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________21577[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157821579self = <Coroutine test_unexpected_eval_path_error_settles_build>2158021581 def setup(self) -> None:21582 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21583 if runner_fixture_id not in self.fixturenames:21584 self.fixturenames.append(runner_fixture_id)21585 # When loop factories are configured, resolve the loop factory21586 # fixture early so that a factory variant change cascades cache21587 # invalidation before any async fixture checks its cache.21588 hook_caller = self.config.hook.pytest_asyncio_loop_factories21589 if hook_caller.get_hookimpls():21590 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21591> return super().setup()21592 ^^^^^^^^^^^^^^^2159321594/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21595_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21596nixbot/tests/conftest.py:33: in postgres_dsn21597 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21598 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21599/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21600 return next(self.gen)21601 ^^^^^^^^^^^^^^21602_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2160321604tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21605dbname = 'orchestrator'2160621607 @contextlib.contextmanager21608 def ephemeral_postgres(21609 tmp_path_factory: pytest.TempPathFactory, dbname: str21610 ) -> Iterator[str]:21611 """Throwaway Postgres on a unix socket with migrations applied."""21612 datadir = tmp_path_factory.mktemp("pgdata")21613 sockdir = tmp_path_factory.mktemp("pgsock")21614 subprocess.run( # noqa: S60321615 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21616 check=True,21617 capture_output=True,21618 )21619 proc = subprocess.Popen( # noqa: S60321620 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21621 stdout=subprocess.DEVNULL,21622 stderr=subprocess.DEVNULL,21623 )21624 try:21625 deadline = time.monotonic() + 3021626 while (21627 subprocess.run( # noqa: S60321628 ["pg_isready", "-h", str(sockdir), "-U", "test"],21629 check=False,21630 capture_output=True,21631 ).returncode21632 != 021633 ):21634 # The socket appears before recovery finishes; createdb would21635 # fail with "the database system is starting up".21636 if time.monotonic() > deadline:21637 msg = "postgres did not start"21638> raise RuntimeError(msg)21639E RuntimeError: postgres did not start2164021641nixbot/tests/support.py:319: RuntimeError21642_______________ ERROR at setup of test_build_eval_stats_surface ________________21643[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142164421645request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21646tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2164721648 @pytest.fixture(scope="module")21649 def postgres_dsn(21650 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21651 ) -> Iterator[str]:21652 if shutil.which("initdb") is None:21653 pytest.skip("postgresql not available")21654 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21655> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21656 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2165721658nixbot/tests/conftest.py:33: 21659_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21660/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21661 return next(self.gen)21662 ^^^^^^^^^^^^^^21663_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2166421665tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21666dbname = 'web'2166721668 @contextlib.contextmanager21669 def ephemeral_postgres(21670 tmp_path_factory: pytest.TempPathFactory, dbname: str21671 ) -> Iterator[str]:21672 """Throwaway Postgres on a unix socket with migrations applied."""21673 datadir = tmp_path_factory.mktemp("pgdata")21674 sockdir = tmp_path_factory.mktemp("pgsock")21675 subprocess.run( # noqa: S60321676 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21677 check=True,21678 capture_output=True,21679 )21680 proc = subprocess.Popen( # noqa: S60321681 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21682 stdout=subprocess.DEVNULL,21683 stderr=subprocess.DEVNULL,21684 )21685 try:21686 deadline = time.monotonic() + 3021687 while (21688 subprocess.run( # noqa: S60321689 ["pg_isready", "-h", str(sockdir), "-U", "test"],21690 check=False,21691 capture_output=True,21692 ).returncode21693 != 021694 ):21695 # The socket appears before recovery finishes; createdb would21696 # fail with "the database system is starting up".21697 if time.monotonic() > deadline:21698 msg = "postgres did not start"21699> raise RuntimeError(msg)21700E RuntimeError: postgres did not start2170121702nixbot/tests/support.py:319: RuntimeError21703____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____21704[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170521706self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2170721708 def setup(self) -> None:21709 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21710 if runner_fixture_id not in self.fixturenames:21711 self.fixturenames.append(runner_fixture_id)21712 # When loop factories are configured, resolve the loop factory21713 # fixture early so that a factory variant change cascades cache21714 # invalidation before any async fixture checks its cache.21715 hook_caller = self.config.hook.pytest_asyncio_loop_factories21716 if hook_caller.get_hookimpls():21717 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21718> return super().setup()21719 ^^^^^^^^^^^^^^^2172021721/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21722_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21723nixbot/tests/conftest.py:33: in postgres_dsn21724 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21725 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21726/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21727 return next(self.gen)21728 ^^^^^^^^^^^^^^21729_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173021731tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21732dbname = 'orchestrator'2173321734 @contextlib.contextmanager21735 def ephemeral_postgres(21736 tmp_path_factory: pytest.TempPathFactory, dbname: str21737 ) -> Iterator[str]:21738 """Throwaway Postgres on a unix socket with migrations applied."""21739 datadir = tmp_path_factory.mktemp("pgdata")21740 sockdir = tmp_path_factory.mktemp("pgsock")21741 subprocess.run( # noqa: S60321742 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21743 check=True,21744 capture_output=True,21745 )21746 proc = subprocess.Popen( # noqa: S60321747 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21748 stdout=subprocess.DEVNULL,21749 stderr=subprocess.DEVNULL,21750 )21751 try:21752 deadline = time.monotonic() + 3021753 while (21754 subprocess.run( # noqa: S60321755 ["pg_isready", "-h", str(sockdir), "-U", "test"],21756 check=False,21757 capture_output=True,21758 ).returncode21759 != 021760 ):21761 # The socket appears before recovery finishes; createdb would21762 # fail with "the database system is starting up".21763 if time.monotonic() > deadline:21764 msg = "postgres did not start"21765> raise RuntimeError(msg)21766E RuntimeError: postgres did not start2176721768nixbot/tests/support.py:319: RuntimeError21769__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __21770[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177121772self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2177321774 def setup(self) -> None:21775 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21776 if runner_fixture_id not in self.fixturenames:21777 self.fixturenames.append(runner_fixture_id)21778 # When loop factories are configured, resolve the loop factory21779 # fixture early so that a factory variant change cascades cache21780 # invalidation before any async fixture checks its cache.21781 hook_caller = self.config.hook.pytest_asyncio_loop_factories21782 if hook_caller.get_hookimpls():21783 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21784> return super().setup()21785 ^^^^^^^^^^^^^^^2178621787/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21788_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21789nixbot/tests/conftest.py:33: in postgres_dsn21790 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21791 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21792/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21793 return next(self.gen)21794 ^^^^^^^^^^^^^^21795_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2179621797tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21798dbname = 'orchestrator'2179921800 @contextlib.contextmanager21801 def ephemeral_postgres(21802 tmp_path_factory: pytest.TempPathFactory, dbname: str21803 ) -> Iterator[str]:21804 """Throwaway Postgres on a unix socket with migrations applied."""21805 datadir = tmp_path_factory.mktemp("pgdata")21806 sockdir = tmp_path_factory.mktemp("pgsock")21807 subprocess.run( # noqa: S60321808 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21809 check=True,21810 capture_output=True,21811 )21812 proc = subprocess.Popen( # noqa: S60321813 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21814 stdout=subprocess.DEVNULL,21815 stderr=subprocess.DEVNULL,21816 )21817 try:21818 deadline = time.monotonic() + 3021819 while (21820 subprocess.run( # noqa: S60321821 ["pg_isready", "-h", str(sockdir), "-U", "test"],21822 check=False,21823 capture_output=True,21824 ).returncode21825 != 021826 ):21827 # The socket appears before recovery finishes; createdb would21828 # fail with "the database system is starting up".21829 if time.monotonic() > deadline:21830 msg = "postgres did not start"21831> raise RuntimeError(msg)21832E RuntimeError: postgres did not start2183321834nixbot/tests/support.py:319: RuntimeError21835______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______21836[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142183721838self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2183921840 def setup(self) -> None:21841 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21842 if runner_fixture_id not in self.fixturenames:21843 self.fixturenames.append(runner_fixture_id)21844 # When loop factories are configured, resolve the loop factory21845 # fixture early so that a factory variant change cascades cache21846 # invalidation before any async fixture checks its cache.21847 hook_caller = self.config.hook.pytest_asyncio_loop_factories21848 if hook_caller.get_hookimpls():21849 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21850> return super().setup()21851 ^^^^^^^^^^^^^^^2185221853/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21854_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21855nixbot/tests/conftest.py:33: in postgres_dsn21856 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21857 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21858/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21859 return next(self.gen)21860 ^^^^^^^^^^^^^^21861_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186221863tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21864dbname = 'orchestrator'2186521866 @contextlib.contextmanager21867 def ephemeral_postgres(21868 tmp_path_factory: pytest.TempPathFactory, dbname: str21869 ) -> Iterator[str]:21870 """Throwaway Postgres on a unix socket with migrations applied."""21871 datadir = tmp_path_factory.mktemp("pgdata")21872 sockdir = tmp_path_factory.mktemp("pgsock")21873 subprocess.run( # noqa: S60321874 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21875 check=True,21876 capture_output=True,21877 )21878 proc = subprocess.Popen( # noqa: S60321879 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21880 stdout=subprocess.DEVNULL,21881 stderr=subprocess.DEVNULL,21882 )21883 try:21884 deadline = time.monotonic() + 3021885 while (21886 subprocess.run( # noqa: S60321887 ["pg_isready", "-h", str(sockdir), "-U", "test"],21888 check=False,21889 capture_output=True,21890 ).returncode21891 != 021892 ):21893 # The socket appears before recovery finishes; createdb would21894 # fail with "the database system is starting up".21895 if time.monotonic() > deadline:21896 msg = "postgres did not start"21897> raise RuntimeError(msg)21898E RuntimeError: postgres did not start2189921900nixbot/tests/support.py:319: RuntimeError21901__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __21902[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190321904self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2190521906 def setup(self) -> None:21907 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21908 if runner_fixture_id not in self.fixturenames:21909 self.fixturenames.append(runner_fixture_id)21910 # When loop factories are configured, resolve the loop factory21911 # fixture early so that a factory variant change cascades cache21912 # invalidation before any async fixture checks its cache.21913 hook_caller = self.config.hook.pytest_asyncio_loop_factories21914 if hook_caller.get_hookimpls():21915 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21916> return super().setup()21917 ^^^^^^^^^^^^^^^2191821919/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21920_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21921nixbot/tests/conftest.py:33: in postgres_dsn21922 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21923 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21924/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21925 return next(self.gen)21926 ^^^^^^^^^^^^^^21927_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2192821929tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21930dbname = 'orchestrator'2193121932 @contextlib.contextmanager21933 def ephemeral_postgres(21934 tmp_path_factory: pytest.TempPathFactory, dbname: str21935 ) -> Iterator[str]:21936 """Throwaway Postgres on a unix socket with migrations applied."""21937 datadir = tmp_path_factory.mktemp("pgdata")21938 sockdir = tmp_path_factory.mktemp("pgsock")21939 subprocess.run( # noqa: S60321940 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21941 check=True,21942 capture_output=True,21943 )21944 proc = subprocess.Popen( # noqa: S60321945 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21946 stdout=subprocess.DEVNULL,21947 stderr=subprocess.DEVNULL,21948 )21949 try:21950 deadline = time.monotonic() + 3021951 while (21952 subprocess.run( # noqa: S60321953 ["pg_isready", "-h", str(sockdir), "-U", "test"],21954 check=False,21955 capture_output=True,21956 ).returncode21957 != 021958 ):21959 # The socket appears before recovery finishes; createdb would21960 # fail with "the database system is starting up".21961 if time.monotonic() > deadline:21962 msg = "postgres did not start"21963> raise RuntimeError(msg)21964E RuntimeError: postgres did not start2196521966nixbot/tests/support.py:319: RuntimeError21967__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __21968[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142196921970self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2197121972 def setup(self) -> None:21973 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21974 if runner_fixture_id not in self.fixturenames:21975 self.fixturenames.append(runner_fixture_id)21976 # When loop factories are configured, resolve the loop factory21977 # fixture early so that a factory variant change cascades cache21978 # invalidation before any async fixture checks its cache.21979 hook_caller = self.config.hook.pytest_asyncio_loop_factories21980 if hook_caller.get_hookimpls():21981 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21982> return super().setup()21983 ^^^^^^^^^^^^^^^2198421985/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21986_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21987nixbot/tests/conftest.py:33: in postgres_dsn21988 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21989 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21990/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21991 return next(self.gen)21992 ^^^^^^^^^^^^^^21993_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199421995tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21996dbname = 'orchestrator'2199721998 @contextlib.contextmanager21999 def ephemeral_postgres(22000 tmp_path_factory: pytest.TempPathFactory, dbname: str22001 ) -> Iterator[str]:22002 """Throwaway Postgres on a unix socket with migrations applied."""22003 datadir = tmp_path_factory.mktemp("pgdata")22004 sockdir = tmp_path_factory.mktemp("pgsock")22005 subprocess.run( # noqa: S60322006 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22007 check=True,22008 capture_output=True,22009 )22010 proc = subprocess.Popen( # noqa: S60322011 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22012 stdout=subprocess.DEVNULL,22013 stderr=subprocess.DEVNULL,22014 )22015 try:22016 deadline = time.monotonic() + 3022017 while (22018 subprocess.run( # noqa: S60322019 ["pg_isready", "-h", str(sockdir), "-U", "test"],22020 check=False,22021 capture_output=True,22022 ).returncode22023 != 022024 ):22025 # The socket appears before recovery finishes; createdb would22026 # fail with "the database system is starting up".22027 if time.monotonic() > deadline:22028 msg = "postgres did not start"22029> raise RuntimeError(msg)22030E RuntimeError: postgres did not start2203122032nixbot/tests/support.py:319: RuntimeError22033______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22034[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203522036self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2203722038 def setup(self) -> None:22039 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22040 if runner_fixture_id not in self.fixturenames:22041 self.fixturenames.append(runner_fixture_id)22042 # When loop factories are configured, resolve the loop factory22043 # fixture early so that a factory variant change cascades cache22044 # invalidation before any async fixture checks its cache.22045 hook_caller = self.config.hook.pytest_asyncio_loop_factories22046 if hook_caller.get_hookimpls():22047 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22048> return super().setup()22049 ^^^^^^^^^^^^^^^2205022051/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22052_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22053nixbot/tests/conftest.py:33: in postgres_dsn22054 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22055 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22056/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22057 return next(self.gen)22058 ^^^^^^^^^^^^^^22059_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206022061tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22062dbname = 'orchestrator'2206322064 @contextlib.contextmanager22065 def ephemeral_postgres(22066 tmp_path_factory: pytest.TempPathFactory, dbname: str22067 ) -> Iterator[str]:22068 """Throwaway Postgres on a unix socket with migrations applied."""22069 datadir = tmp_path_factory.mktemp("pgdata")22070 sockdir = tmp_path_factory.mktemp("pgsock")22071 subprocess.run( # noqa: S60322072 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22073 check=True,22074 capture_output=True,22075 )22076 proc = subprocess.Popen( # noqa: S60322077 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22078 stdout=subprocess.DEVNULL,22079 stderr=subprocess.DEVNULL,22080 )22081 try:22082 deadline = time.monotonic() + 3022083 while (22084 subprocess.run( # noqa: S60322085 ["pg_isready", "-h", str(sockdir), "-U", "test"],22086 check=False,22087 capture_output=True,22088 ).returncode22089 != 022090 ):22091 # The socket appears before recovery finishes; createdb would22092 # fail with "the database system is starting up".22093 if time.monotonic() > deadline:22094 msg = "postgres did not start"22095> raise RuntimeError(msg)22096E RuntimeError: postgres did not start2209722098nixbot/tests/support.py:319: RuntimeError22099________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22100[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210122102self = <Coroutine test_restart_build_drops_queued_effect_items>2210322104 def setup(self) -> None:22105 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22106 if runner_fixture_id not in self.fixturenames:22107 self.fixturenames.append(runner_fixture_id)22108 # When loop factories are configured, resolve the loop factory22109 # fixture early so that a factory variant change cascades cache22110 # invalidation before any async fixture checks its cache.22111 hook_caller = self.config.hook.pytest_asyncio_loop_factories22112 if hook_caller.get_hookimpls():22113 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22114> return super().setup()22115 ^^^^^^^^^^^^^^^2211622117/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22118_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22119nixbot/tests/conftest.py:33: in postgres_dsn22120 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22121 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22122/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22123 return next(self.gen)22124 ^^^^^^^^^^^^^^22125_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2212622127tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22128dbname = 'orchestrator'2212922130 @contextlib.contextmanager22131 def ephemeral_postgres(22132 tmp_path_factory: pytest.TempPathFactory, dbname: str22133 ) -> Iterator[str]:22134 """Throwaway Postgres on a unix socket with migrations applied."""22135 datadir = tmp_path_factory.mktemp("pgdata")22136 sockdir = tmp_path_factory.mktemp("pgsock")22137 subprocess.run( # noqa: S60322138 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22139 check=True,22140 capture_output=True,22141 )22142 proc = subprocess.Popen( # noqa: S60322143 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22144 stdout=subprocess.DEVNULL,22145 stderr=subprocess.DEVNULL,22146 )22147 try:22148 deadline = time.monotonic() + 3022149 while (22150 subprocess.run( # noqa: S60322151 ["pg_isready", "-h", str(sockdir), "-U", "test"],22152 check=False,22153 capture_output=True,22154 ).returncode22155 != 022156 ):22157 # The socket appears before recovery finishes; createdb would22158 # fail with "the database system is starting up".22159 if time.monotonic() > deadline:22160 msg = "postgres did not start"22161> raise RuntimeError(msg)22162E RuntimeError: postgres did not start2216322164nixbot/tests/support.py:319: RuntimeError22165___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22166[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142216722168self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2216922170 def setup(self) -> None:22171 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22172 if runner_fixture_id not in self.fixturenames:22173 self.fixturenames.append(runner_fixture_id)22174 # When loop factories are configured, resolve the loop factory22175 # fixture early so that a factory variant change cascades cache22176 # invalidation before any async fixture checks its cache.22177 hook_caller = self.config.hook.pytest_asyncio_loop_factories22178 if hook_caller.get_hookimpls():22179 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22180> return super().setup()22181 ^^^^^^^^^^^^^^^2218222183/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22184_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22185nixbot/tests/conftest.py:33: in postgres_dsn22186 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22187 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22188/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22189 return next(self.gen)22190 ^^^^^^^^^^^^^^22191_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219222193tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22194dbname = 'orchestrator'2219522196 @contextlib.contextmanager22197 def ephemeral_postgres(22198 tmp_path_factory: pytest.TempPathFactory, dbname: str22199 ) -> Iterator[str]:22200 """Throwaway Postgres on a unix socket with migrations applied."""22201 datadir = tmp_path_factory.mktemp("pgdata")22202 sockdir = tmp_path_factory.mktemp("pgsock")22203 subprocess.run( # noqa: S60322204 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22205 check=True,22206 capture_output=True,22207 )22208 proc = subprocess.Popen( # noqa: S60322209 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22210 stdout=subprocess.DEVNULL,22211 stderr=subprocess.DEVNULL,22212 )22213 try:22214 deadline = time.monotonic() + 3022215 while (22216 subprocess.run( # noqa: S60322217 ["pg_isready", "-h", str(sockdir), "-U", "test"],22218 check=False,22219 capture_output=True,22220 ).returncode22221 != 022222 ):22223 # The socket appears before recovery finishes; createdb would22224 # fail with "the database system is starting up".22225 if time.monotonic() > deadline:22226 msg = "postgres did not start"22227> raise RuntimeError(msg)22228E RuntimeError: postgres did not start2222922230nixbot/tests/support.py:319: RuntimeError22231_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22232[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223322234self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2223522236 def setup(self) -> None:22237 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22238 if runner_fixture_id not in self.fixturenames:22239 self.fixturenames.append(runner_fixture_id)22240 # When loop factories are configured, resolve the loop factory22241 # fixture early so that a factory variant change cascades cache22242 # invalidation before any async fixture checks its cache.22243 hook_caller = self.config.hook.pytest_asyncio_loop_factories22244 if hook_caller.get_hookimpls():22245 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22246> return super().setup()22247 ^^^^^^^^^^^^^^^2224822249/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22250_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22251nixbot/tests/conftest.py:33: in postgres_dsn22252 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22253 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22254/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22255 return next(self.gen)22256 ^^^^^^^^^^^^^^22257_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2225822259tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22260dbname = 'orchestrator'2226122262 @contextlib.contextmanager22263 def ephemeral_postgres(22264 tmp_path_factory: pytest.TempPathFactory, dbname: str22265 ) -> Iterator[str]:22266 """Throwaway Postgres on a unix socket with migrations applied."""22267 datadir = tmp_path_factory.mktemp("pgdata")22268 sockdir = tmp_path_factory.mktemp("pgsock")22269 subprocess.run( # noqa: S60322270 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22271 check=True,22272 capture_output=True,22273 )22274 proc = subprocess.Popen( # noqa: S60322275 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22276 stdout=subprocess.DEVNULL,22277 stderr=subprocess.DEVNULL,22278 )22279 try:22280 deadline = time.monotonic() + 3022281 while (22282 subprocess.run( # noqa: S60322283 ["pg_isready", "-h", str(sockdir), "-U", "test"],22284 check=False,22285 capture_output=True,22286 ).returncode22287 != 022288 ):22289 # The socket appears before recovery finishes; createdb would22290 # fail with "the database system is starting up".22291 if time.monotonic() > deadline:22292 msg = "postgres did not start"22293> raise RuntimeError(msg)22294E RuntimeError: postgres did not start2229522296nixbot/tests/support.py:319: RuntimeError22297_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22298[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142229922300self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2230122302 def setup(self) -> None:22303 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22304 if runner_fixture_id not in self.fixturenames:22305 self.fixturenames.append(runner_fixture_id)22306 # When loop factories are configured, resolve the loop factory22307 # fixture early so that a factory variant change cascades cache22308 # invalidation before any async fixture checks its cache.22309 hook_caller = self.config.hook.pytest_asyncio_loop_factories22310 if hook_caller.get_hookimpls():22311 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22312> return super().setup()22313 ^^^^^^^^^^^^^^^2231422315/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22316_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22317nixbot/tests/conftest.py:33: in postgres_dsn22318 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22320/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22321 return next(self.gen)22322 ^^^^^^^^^^^^^^22323_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232422325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22326dbname = 'orchestrator'2232722328 @contextlib.contextmanager22329 def ephemeral_postgres(22330 tmp_path_factory: pytest.TempPathFactory, dbname: str22331 ) -> Iterator[str]:22332 """Throwaway Postgres on a unix socket with migrations applied."""22333 datadir = tmp_path_factory.mktemp("pgdata")22334 sockdir = tmp_path_factory.mktemp("pgsock")22335 subprocess.run( # noqa: S60322336 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22337 check=True,22338 capture_output=True,22339 )22340 proc = subprocess.Popen( # noqa: S60322341 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22342 stdout=subprocess.DEVNULL,22343 stderr=subprocess.DEVNULL,22344 )22345 try:22346 deadline = time.monotonic() + 3022347 while (22348 subprocess.run( # noqa: S60322349 ["pg_isready", "-h", str(sockdir), "-U", "test"],22350 check=False,22351 capture_output=True,22352 ).returncode22353 != 022354 ):22355 # The socket appears before recovery finishes; createdb would22356 # fail with "the database system is starting up".22357 if time.monotonic() > deadline:22358 msg = "postgres did not start"22359> raise RuntimeError(msg)22360E RuntimeError: postgres did not start2236122362nixbot/tests/support.py:319: RuntimeError22363______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22364[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236522366self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2236722368 def setup(self) -> None:22369 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22370 if runner_fixture_id not in self.fixturenames:22371 self.fixturenames.append(runner_fixture_id)22372 # When loop factories are configured, resolve the loop factory22373 # fixture early so that a factory variant change cascades cache22374 # invalidation before any async fixture checks its cache.22375 hook_caller = self.config.hook.pytest_asyncio_loop_factories22376 if hook_caller.get_hookimpls():22377 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22378> return super().setup()22379 ^^^^^^^^^^^^^^^2238022381/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22382_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22383nixbot/tests/conftest.py:33: in postgres_dsn22384 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22385 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22386/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22387 return next(self.gen)22388 ^^^^^^^^^^^^^^22389_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239022391tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22392dbname = 'orchestrator'2239322394 @contextlib.contextmanager22395 def ephemeral_postgres(22396 tmp_path_factory: pytest.TempPathFactory, dbname: str22397 ) -> Iterator[str]:22398 """Throwaway Postgres on a unix socket with migrations applied."""22399 datadir = tmp_path_factory.mktemp("pgdata")22400 sockdir = tmp_path_factory.mktemp("pgsock")22401 subprocess.run( # noqa: S60322402 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22403 check=True,22404 capture_output=True,22405 )22406 proc = subprocess.Popen( # noqa: S60322407 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22408 stdout=subprocess.DEVNULL,22409 stderr=subprocess.DEVNULL,22410 )22411 try:22412 deadline = time.monotonic() + 3022413 while (22414 subprocess.run( # noqa: S60322415 ["pg_isready", "-h", str(sockdir), "-U", "test"],22416 check=False,22417 capture_output=True,22418 ).returncode22419 != 022420 ):22421 # The socket appears before recovery finishes; createdb would22422 # fail with "the database system is starting up".22423 if time.monotonic() > deadline:22424 msg = "postgres did not start"22425> raise RuntimeError(msg)22426E RuntimeError: postgres did not start2242722428nixbot/tests/support.py:319: RuntimeError22429____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22430[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243122432self = <Coroutine test_attach_to_already_terminal_build_replays_status>2243322434 def setup(self) -> None:22435 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22436 if runner_fixture_id not in self.fixturenames:22437 self.fixturenames.append(runner_fixture_id)22438 # When loop factories are configured, resolve the loop factory22439 # fixture early so that a factory variant change cascades cache22440 # invalidation before any async fixture checks its cache.22441 hook_caller = self.config.hook.pytest_asyncio_loop_factories22442 if hook_caller.get_hookimpls():22443 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22444> return super().setup()22445 ^^^^^^^^^^^^^^^2244622447/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22448_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22449nixbot/tests/conftest.py:33: in postgres_dsn22450 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22451 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22452/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22453 return next(self.gen)22454 ^^^^^^^^^^^^^^22455_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2245622457tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22458dbname = 'orchestrator'2245922460 @contextlib.contextmanager22461 def ephemeral_postgres(22462 tmp_path_factory: pytest.TempPathFactory, dbname: str22463 ) -> Iterator[str]:22464 """Throwaway Postgres on a unix socket with migrations applied."""22465 datadir = tmp_path_factory.mktemp("pgdata")22466 sockdir = tmp_path_factory.mktemp("pgsock")22467 subprocess.run( # noqa: S60322468 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22469 check=True,22470 capture_output=True,22471 )22472 proc = subprocess.Popen( # noqa: S60322473 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22474 stdout=subprocess.DEVNULL,22475 stderr=subprocess.DEVNULL,22476 )22477 try:22478 deadline = time.monotonic() + 3022479 while (22480 subprocess.run( # noqa: S60322481 ["pg_isready", "-h", str(sockdir), "-U", "test"],22482 check=False,22483 capture_output=True,22484 ).returncode22485 != 022486 ):22487 # The socket appears before recovery finishes; createdb would22488 # fail with "the database system is starting up".22489 if time.monotonic() > deadline:22490 msg = "postgres did not start"22491> raise RuntimeError(msg)22492E RuntimeError: postgres did not start2249322494nixbot/tests/support.py:319: RuntimeError22495___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____22496[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142249722498self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2249922500 def setup(self) -> None:22501 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22502 if runner_fixture_id not in self.fixturenames:22503 self.fixturenames.append(runner_fixture_id)22504 # When loop factories are configured, resolve the loop factory22505 # fixture early so that a factory variant change cascades cache22506 # invalidation before any async fixture checks its cache.22507 hook_caller = self.config.hook.pytest_asyncio_loop_factories22508 if hook_caller.get_hookimpls():22509 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22510> return super().setup()22511 ^^^^^^^^^^^^^^^2251222513/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22514_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22515nixbot/tests/conftest.py:33: in postgres_dsn22516 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22517 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22518/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22519 return next(self.gen)22520 ^^^^^^^^^^^^^^22521_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252222523tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22524dbname = 'orchestrator'2252522526 @contextlib.contextmanager22527 def ephemeral_postgres(22528 tmp_path_factory: pytest.TempPathFactory, dbname: str22529 ) -> Iterator[str]:22530 """Throwaway Postgres on a unix socket with migrations applied."""22531 datadir = tmp_path_factory.mktemp("pgdata")22532 sockdir = tmp_path_factory.mktemp("pgsock")22533 subprocess.run( # noqa: S60322534 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22535 check=True,22536 capture_output=True,22537 )22538 proc = subprocess.Popen( # noqa: S60322539 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22540 stdout=subprocess.DEVNULL,22541 stderr=subprocess.DEVNULL,22542 )22543 try:22544 deadline = time.monotonic() + 3022545 while (22546 subprocess.run( # noqa: S60322547 ["pg_isready", "-h", str(sockdir), "-U", "test"],22548 check=False,22549 capture_output=True,22550 ).returncode22551 != 022552 ):22553 # The socket appears before recovery finishes; createdb would22554 # fail with "the database system is starting up".22555 if time.monotonic() > deadline:22556 msg = "postgres did not start"22557> raise RuntimeError(msg)22558E RuntimeError: postgres did not start2255922560nixbot/tests/support.py:319: RuntimeError22561____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____22562[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256322564self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2256522566 def setup(self) -> None:22567 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22568 if runner_fixture_id not in self.fixturenames:22569 self.fixturenames.append(runner_fixture_id)22570 # When loop factories are configured, resolve the loop factory22571 # fixture early so that a factory variant change cascades cache22572 # invalidation before any async fixture checks its cache.22573 hook_caller = self.config.hook.pytest_asyncio_loop_factories22574 if hook_caller.get_hookimpls():22575 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22576> return super().setup()22577 ^^^^^^^^^^^^^^^2257822579/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22580_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22581nixbot/tests/conftest.py:33: in postgres_dsn22582 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22583 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22584/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22585 return next(self.gen)22586 ^^^^^^^^^^^^^^22587_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2258822589tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22590dbname = 'orchestrator'2259122592 @contextlib.contextmanager22593 def ephemeral_postgres(22594 tmp_path_factory: pytest.TempPathFactory, dbname: str22595 ) -> Iterator[str]:22596 """Throwaway Postgres on a unix socket with migrations applied."""22597 datadir = tmp_path_factory.mktemp("pgdata")22598 sockdir = tmp_path_factory.mktemp("pgsock")22599 subprocess.run( # noqa: S60322600 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22601 check=True,22602 capture_output=True,22603 )22604 proc = subprocess.Popen( # noqa: S60322605 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22606 stdout=subprocess.DEVNULL,22607 stderr=subprocess.DEVNULL,22608 )22609 try:22610 deadline = time.monotonic() + 3022611 while (22612 subprocess.run( # noqa: S60322613 ["pg_isready", "-h", str(sockdir), "-U", "test"],22614 check=False,22615 capture_output=True,22616 ).returncode22617 != 022618 ):22619 # The socket appears before recovery finishes; createdb would22620 # fail with "the database system is starting up".22621 if time.monotonic() > deadline:22622 msg = "postgres did not start"22623> raise RuntimeError(msg)22624E RuntimeError: postgres did not start2262522626nixbot/tests/support.py:319: RuntimeError22627__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________22628[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142262922630self = <Coroutine test_post_process_paths_are_forge_scoped>2263122632 def setup(self) -> None:22633 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22634 if runner_fixture_id not in self.fixturenames:22635 self.fixturenames.append(runner_fixture_id)22636 # When loop factories are configured, resolve the loop factory22637 # fixture early so that a factory variant change cascades cache22638 # invalidation before any async fixture checks its cache.22639 hook_caller = self.config.hook.pytest_asyncio_loop_factories22640 if hook_caller.get_hookimpls():22641 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22642> return super().setup()22643 ^^^^^^^^^^^^^^^2264422645/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22646_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22647nixbot/tests/conftest.py:33: in postgres_dsn22648 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22649 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22650/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22651 return next(self.gen)22652 ^^^^^^^^^^^^^^22653_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265422655tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22656dbname = 'orchestrator'2265722658 @contextlib.contextmanager22659 def ephemeral_postgres(22660 tmp_path_factory: pytest.TempPathFactory, dbname: str22661 ) -> Iterator[str]:22662 """Throwaway Postgres on a unix socket with migrations applied."""22663 datadir = tmp_path_factory.mktemp("pgdata")22664 sockdir = tmp_path_factory.mktemp("pgsock")22665 subprocess.run( # noqa: S60322666 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22667 check=True,22668 capture_output=True,22669 )22670 proc = subprocess.Popen( # noqa: S60322671 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22672 stdout=subprocess.DEVNULL,22673 stderr=subprocess.DEVNULL,22674 )22675 try:22676 deadline = time.monotonic() + 3022677 while (22678 subprocess.run( # noqa: S60322679 ["pg_isready", "-h", str(sockdir), "-U", "test"],22680 check=False,22681 capture_output=True,22682 ).returncode22683 != 022684 ):22685 # The socket appears before recovery finishes; createdb would22686 # fail with "the database system is starting up".22687 if time.monotonic() > deadline:22688 msg = "postgres did not start"22689> raise RuntimeError(msg)22690E RuntimeError: postgres did not start2269122692nixbot/tests/support.py:319: RuntimeError22693_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______22694[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269522696self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2269722698 def setup(self) -> None:22699 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22700 if runner_fixture_id not in self.fixturenames:22701 self.fixturenames.append(runner_fixture_id)22702 # When loop factories are configured, resolve the loop factory22703 # fixture early so that a factory variant change cascades cache22704 # invalidation before any async fixture checks its cache.22705 hook_caller = self.config.hook.pytest_asyncio_loop_factories22706 if hook_caller.get_hookimpls():22707 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22708> return super().setup()22709 ^^^^^^^^^^^^^^^2271022711/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22712_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22713nixbot/tests/conftest.py:33: in postgres_dsn22714 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22715 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22716/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22717 return next(self.gen)22718 ^^^^^^^^^^^^^^22719_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272022721tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22722dbname = 'orchestrator'2272322724 @contextlib.contextmanager22725 def ephemeral_postgres(22726 tmp_path_factory: pytest.TempPathFactory, dbname: str22727 ) -> Iterator[str]:22728 """Throwaway Postgres on a unix socket with migrations applied."""22729 datadir = tmp_path_factory.mktemp("pgdata")22730 sockdir = tmp_path_factory.mktemp("pgsock")22731 subprocess.run( # noqa: S60322732 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22733 check=True,22734 capture_output=True,22735 )22736 proc = subprocess.Popen( # noqa: S60322737 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22738 stdout=subprocess.DEVNULL,22739 stderr=subprocess.DEVNULL,22740 )22741 try:22742 deadline = time.monotonic() + 3022743 while (22744 subprocess.run( # noqa: S60322745 ["pg_isready", "-h", str(sockdir), "-U", "test"],22746 check=False,22747 capture_output=True,22748 ).returncode22749 != 022750 ):22751 # The socket appears before recovery finishes; createdb would22752 # fail with "the database system is starting up".22753 if time.monotonic() > deadline:22754 msg = "postgres did not start"22755> raise RuntimeError(msg)22756E RuntimeError: postgres did not start2275722758nixbot/tests/support.py:319: RuntimeError22759_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____22760[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276122762self = <Coroutine test_reuse_post_process_error_still_reports_status>2276322764 def setup(self) -> None:22765 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22766 if runner_fixture_id not in self.fixturenames:22767 self.fixturenames.append(runner_fixture_id)22768 # When loop factories are configured, resolve the loop factory22769 # fixture early so that a factory variant change cascades cache22770 # invalidation before any async fixture checks its cache.22771 hook_caller = self.config.hook.pytest_asyncio_loop_factories22772 if hook_caller.get_hookimpls():22773 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22774> return super().setup()22775 ^^^^^^^^^^^^^^^2277622777/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22778_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22779nixbot/tests/conftest.py:33: in postgres_dsn22780 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22781 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22782/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22783 return next(self.gen)22784 ^^^^^^^^^^^^^^22785_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2278622787tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22788dbname = 'orchestrator'2278922790 @contextlib.contextmanager22791 def ephemeral_postgres(22792 tmp_path_factory: pytest.TempPathFactory, dbname: str22793 ) -> Iterator[str]:22794 """Throwaway Postgres on a unix socket with migrations applied."""22795 datadir = tmp_path_factory.mktemp("pgdata")22796 sockdir = tmp_path_factory.mktemp("pgsock")22797 subprocess.run( # noqa: S60322798 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22799 check=True,22800 capture_output=True,22801 )22802 proc = subprocess.Popen( # noqa: S60322803 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22804 stdout=subprocess.DEVNULL,22805 stderr=subprocess.DEVNULL,22806 )22807 try:22808 deadline = time.monotonic() + 3022809 while (22810 subprocess.run( # noqa: S60322811 ["pg_isready", "-h", str(sockdir), "-U", "test"],22812 check=False,22813 capture_output=True,22814 ).returncode22815 != 022816 ):22817 # The socket appears before recovery finishes; createdb would22818 # fail with "the database system is starting up".22819 if time.monotonic() > deadline:22820 msg = "postgres did not start"22821> raise RuntimeError(msg)22822E RuntimeError: postgres did not start2282322824nixbot/tests/support.py:319: RuntimeError22825____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____22826[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142282722828self = <Coroutine test_reuse_with_missing_output_still_post_processes>2282922830 def setup(self) -> None:22831 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22832 if runner_fixture_id not in self.fixturenames:22833 self.fixturenames.append(runner_fixture_id)22834 # When loop factories are configured, resolve the loop factory22835 # fixture early so that a factory variant change cascades cache22836 # invalidation before any async fixture checks its cache.22837 hook_caller = self.config.hook.pytest_asyncio_loop_factories22838 if hook_caller.get_hookimpls():22839 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22840> return super().setup()22841 ^^^^^^^^^^^^^^^2284222843/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22844_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22845nixbot/tests/conftest.py:33: in postgres_dsn22846 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22847 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22848/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22849 return next(self.gen)22850 ^^^^^^^^^^^^^^22851_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285222853tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/p...atch/86057315c4491ad0/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22854dbname = 'orchestrator'2285522856 @contextlib.contextmanager22857 def ephemeral_postgres(22858 tmp_path_factory: pytest.TempPathFactory, dbname: str22859 ) -> Iterator[str]:22860 """Throwaway Postgres on a unix socket with migrations applied."""22861 datadir = tmp_path_factory.mktemp("pgdata")22862 sockdir = tmp_path_factory.mktemp("pgsock")22863 subprocess.run( # noqa: S60322864 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22865 check=True,22866 capture_output=True,22867 )22868 proc = subprocess.Popen( # noqa: S60322869 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22870 stdout=subprocess.DEVNULL,22871 stderr=subprocess.DEVNULL,22872 )22873 try:22874 deadline = time.monotonic() + 3022875 while (22876 subprocess.run( # noqa: S60322877 ["pg_isready", "-h", str(sockdir), "-U", "test"],22878 check=False,22879 capture_output=True,22880 ).returncode22881 != 022882 ):22883 # The socket appears before recovery finishes; createdb would22884 # fail with "the database system is starting up".22885 if time.monotonic() > deadline:22886 msg = "postgres did not start"22887> raise RuntimeError(msg)22888E RuntimeError: postgres did not start2288922890nixbot/tests/support.py:319: RuntimeError22891=========================== short test summary info ============================22892ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...22893ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...22894ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...22895ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...22896ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...22897ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...22898ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log22899ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...22900ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes22901ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...22902ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...22903ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...22904ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...22905ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...22906ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...22907ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...22908ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession22909ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...22910ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...22911ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...22912ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes22913ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect22914ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver22915ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal22916ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...22917ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...22918ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build22919ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...22920ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...22921ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission22922ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...22923ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...22924ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...22925ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...22926ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...22927ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired22928ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import22929ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...22930ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...22931ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue22932ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...22933ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship22934ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...22935ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...22936ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...22937ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author22938ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows22939ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...22940ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...22941ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...22942ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...22943ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request22944ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only22945ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...22946ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge22947ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema22948ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...22949ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history22950ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds22951ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...22952ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...22953ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery22954ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...22955ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid22956ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes22957ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger22958ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...22959ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...22960ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload22961ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...22962ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows22963ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...22964ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects22965ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build22966ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...22967ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search22968ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...22969ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...22970ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos22971ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...22972ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...22973ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...22974ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...22975ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec22976ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone22977ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...22978ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...22979ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...22980ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit22981ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...22982ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...22983ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...22984ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build22985ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...22986ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...22987ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...22988ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names22989ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...22990ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...22991ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...22992ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...22993ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue22994ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...22995ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...22996ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...22997ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...22998ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...22999ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23000ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23001ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23002ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23003ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23004ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23005ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23006ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23007ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23008ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23009ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23010ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23011ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23012ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23013ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23014ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23015ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23016ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23017ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23018ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23019ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23020ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23021ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23022ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23023ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23024ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23025ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23026ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23027ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23028ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23029ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23030ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23031ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23032ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23033ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23034ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23035ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23036ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23037ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23038ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23039ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23040ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23041ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23042ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23043ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23044ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23045ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23046ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23047ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23048ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23049ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23050ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23051ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23052ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23053ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23054ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23055ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23056ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23057ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23058ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23059ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23060ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23061ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23062ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23063ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23064ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23065ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23066ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23067ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23068ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23069ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23070ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23071ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23072ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23073ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23074ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23075ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23076ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23077ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23078ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23079ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23080ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23081ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23082ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23083ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23084ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23085ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23086ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23087ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23088ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23089ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23090ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23091ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23092ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23093ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23094ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23095ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23096ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23097ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23098ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23099ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23100ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23101ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23102ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23103ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23104ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23105ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23106ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23107ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23108ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23109ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23110ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23111ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23112ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23113ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23114ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23115ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23116ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23117ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23118ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23119ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23120ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23121ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23122ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23123ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23124ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23125ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23126ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23127ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23128ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23129ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23130ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23131ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23132ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23133ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23134ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23135ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23136ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23137ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23138ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23139ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23140ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23141ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23142ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23143ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23144ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23145ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23146ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23147ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23148ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23149ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23150ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23151ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23152ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23153ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23154ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23155ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23156ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23157ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23158ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23159ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23160ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23161ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23162ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23163ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23164ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23165ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23166ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23167ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23168ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23169ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23170ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23171ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23172ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23173ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23174ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23175ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23176ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23177ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23178ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23179ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23180ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23181ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23182ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23183ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23184ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23185ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23186ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23187ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23188ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23189ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23190ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23191ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23192ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23193ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23194ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23195ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23196ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23197ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23198ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23199ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23200ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23201ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23202ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23203ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23204ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23205ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23206ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23207ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23208ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23209ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423210ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23211ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23212ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23213ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23214ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23215ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23216ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23217ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23218ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23219ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23220ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23221ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23222ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23223ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23224ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23225ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23226ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23227ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23228ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23229ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23230ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23231ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23232ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23233ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23234ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23235ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23236ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23237ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23238ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23239ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23240ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23241ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23242ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23243ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23244ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23245ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23246ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23247================= 477 passed, 29 skipped, 355 errors in 42.65s =================