nixbot

builds

failed python3.14-nixbot-tests checks.aarch64-darwin.nixbot-tests · build #449 · 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/rif8xgaq6z3cv7ijxg055c1dabd1igbm-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"
configurePhase
20no configure script, doing nothing
buildPhase
21Executing pypaBuildPhase22Creating a wheel...23pypa build flags: --no-isolation --outdir dist/ --wheel24* Getting build dependencies for wheel...25* Building wheel...26Successfully built nixbot-0.0.1-py3-none-any.whl27Finished creating a wheel...28Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheck
installPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhase
pythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhase
fixupPhase
37checking for references to /private/var/tb/1/scratch/72fdd8dd79e44c60/build/ in /nix/store/shbhn0ygzff238iyahhxxqa2ir4562c8-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/shbhn0ygzff238iyahhxxqa2ir4562c8-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/shbhn0ygzff238iyahhxxqa2ir4562c8-python3.14-nixbot-tests/lib /nix/store/shbhn0ygzff238iyahhxxqa2ir4562c8-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/1/scratch/72fdd8dd79e44c60/build/ in /nix/store/wawiz9bw89vinqdmyaf6bszvdkawpc5g-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/wawiz9bw89vinqdmyaf6bszvdkawpc5g-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/shbhn0ygzff238iyahhxxqa2ir4562c8-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDir
installCheckPhase
46no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
47Executing pythonImportsCheckPhase
pytestCheckPhase
48Executing pytestCheckPhase49pytest flags: -m pytest --numprocesses=2450/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.51 warner(PytestBenchmarkWarning(text))52/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.53 warner(PytestBenchmarkWarning(text))54/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.55 warner(PytestBenchmarkWarning(text))56/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.57 warner(PytestBenchmarkWarning(text))58/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.59 warner(PytestBenchmarkWarning(text))60/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.61 warner(PytestBenchmarkWarning(text))62/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.63 warner(PytestBenchmarkWarning(text))64/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.65 warner(PytestBenchmarkWarning(text))66/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.67 warner(PytestBenchmarkWarning(text))68/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.69 warner(PytestBenchmarkWarning(text))70/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.71 warner(PytestBenchmarkWarning(text))72/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.73 warner(PytestBenchmarkWarning(text))74/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.75 warner(PytestBenchmarkWarning(text))76/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.77 warner(PytestBenchmarkWarning(text))78/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.79 warner(PytestBenchmarkWarning(text))80/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.81 warner(PytestBenchmarkWarning(text))82/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.83 warner(PytestBenchmarkWarning(text))84/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.85 warner(PytestBenchmarkWarning(text))86/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.87 warner(PytestBenchmarkWarning(text))88/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.89 warner(PytestBenchmarkWarning(text))90/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.91 warner(PytestBenchmarkWarning(text))92/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.93 warner(PytestBenchmarkWarning(text))94/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.95 warner(PytestBenchmarkWarning(text))96/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.97 warner(PytestBenchmarkWarning(text))98/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.99 warner(PytestBenchmarkWarning(text))100============================= test session starts ==============================101platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0102benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)103rootdir: /private/var/tb/1/scratch/72fdd8dd79e44c60/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [862 items]112113................................ssssssss....ssssssssssss................ [ 8%]114...............................................s........................ [ 16%]115........................................................................ [ 25%]116........................................................................ [ 33%]117....................ssss......................................s......... [ 41%]118........................................................................ [ 50%]119.............................s.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EE..E [ 58%]120EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEE.EEEEEEEE.E.EEEE.EEEEEEEEEEE.EEEEE [ 66%]121EEE.EEEEEEE..EEEEE.E.E.EE.E....EEEEEEEEEE....sEEEEEE.EEEEEEEEEEEEEEEEEEE [ 75%]122EEEsEE...E..EE....E..EEEE.EEEEEEEEEEEEEEEEEE.EE.EEEEEEEE.EEEEEEEEEEEEEEE [ 83%]123EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEE [ 91%]124EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]125==================================== ERRORS ====================================126___________________ ERROR at setup of test_html_error_pages ____________________127[gw0] 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_html_error_pages>>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')162dbname = 'web'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_api_strips_ansi_from_errors ______________200[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14201202request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>203tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')223dbname = 'web'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_homepage ________________________261[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14262263request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')284dbname = 'web'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_project_page_with_filters _______________322[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14323324request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')345dbname = 'web'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_status_badge_urls ___________________383[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14384385request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>386tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')406dbname = 'web'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_all_digit_branch_is_filterable _____________444[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14445446request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>447tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')467dbname = 'web'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_build_page _______________________505[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14506507request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>508tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')528dbname = 'web'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_attribute_rows_fragment_paginates ___________566[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14567568request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>569tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')589dbname = 'web'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_build_page_shows_eval_warning_groups __________627[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14628629request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>630tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')650dbname = 'web'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_build_page_shows_per_attribute_eval_warnings ______688[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14689690request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>691tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')692693 @pytest.fixture(scope="module")694 def postgres_dsn(695 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory696 ) -> Iterator[str]:697 if shutil.which("initdb") is None:698 pytest.skip("postgresql not available")699 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")700> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:701 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^702703nixbot/tests/conftest.py:33: 704_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 705/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__706 return next(self.gen)707 ^^^^^^^^^^^^^^708_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 709710tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')711dbname = 'web'712713 @contextlib.contextmanager714 def ephemeral_postgres(715 tmp_path_factory: pytest.TempPathFactory, dbname: str716 ) -> Iterator[str]:717 """Throwaway Postgres on a unix socket with migrations applied."""718 datadir = tmp_path_factory.mktemp("pgdata")719 sockdir = tmp_path_factory.mktemp("pgsock")720 subprocess.run( # noqa: S603721 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],722 check=True,723 capture_output=True,724 )725 proc = subprocess.Popen( # noqa: S603726 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],727 stdout=subprocess.DEVNULL,728 stderr=subprocess.DEVNULL,729 )730 try:731 deadline = time.monotonic() + 30732 while (733 subprocess.run( # noqa: S603734 ["pg_isready", "-h", str(sockdir), "-U", "test"],735 check=False,736 capture_output=True,737 ).returncode738 != 0739 ):740 # The socket appears before recovery finishes; createdb would741 # fail with "the database system is starting up".742 if time.monotonic() > deadline:743 msg = "postgres did not start"744> raise RuntimeError(msg)745E RuntimeError: postgres did not start746747nixbot/tests/support.py:319: RuntimeError748_______ ERROR at setup of test_control_buttons_hidden_without_permission _______749[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14750751fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>752request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>753754 @pytest.hookimpl(wrapper=True)755 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:756 if (757 fixturedef.argname == "event_loop_policy"758 and fixturedef.func.__module__ != __name__759 ):760 warnings.warn(761 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),762 )763 asyncio_mode = _get_asyncio_mode(request.config)764 if not _is_asyncio_fixture_function(fixturedef.func):765 if asyncio_mode == Mode.STRICT:766 # Ignore async fixtures without explicit asyncio mark in strict mode767 # This applies to pytest_trio fixtures, for example768 return (yield)769 if not _is_coroutine_or_asyncgen(fixturedef.func):770> return (yield)771 ^^^^^772773/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 774_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 775nixbot/tests/conftest.py:33: in postgres_dsn776 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:777 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^778/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__779 return next(self.gen)780 ^^^^^^^^^^^^^^781_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 782783tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')784dbname = 'control'785786 @contextlib.contextmanager787 def ephemeral_postgres(788 tmp_path_factory: pytest.TempPathFactory, dbname: str789 ) -> Iterator[str]:790 """Throwaway Postgres on a unix socket with migrations applied."""791 datadir = tmp_path_factory.mktemp("pgdata")792 sockdir = tmp_path_factory.mktemp("pgsock")793 subprocess.run( # noqa: S603794 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],795 check=True,796 capture_output=True,797 )798 proc = subprocess.Popen( # noqa: S603799 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],800 stdout=subprocess.DEVNULL,801 stderr=subprocess.DEVNULL,802 )803 try:804 deadline = time.monotonic() + 30805 while (806 subprocess.run( # noqa: S603807 ["pg_isready", "-h", str(sockdir), "-U", "test"],808 check=False,809 capture_output=True,810 ).returncode811 != 0812 ):813 # The socket appears before recovery finishes; createdb would814 # fail with "the database system is starting up".815 if time.monotonic() > deadline:816 msg = "postgres did not start"817> raise RuntimeError(msg)818E RuntimeError: postgres did not start819820nixbot/tests/support.py:319: RuntimeError821______________ ERROR at setup of test_anonymous_sees_public_only _______________822[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14823824fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>825request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>826827 @pytest.hookimpl(wrapper=True)828 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:829 if (830 fixturedef.argname == "event_loop_policy"831 and fixturedef.func.__module__ != __name__832 ):833 warnings.warn(834 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),835 )836 asyncio_mode = _get_asyncio_mode(request.config)837 if not _is_asyncio_fixture_function(fixturedef.func):838 if asyncio_mode == Mode.STRICT:839 # Ignore async fixtures without explicit asyncio mark in strict mode840 # This applies to pytest_trio fixtures, for example841 return (yield)842 if not _is_coroutine_or_asyncgen(fixturedef.func):843> return (yield)844 ^^^^^845846/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 847_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 848nixbot/tests/conftest.py:33: in postgres_dsn849 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:850 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^851/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__852 return next(self.gen)853 ^^^^^^^^^^^^^^854_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 855856tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')857dbname = 'visibility'858859 @contextlib.contextmanager860 def ephemeral_postgres(861 tmp_path_factory: pytest.TempPathFactory, dbname: str862 ) -> Iterator[str]:863 """Throwaway Postgres on a unix socket with migrations applied."""864 datadir = tmp_path_factory.mktemp("pgdata")865 sockdir = tmp_path_factory.mktemp("pgsock")866 subprocess.run( # noqa: S603867 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],868 check=True,869 capture_output=True,870 )871 proc = subprocess.Popen( # noqa: S603872 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],873 stdout=subprocess.DEVNULL,874 stderr=subprocess.DEVNULL,875 )876 try:877 deadline = time.monotonic() + 30878 while (879 subprocess.run( # noqa: S603880 ["pg_isready", "-h", str(sockdir), "-U", "test"],881 check=False,882 capture_output=True,883 ).returncode884 != 0885 ):886 # The socket appears before recovery finishes; createdb would887 # fail with "the database system is starting up".888 if time.monotonic() > deadline:889 msg = "postgres did not start"890> raise RuntimeError(msg)891E RuntimeError: postgres did not start892893nixbot/tests/support.py:319: RuntimeError894__________ ERROR at setup of test_unauthorized_user_sees_public_only ___________895[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14896897request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>898tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')899900 @pytest.fixture(scope="module")901 def postgres_dsn(902 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory903 ) -> Iterator[str]:904 if shutil.which("initdb") is None:905 pytest.skip("postgresql not available")906 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")907> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:908 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^909910nixbot/tests/conftest.py:33: 911_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 912/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__913 return next(self.gen)914 ^^^^^^^^^^^^^^915_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 916917tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')918dbname = 'visibility'919920 @contextlib.contextmanager921 def ephemeral_postgres(922 tmp_path_factory: pytest.TempPathFactory, dbname: str923 ) -> Iterator[str]:924 """Throwaway Postgres on a unix socket with migrations applied."""925 datadir = tmp_path_factory.mktemp("pgdata")926 sockdir = tmp_path_factory.mktemp("pgsock")927 subprocess.run( # noqa: S603928 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],929 check=True,930 capture_output=True,931 )932 proc = subprocess.Popen( # noqa: S603933 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],934 stdout=subprocess.DEVNULL,935 stderr=subprocess.DEVNULL,936 )937 try:938 deadline = time.monotonic() + 30939 while (940 subprocess.run( # noqa: S603941 ["pg_isready", "-h", str(sockdir), "-U", "test"],942 check=False,943 capture_output=True,944 ).returncode945 != 0946 ):947 # The socket appears before recovery finishes; createdb would948 # fail with "the database system is starting up".949 if time.monotonic() > deadline:950 msg = "postgres did not start"951> raise RuntimeError(msg)952E RuntimeError: postgres did not start953954nixbot/tests/support.py:319: RuntimeError955__________________ ERROR at setup of test_match_skip_and_run ___________________956[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14957958self = <Coroutine test_match_skip_and_run>959960 def setup(self) -> None:961 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"962 if runner_fixture_id not in self.fixturenames:963 self.fixturenames.append(runner_fixture_id)964 # When loop factories are configured, resolve the loop factory965 # fixture early so that a factory variant change cascades cache966 # invalidation before any async fixture checks its cache.967 hook_caller = self.config.hook.pytest_asyncio_loop_factories968 if hook_caller.get_hookimpls():969 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)970> return super().setup()971 ^^^^^^^^^^^^^^^972973/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 974_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 975/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup976 return (yield)977 ^^^^^978nixbot/tests/conftest.py:33: in postgres_dsn979 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:980 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^981/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__982 return next(self.gen)983 ^^^^^^^^^^^^^^984_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 985986tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')987dbname = 'deliver'988989 @contextlib.contextmanager990 def ephemeral_postgres(991 tmp_path_factory: pytest.TempPathFactory, dbname: str992 ) -> Iterator[str]:993 """Throwaway Postgres on a unix socket with migrations applied."""994 datadir = tmp_path_factory.mktemp("pgdata")995 sockdir = tmp_path_factory.mktemp("pgsock")996 subprocess.run( # noqa: S603997 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],998 check=True,999 capture_output=True,1000 )1001 proc = subprocess.Popen( # noqa: S6031002 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1003 stdout=subprocess.DEVNULL,1004 stderr=subprocess.DEVNULL,1005 )1006 try:1007 deadline = time.monotonic() + 301008 while (1009 subprocess.run( # noqa: S6031010 ["pg_isready", "-h", str(sockdir), "-U", "test"],1011 check=False,1012 capture_output=True,1013 ).returncode1014 != 01015 ):1016 # The socket appears before recovery finishes; createdb would1017 # fail with "the database system is starting up".1018 if time.monotonic() > deadline:1019 msg = "postgres did not start"1020> raise RuntimeError(msg)1021E RuntimeError: postgres did not start10221023nixbot/tests/support.py:319: RuntimeError1024___________ ERROR at setup of test_resume_skips_terminal_attributes ____________1025[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410261027self = <Coroutine test_resume_skips_terminal_attributes>10281029 def setup(self) -> None:1030 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1031 if runner_fixture_id not in self.fixturenames:1032 self.fixturenames.append(runner_fixture_id)1033 # When loop factories are configured, resolve the loop factory1034 # fixture early so that a factory variant change cascades cache1035 # invalidation before any async fixture checks its cache.1036 hook_caller = self.config.hook.pytest_asyncio_loop_factories1037 if hook_caller.get_hookimpls():1038 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1039> return super().setup()1040 ^^^^^^^^^^^^^^^10411042/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1043_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1044/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1045 return (yield)1046 ^^^^^1047nixbot/tests/conftest.py:33: in postgres_dsn1048 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1049 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1050/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1051 return next(self.gen)1052 ^^^^^^^^^^^^^^1053_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10541055tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1056dbname = 'recovery'10571058 @contextlib.contextmanager1059 def ephemeral_postgres(1060 tmp_path_factory: pytest.TempPathFactory, dbname: str1061 ) -> Iterator[str]:1062 """Throwaway Postgres on a unix socket with migrations applied."""1063 datadir = tmp_path_factory.mktemp("pgdata")1064 sockdir = tmp_path_factory.mktemp("pgsock")1065 subprocess.run( # noqa: S6031066 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1067 check=True,1068 capture_output=True,1069 )1070 proc = subprocess.Popen( # noqa: S6031071 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1072 stdout=subprocess.DEVNULL,1073 stderr=subprocess.DEVNULL,1074 )1075 try:1076 deadline = time.monotonic() + 301077 while (1078 subprocess.run( # noqa: S6031079 ["pg_isready", "-h", str(sockdir), "-U", "test"],1080 check=False,1081 capture_output=True,1082 ).returncode1083 != 01084 ):1085 # The socket appears before recovery finishes; createdb would1086 # fail with "the database system is starting up".1087 if time.monotonic() > deadline:1088 msg = "postgres did not start"1089> raise RuntimeError(msg)1090E RuntimeError: postgres did not start10911092nixbot/tests/support.py:319: RuntimeError1093_____________ ERROR at setup of test_admin_can_restart_and_cancel ______________1094[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410951096request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1097tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')10981099 @pytest.fixture(scope="module")1100 def postgres_dsn(1101 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1102 ) -> Iterator[str]:1103 if shutil.which("initdb") is None:1104 pytest.skip("postgresql not available")1105 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1106> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1107 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^11081109nixbot/tests/conftest.py:33: 1110_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1111/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1112 return next(self.gen)1113 ^^^^^^^^^^^^^^1114_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11151116tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1117dbname = 'control'11181119 @contextlib.contextmanager1120 def ephemeral_postgres(1121 tmp_path_factory: pytest.TempPathFactory, dbname: str1122 ) -> Iterator[str]:1123 """Throwaway Postgres on a unix socket with migrations applied."""1124 datadir = tmp_path_factory.mktemp("pgdata")1125 sockdir = tmp_path_factory.mktemp("pgsock")1126 subprocess.run( # noqa: S6031127 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1128 check=True,1129 capture_output=True,1130 )1131 proc = subprocess.Popen( # noqa: S6031132 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1133 stdout=subprocess.DEVNULL,1134 stderr=subprocess.DEVNULL,1135 )1136 try:1137 deadline = time.monotonic() + 301138 while (1139 subprocess.run( # noqa: S6031140 ["pg_isready", "-h", str(sockdir), "-U", "test"],1141 check=False,1142 capture_output=True,1143 ).returncode1144 != 01145 ):1146 # The socket appears before recovery finishes; createdb would1147 # fail with "the database system is starting up".1148 if time.monotonic() > deadline:1149 msg = "postgres did not start"1150> raise RuntimeError(msg)1151E RuntimeError: postgres did not start11521153nixbot/tests/support.py:319: RuntimeError1154___________ ERROR at setup of test_build_page_renders_ansi_in_error ____________1155[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411561157request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1158tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')11591160 @pytest.fixture(scope="module")1161 def postgres_dsn(1162 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1163 ) -> Iterator[str]:1164 if shutil.which("initdb") is None:1165 pytest.skip("postgresql not available")1166 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1167> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1168 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^11691170nixbot/tests/conftest.py:33: 1171_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1172/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1173 return next(self.gen)1174 ^^^^^^^^^^^^^^1175_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11761177tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1178dbname = 'web'11791180 @contextlib.contextmanager1181 def ephemeral_postgres(1182 tmp_path_factory: pytest.TempPathFactory, dbname: str1183 ) -> Iterator[str]:1184 """Throwaway Postgres on a unix socket with migrations applied."""1185 datadir = tmp_path_factory.mktemp("pgdata")1186 sockdir = tmp_path_factory.mktemp("pgsock")1187 subprocess.run( # noqa: S6031188 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1189 check=True,1190 capture_output=True,1191 )1192 proc = subprocess.Popen( # noqa: S6031193 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1194 stdout=subprocess.DEVNULL,1195 stderr=subprocess.DEVNULL,1196 )1197 try:1198 deadline = time.monotonic() + 301199 while (1200 subprocess.run( # noqa: S6031201 ["pg_isready", "-h", str(sockdir), "-U", "test"],1202 check=False,1203 capture_output=True,1204 ).returncode1205 != 01206 ):1207 # The socket appears before recovery finishes; createdb would1208 # fail with "the database system is starting up".1209 if time.monotonic() > deadline:1210 msg = "postgres did not start"1211> raise RuntimeError(msg)1212E RuntimeError: postgres did not start12131214nixbot/tests/support.py:319: RuntimeError1215_____________ ERROR at setup of test_authorized_user_sees_private ______________1216[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412171218request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1219tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')12201221 @pytest.fixture(scope="module")1222 def postgres_dsn(1223 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1224 ) -> Iterator[str]:1225 if shutil.which("initdb") is None:1226 pytest.skip("postgresql not available")1227 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1228> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1229 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12301231nixbot/tests/conftest.py:33: 1232_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1233/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1234 return next(self.gen)1235 ^^^^^^^^^^^^^^1236_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12371238tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1239dbname = 'visibility'12401241 @contextlib.contextmanager1242 def ephemeral_postgres(1243 tmp_path_factory: pytest.TempPathFactory, dbname: str1244 ) -> Iterator[str]:1245 """Throwaway Postgres on a unix socket with migrations applied."""1246 datadir = tmp_path_factory.mktemp("pgdata")1247 sockdir = tmp_path_factory.mktemp("pgsock")1248 subprocess.run( # noqa: S6031249 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1250 check=True,1251 capture_output=True,1252 )1253 proc = subprocess.Popen( # noqa: S6031254 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1255 stdout=subprocess.DEVNULL,1256 stderr=subprocess.DEVNULL,1257 )1258 try:1259 deadline = time.monotonic() + 301260 while (1261 subprocess.run( # noqa: S6031262 ["pg_isready", "-h", str(sockdir), "-U", "test"],1263 check=False,1264 capture_output=True,1265 ).returncode1266 != 01267 ):1268 # The socket appears before recovery finishes; createdb would1269 # fail with "the database system is starting up".1270 if time.monotonic() > deadline:1271 msg = "postgres did not start"1272> raise RuntimeError(msg)1273E RuntimeError: postgres did not start12741275nixbot/tests/support.py:319: RuntimeError1276_____________ ERROR at setup of test_pr_author_can_control_own_pr ______________1277[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412781279request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1280tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')12811282 @pytest.fixture(scope="module")1283 def postgres_dsn(1284 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1285 ) -> Iterator[str]:1286 if shutil.which("initdb") is None:1287 pytest.skip("postgresql not available")1288 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1289> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1290 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12911292nixbot/tests/conftest.py:33: 1293_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1294/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1295 return next(self.gen)1296 ^^^^^^^^^^^^^^1297_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12981299tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1300dbname = 'control'13011302 @contextlib.contextmanager1303 def ephemeral_postgres(1304 tmp_path_factory: pytest.TempPathFactory, dbname: str1305 ) -> Iterator[str]:1306 """Throwaway Postgres on a unix socket with migrations applied."""1307 datadir = tmp_path_factory.mktemp("pgdata")1308 sockdir = tmp_path_factory.mktemp("pgsock")1309 subprocess.run( # noqa: S6031310 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1311 check=True,1312 capture_output=True,1313 )1314 proc = subprocess.Popen( # noqa: S6031315 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1316 stdout=subprocess.DEVNULL,1317 stderr=subprocess.DEVNULL,1318 )1319 try:1320 deadline = time.monotonic() + 301321 while (1322 subprocess.run( # noqa: S6031323 ["pg_isready", "-h", str(sockdir), "-U", "test"],1324 check=False,1325 capture_output=True,1326 ).returncode1327 != 01328 ):1329 # The socket appears before recovery finishes; createdb would1330 # fail with "the database system is starting up".1331 if time.monotonic() > deadline:1332 msg = "postgres did not start"1333> raise RuntimeError(msg)1334E RuntimeError: postgres did not start13351336nixbot/tests/support.py:319: RuntimeError1337_____________ ERROR at setup of test_running_build_shows_progress ______________1338[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413391340request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1341tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')13421343 @pytest.fixture(scope="module")1344 def postgres_dsn(1345 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1346 ) -> Iterator[str]:1347 if shutil.which("initdb") is None:1348 pytest.skip("postgresql not available")1349 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1350> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1351 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^13521353nixbot/tests/conftest.py:33: 1354_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1355/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1356 return next(self.gen)1357 ^^^^^^^^^^^^^^1358_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13591360tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1361dbname = 'web'13621363 @contextlib.contextmanager1364 def ephemeral_postgres(1365 tmp_path_factory: pytest.TempPathFactory, dbname: str1366 ) -> Iterator[str]:1367 """Throwaway Postgres on a unix socket with migrations applied."""1368 datadir = tmp_path_factory.mktemp("pgdata")1369 sockdir = tmp_path_factory.mktemp("pgsock")1370 subprocess.run( # noqa: S6031371 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1372 check=True,1373 capture_output=True,1374 )1375 proc = subprocess.Popen( # noqa: S6031376 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1377 stdout=subprocess.DEVNULL,1378 stderr=subprocess.DEVNULL,1379 )1380 try:1381 deadline = time.monotonic() + 301382 while (1383 subprocess.run( # noqa: S6031384 ["pg_isready", "-h", str(sockdir), "-U", "test"],1385 check=False,1386 capture_output=True,1387 ).returncode1388 != 01389 ):1390 # The socket appears before recovery finishes; createdb would1391 # fail with "the database system is starting up".1392 if time.monotonic() > deadline:1393 msg = "postgres did not start"1394> raise RuntimeError(msg)1395E RuntimeError: postgres did not start13961397nixbot/tests/support.py:319: RuntimeError1398_________ ERROR at setup of test_project_store_sync_and_legacy_import __________1399[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414001401self = <Coroutine test_project_store_sync_and_legacy_import>14021403 def setup(self) -> None:1404 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1405 if runner_fixture_id not in self.fixturenames:1406 self.fixturenames.append(runner_fixture_id)1407 # When loop factories are configured, resolve the loop factory1408 # fixture early so that a factory variant change cascades cache1409 # invalidation before any async fixture checks its cache.1410 hook_caller = self.config.hook.pytest_asyncio_loop_factories1411 if hook_caller.get_hookimpls():1412 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1413> return super().setup()1414 ^^^^^^^^^^^^^^^14151416/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1417_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1418/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1419 return (yield)1420 ^^^^^1421nixbot/tests/conftest.py:33: in postgres_dsn1422 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1423 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1424/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1425 return next(self.gen)1426 ^^^^^^^^^^^^^^1427_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14281429tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1430dbname = 'forge'14311432 @contextlib.contextmanager1433 def ephemeral_postgres(1434 tmp_path_factory: pytest.TempPathFactory, dbname: str1435 ) -> Iterator[str]:1436 """Throwaway Postgres on a unix socket with migrations applied."""1437 datadir = tmp_path_factory.mktemp("pgdata")1438 sockdir = tmp_path_factory.mktemp("pgsock")1439 subprocess.run( # noqa: S6031440 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1441 check=True,1442 capture_output=True,1443 )1444 proc = subprocess.Popen( # noqa: S6031445 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1446 stdout=subprocess.DEVNULL,1447 stderr=subprocess.DEVNULL,1448 )1449 try:1450 deadline = time.monotonic() + 301451 while (1452 subprocess.run( # noqa: S6031453 ["pg_isready", "-h", str(sockdir), "-U", "test"],1454 check=False,1455 capture_output=True,1456 ).returncode1457 != 01458 ):1459 # The socket appears before recovery finishes; createdb would1460 # fail with "the database system is starting up".1461 if time.monotonic() > deadline:1462 msg = "postgres did not start"1463> raise RuntimeError(msg)1464E RuntimeError: postgres did not start14651466nixbot/tests/support.py:319: RuntimeError1467___________ ERROR at setup of test_permission_denied_records_reason ____________1468[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414691470self = <Coroutine test_permission_denied_records_reason>14711472 def setup(self) -> None:1473 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1474 if runner_fixture_id not in self.fixturenames:1475 self.fixturenames.append(runner_fixture_id)1476 # When loop factories are configured, resolve the loop factory1477 # fixture early so that a factory variant change cascades cache1478 # invalidation before any async fixture checks its cache.1479 hook_caller = self.config.hook.pytest_asyncio_loop_factories1480 if hook_caller.get_hookimpls():1481 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1482> return super().setup()1483 ^^^^^^^^^^^^^^^14841485/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1486_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1487nixbot/tests/conftest.py:33: in postgres_dsn1488 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1489 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1490/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1491 return next(self.gen)1492 ^^^^^^^^^^^^^^1493_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14941495tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1496dbname = 'deliver'14971498 @contextlib.contextmanager1499 def ephemeral_postgres(1500 tmp_path_factory: pytest.TempPathFactory, dbname: str1501 ) -> Iterator[str]:1502 """Throwaway Postgres on a unix socket with migrations applied."""1503 datadir = tmp_path_factory.mktemp("pgdata")1504 sockdir = tmp_path_factory.mktemp("pgsock")1505 subprocess.run( # noqa: S6031506 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1507 check=True,1508 capture_output=True,1509 )1510 proc = subprocess.Popen( # noqa: S6031511 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1512 stdout=subprocess.DEVNULL,1513 stderr=subprocess.DEVNULL,1514 )1515 try:1516 deadline = time.monotonic() + 301517 while (1518 subprocess.run( # noqa: S6031519 ["pg_isready", "-h", str(sockdir), "-U", "test"],1520 check=False,1521 capture_output=True,1522 ).returncode1523 != 01524 ):1525 # The socket appears before recovery finishes; createdb would1526 # fail with "the database system is starting up".1527 if time.monotonic() > deadline:1528 msg = "postgres did not start"1529> raise RuntimeError(msg)1530E RuntimeError: postgres did not start15311532nixbot/tests/support.py:319: RuntimeError1533_________________ ERROR at setup of test_admin_sees_everything _________________1534[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415351536request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1537tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')15381539 @pytest.fixture(scope="module")1540 def postgres_dsn(1541 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1542 ) -> Iterator[str]:1543 if shutil.which("initdb") is None:1544 pytest.skip("postgresql not available")1545 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1546> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1547 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^15481549nixbot/tests/conftest.py:33: 1550_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1551/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1552 return next(self.gen)1553 ^^^^^^^^^^^^^^1554_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15551556tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1557dbname = 'visibility'15581559 @contextlib.contextmanager1560 def ephemeral_postgres(1561 tmp_path_factory: pytest.TempPathFactory, dbname: str1562 ) -> Iterator[str]:1563 """Throwaway Postgres on a unix socket with migrations applied."""1564 datadir = tmp_path_factory.mktemp("pgdata")1565 sockdir = tmp_path_factory.mktemp("pgsock")1566 subprocess.run( # noqa: S6031567 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1568 check=True,1569 capture_output=True,1570 )1571 proc = subprocess.Popen( # noqa: S6031572 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1573 stdout=subprocess.DEVNULL,1574 stderr=subprocess.DEVNULL,1575 )1576 try:1577 deadline = time.monotonic() + 301578 while (1579 subprocess.run( # noqa: S6031580 ["pg_isready", "-h", str(sockdir), "-U", "test"],1581 check=False,1582 capture_output=True,1583 ).returncode1584 != 01585 ):1586 # The socket appears before recovery finishes; createdb would1587 # fail with "the database system is starting up".1588 if time.monotonic() > deadline:1589 msg = "postgres did not start"1590> raise RuntimeError(msg)1591E RuntimeError: postgres did not start15921593nixbot/tests/support.py:319: RuntimeError1594__ ERROR at setup of test_repo_writer_can_control_without_admin_or_authorship __1595[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415961597request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1598tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')15991600 @pytest.fixture(scope="module")1601 def postgres_dsn(1602 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1603 ) -> Iterator[str]:1604 if shutil.which("initdb") is None:1605 pytest.skip("postgresql not available")1606 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1607> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1608 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16091610nixbot/tests/conftest.py:33: 1611_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1612/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1613 return next(self.gen)1614 ^^^^^^^^^^^^^^1615_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16161617tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1618dbname = 'control'16191620 @contextlib.contextmanager1621 def ephemeral_postgres(1622 tmp_path_factory: pytest.TempPathFactory, dbname: str1623 ) -> Iterator[str]:1624 """Throwaway Postgres on a unix socket with migrations applied."""1625 datadir = tmp_path_factory.mktemp("pgdata")1626 sockdir = tmp_path_factory.mktemp("pgsock")1627 subprocess.run( # noqa: S6031628 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1629 check=True,1630 capture_output=True,1631 )1632 proc = subprocess.Popen( # noqa: S6031633 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1634 stdout=subprocess.DEVNULL,1635 stderr=subprocess.DEVNULL,1636 )1637 try:1638 deadline = time.monotonic() + 301639 while (1640 subprocess.run( # noqa: S6031641 ["pg_isready", "-h", str(sockdir), "-U", "test"],1642 check=False,1643 capture_output=True,1644 ).returncode1645 != 01646 ):1647 # The socket appears before recovery finishes; createdb would1648 # fail with "the database system is starting up".1649 if time.monotonic() > deadline:1650 msg = "postgres did not start"1651> raise RuntimeError(msg)1652E RuntimeError: postgres did not start16531654nixbot/tests/support.py:319: RuntimeError1655_________________ ERROR at setup of test_settle_already_built __________________1656[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416571658self = <Coroutine test_settle_already_built>16591660 def setup(self) -> None:1661 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1662 if runner_fixture_id not in self.fixturenames:1663 self.fixturenames.append(runner_fixture_id)1664 # When loop factories are configured, resolve the loop factory1665 # fixture early so that a factory variant change cascades cache1666 # invalidation before any async fixture checks its cache.1667 hook_caller = self.config.hook.pytest_asyncio_loop_factories1668 if hook_caller.get_hookimpls():1669 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1670> return super().setup()1671 ^^^^^^^^^^^^^^^16721673/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1674_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1675nixbot/tests/conftest.py:33: in postgres_dsn1676 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1677 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1678/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1679 return next(self.gen)1680 ^^^^^^^^^^^^^^1681_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16821683tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1684dbname = 'recovery'16851686 @contextlib.contextmanager1687 def ephemeral_postgres(1688 tmp_path_factory: pytest.TempPathFactory, dbname: str1689 ) -> Iterator[str]:1690 """Throwaway Postgres on a unix socket with migrations applied."""1691 datadir = tmp_path_factory.mktemp("pgdata")1692 sockdir = tmp_path_factory.mktemp("pgsock")1693 subprocess.run( # noqa: S6031694 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1695 check=True,1696 capture_output=True,1697 )1698 proc = subprocess.Popen( # noqa: S6031699 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1700 stdout=subprocess.DEVNULL,1701 stderr=subprocess.DEVNULL,1702 )1703 try:1704 deadline = time.monotonic() + 301705 while (1706 subprocess.run( # noqa: S6031707 ["pg_isready", "-h", str(sockdir), "-U", "test"],1708 check=False,1709 capture_output=True,1710 ).returncode1711 != 01712 ):1713 # The socket appears before recovery finishes; createdb would1714 # fail with "the database system is starting up".1715 if time.monotonic() > deadline:1716 msg = "postgres did not start"1717> raise RuntimeError(msg)1718E RuntimeError: postgres did not start17191720nixbot/tests/support.py:319: RuntimeError1721_______ ERROR at setup of test_admin_sees_disabled_repos_without_search ________1722[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417231724request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1725tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')17261727 @pytest.fixture(scope="module")1728 def postgres_dsn(1729 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1730 ) -> Iterator[str]:1731 if shutil.which("initdb") is None:1732 pytest.skip("postgresql not available")1733 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1734> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1735 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17361737nixbot/tests/conftest.py:33: 1738_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1739/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1740 return next(self.gen)1741 ^^^^^^^^^^^^^^1742_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17431744tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...tch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1745dbname = 'visibility'17461747 @contextlib.contextmanager1748 def ephemeral_postgres(1749 tmp_path_factory: pytest.TempPathFactory, dbname: str1750 ) -> Iterator[str]:1751 """Throwaway Postgres on a unix socket with migrations applied."""1752 datadir = tmp_path_factory.mktemp("pgdata")1753 sockdir = tmp_path_factory.mktemp("pgsock")1754 subprocess.run( # noqa: S6031755 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1756 check=True,1757 capture_output=True,1758 )1759 proc = subprocess.Popen( # noqa: S6031760 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1761 stdout=subprocess.DEVNULL,1762 stderr=subprocess.DEVNULL,1763 )1764 try:1765 deadline = time.monotonic() + 301766 while (1767 subprocess.run( # noqa: S6031768 ["pg_isready", "-h", str(sockdir), "-U", "test"],1769 check=False,1770 capture_output=True,1771 ).returncode1772 != 01773 ):1774 # The socket appears before recovery finishes; createdb would1775 # fail with "the database system is starting up".1776 if time.monotonic() > deadline:1777 msg = "postgres did not start"1778> raise RuntimeError(msg)1779E RuntimeError: postgres did not start17801781nixbot/tests/support.py:319: RuntimeError1782______ ERROR at setup of test_legacy_import_runs_despite_pull_based_rows _______1783[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417841785self = <Coroutine test_legacy_import_runs_despite_pull_based_rows>17861787 def setup(self) -> None:1788 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1789 if runner_fixture_id not in self.fixturenames:1790 self.fixturenames.append(runner_fixture_id)1791 # When loop factories are configured, resolve the loop factory1792 # fixture early so that a factory variant change cascades cache1793 # invalidation before any async fixture checks its cache.1794 hook_caller = self.config.hook.pytest_asyncio_loop_factories1795 if hook_caller.get_hookimpls():1796 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1797> return super().setup()1798 ^^^^^^^^^^^^^^^17991800/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1801_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1802nixbot/tests/conftest.py:33: in postgres_dsn1803 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1804 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1805/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1806 return next(self.gen)1807 ^^^^^^^^^^^^^^1808_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18091810tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1811dbname = 'forge'18121813 @contextlib.contextmanager1814 def ephemeral_postgres(1815 tmp_path_factory: pytest.TempPathFactory, dbname: str1816 ) -> Iterator[str]:1817 """Throwaway Postgres on a unix socket with migrations applied."""1818 datadir = tmp_path_factory.mktemp("pgdata")1819 sockdir = tmp_path_factory.mktemp("pgsock")1820 subprocess.run( # noqa: S6031821 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1822 check=True,1823 capture_output=True,1824 )1825 proc = subprocess.Popen( # noqa: S6031826 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1827 stdout=subprocess.DEVNULL,1828 stderr=subprocess.DEVNULL,1829 )1830 try:1831 deadline = time.monotonic() + 301832 while (1833 subprocess.run( # noqa: S6031834 ["pg_isready", "-h", str(sockdir), "-U", "test"],1835 check=False,1836 capture_output=True,1837 ).returncode1838 != 01839 ):1840 # The socket appears before recovery finishes; createdb would1841 # fail with "the database system is starting up".1842 if time.monotonic() > deadline:1843 msg = "postgres did not start"1844> raise RuntimeError(msg)1845E RuntimeError: postgres did not start18461847nixbot/tests/support.py:319: RuntimeError1848________________ ERROR at setup of test_build_page_live_markers ________________1849[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418501851request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1852tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')18531854 @pytest.fixture(scope="module")1855 def postgres_dsn(1856 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1857 ) -> Iterator[str]:1858 if shutil.which("initdb") is None:1859 pytest.skip("postgresql not available")1860 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1861> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1862 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^18631864nixbot/tests/conftest.py:33: 1865_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1866/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1867 return next(self.gen)1868 ^^^^^^^^^^^^^^1869_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18701871tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1872dbname = 'web'18731874 @contextlib.contextmanager1875 def ephemeral_postgres(1876 tmp_path_factory: pytest.TempPathFactory, dbname: str1877 ) -> Iterator[str]:1878 """Throwaway Postgres on a unix socket with migrations applied."""1879 datadir = tmp_path_factory.mktemp("pgdata")1880 sockdir = tmp_path_factory.mktemp("pgsock")1881 subprocess.run( # noqa: S6031882 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1883 check=True,1884 capture_output=True,1885 )1886 proc = subprocess.Popen( # noqa: S6031887 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1888 stdout=subprocess.DEVNULL,1889 stderr=subprocess.DEVNULL,1890 )1891 try:1892 deadline = time.monotonic() + 301893 while (1894 subprocess.run( # noqa: S6031895 ["pg_isready", "-h", str(sockdir), "-U", "test"],1896 check=False,1897 capture_output=True,1898 ).returncode1899 != 01900 ):1901 # The socket appears before recovery finishes; createdb would1902 # fail with "the database system is starting up".1903 if time.monotonic() > deadline:1904 msg = "postgres did not start"1905> raise RuntimeError(msg)1906E RuntimeError: postgres did not start19071908nixbot/tests/support.py:319: RuntimeError1909_________ ERROR at setup of test_approve_pr_requires_writer_not_author _________1910[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419111912request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1913tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')19141915 @pytest.fixture(scope="module")1916 def postgres_dsn(1917 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1918 ) -> Iterator[str]:1919 if shutil.which("initdb") is None:1920 pytest.skip("postgresql not available")1921 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1922> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1923 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19241925nixbot/tests/conftest.py:33: 1926_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1927/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1928 return next(self.gen)1929 ^^^^^^^^^^^^^^1930_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19311932tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1933dbname = 'control'19341935 @contextlib.contextmanager1936 def ephemeral_postgres(1937 tmp_path_factory: pytest.TempPathFactory, dbname: str1938 ) -> Iterator[str]:1939 """Throwaway Postgres on a unix socket with migrations applied."""1940 datadir = tmp_path_factory.mktemp("pgdata")1941 sockdir = tmp_path_factory.mktemp("pgsock")1942 subprocess.run( # noqa: S6031943 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1944 check=True,1945 capture_output=True,1946 )1947 proc = subprocess.Popen( # noqa: S6031948 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1949 stdout=subprocess.DEVNULL,1950 stderr=subprocess.DEVNULL,1951 )1952 try:1953 deadline = time.monotonic() + 301954 while (1955 subprocess.run( # noqa: S6031956 ["pg_isready", "-h", str(sockdir), "-U", "test"],1957 check=False,1958 capture_output=True,1959 ).returncode1960 != 01961 ):1962 # The socket appears before recovery finishes; createdb would1963 # fail with "the database system is starting up".1964 if time.monotonic() > deadline:1965 msg = "postgres did not start"1966> raise RuntimeError(msg)1967E RuntimeError: postgres did not start19681969nixbot/tests/support.py:319: RuntimeError1970___________________ ERROR at setup of test_attribute_history ___________________1971[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419721973request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1974tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')19751976 @pytest.fixture(scope="module")1977 def postgres_dsn(1978 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1979 ) -> Iterator[str]:1980 if shutil.which("initdb") is None:1981 pytest.skip("postgresql not available")1982 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1983> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1984 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19851986nixbot/tests/conftest.py:33: 1987_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1988/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1989 return next(self.gen)1990 ^^^^^^^^^^^^^^1991_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19921993tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1994dbname = 'web'19951996 @contextlib.contextmanager1997 def ephemeral_postgres(1998 tmp_path_factory: pytest.TempPathFactory, dbname: str1999 ) -> Iterator[str]:2000 """Throwaway Postgres on a unix socket with migrations applied."""20315 return next(self.gen)20316 ^^^^^^^^^^^^^^20317_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2031820319tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20320dbname = 'orchestrator'2032120322 @contextlib.contextmanager20323 def ephemeral_postgres(20324 tmp_path_factory: pytest.TempPathFactory, dbname: str20325 ) -> Iterator[str]:20326 """Throwaway Postgres on a unix socket with migrations applied."""20327 datadir = tmp_path_factory.mktemp("pgdata")20328 sockdir = tmp_path_factory.mktemp("pgsock")20329 subprocess.run( # noqa: S60320330 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20331 check=True,20332 capture_output=True,20333 )20334 proc = subprocess.Popen( # noqa: S60320335 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20336 stdout=subprocess.DEVNULL,20337 stderr=subprocess.DEVNULL,20338 )20339 try:20340 deadline = time.monotonic() + 3020341 while (20342 subprocess.run( # noqa: S60320343 ["pg_isready", "-h", str(sockdir), "-U", "test"],20344 check=False,20345 capture_output=True,20346 ).returncode20347 != 020348 ):20349 # The socket appears before recovery finishes; createdb would20350 # fail with "the database system is starting up".20351 if time.monotonic() > deadline:20352 msg = "postgres did not start"20353> raise RuntimeError(msg)20354E RuntimeError: postgres did not start2035520356nixbot/tests/support.py:319: RuntimeError20357__________ ERROR at setup of test_old_schedule_history_url_redirects ___________20358[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142035920360request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20361tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2036220363 @pytest.fixture(scope="module")20364 def postgres_dsn(20365 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20366 ) -> Iterator[str]:20367 if shutil.which("initdb") is None:20368 pytest.skip("postgresql not available")20369 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20370> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20371 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2037220373nixbot/tests/conftest.py:33: 20374_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20375/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20376 return next(self.gen)20377 ^^^^^^^^^^^^^^20378_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2037920380tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20381dbname = 'web'2038220383 @contextlib.contextmanager20384 def ephemeral_postgres(20385 tmp_path_factory: pytest.TempPathFactory, dbname: str20386 ) -> Iterator[str]:20387 """Throwaway Postgres on a unix socket with migrations applied."""20388 datadir = tmp_path_factory.mktemp("pgdata")20389 sockdir = tmp_path_factory.mktemp("pgsock")20390 subprocess.run( # noqa: S60320391 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20392 check=True,20393 capture_output=True,20394 )20395 proc = subprocess.Popen( # noqa: S60320396 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20397 stdout=subprocess.DEVNULL,20398 stderr=subprocess.DEVNULL,20399 )20400 try:20401 deadline = time.monotonic() + 3020402 while (20403 subprocess.run( # noqa: S60320404 ["pg_isready", "-h", str(sockdir), "-U", "test"],20405 check=False,20406 capture_output=True,20407 ).returncode20408 != 020409 ):20410 # The socket appears before recovery finishes; createdb would20411 # fail with "the database system is starting up".20412 if time.monotonic() > deadline:20413 msg = "postgres did not start"20414> raise RuntimeError(msg)20415E RuntimeError: postgres did not start2041620417nixbot/tests/support.py:319: RuntimeError20418__________ ERROR at setup of test_project_effects_filter_and_paginate __________20419[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142042020421request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20422tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2042320424 @pytest.fixture(scope="module")20425 def postgres_dsn(20426 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20427 ) -> Iterator[str]:20428 if shutil.which("initdb") is None:20429 pytest.skip("postgresql not available")20430 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20431> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20432 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2043320434nixbot/tests/conftest.py:33: 20435_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20436/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20437 return next(self.gen)20438 ^^^^^^^^^^^^^^20439_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2044020441tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20442dbname = 'web'2044320444 @contextlib.contextmanager20445 def ephemeral_postgres(20446 tmp_path_factory: pytest.TempPathFactory, dbname: str20447 ) -> Iterator[str]:20448 """Throwaway Postgres on a unix socket with migrations applied."""20449 datadir = tmp_path_factory.mktemp("pgdata")20450 sockdir = tmp_path_factory.mktemp("pgsock")20451 subprocess.run( # noqa: S60320452 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20453 check=True,20454 capture_output=True,20455 )20456 proc = subprocess.Popen( # noqa: S60320457 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20458 stdout=subprocess.DEVNULL,20459 stderr=subprocess.DEVNULL,20460 )20461 try:20462 deadline = time.monotonic() + 3020463 while (20464 subprocess.run( # noqa: S60320465 ["pg_isready", "-h", str(sockdir), "-U", "test"],20466 check=False,20467 capture_output=True,20468 ).returncode20469 != 020470 ):20471 # The socket appears before recovery finishes; createdb would20472 # fail with "the database system is starting up".20473 if time.monotonic() > deadline:20474 msg = "postgres did not start"20475> raise RuntimeError(msg)20476E RuntimeError: postgres did not start2047720478nixbot/tests/support.py:319: RuntimeError20479_________ ERROR at setup of test_scheduled_run_stream_replays_history __________20480[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142048120482request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20483tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2048420485 @pytest.fixture(scope="module")20486 def postgres_dsn(20487 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20488 ) -> Iterator[str]:20489 if shutil.which("initdb") is None:20490 pytest.skip("postgresql not available")20491 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20492> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20493 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2049420495nixbot/tests/conftest.py:33: 20496_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20497/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20498 return next(self.gen)20499 ^^^^^^^^^^^^^^20500_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2050120502tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20503dbname = 'web'2050420505 @contextlib.contextmanager20506 def ephemeral_postgres(20507 tmp_path_factory: pytest.TempPathFactory, dbname: str20508 ) -> Iterator[str]:20509 """Throwaway Postgres on a unix socket with migrations applied."""20510 datadir = tmp_path_factory.mktemp("pgdata")20511 sockdir = tmp_path_factory.mktemp("pgsock")20512 subprocess.run( # noqa: S60320513 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20514 check=True,20515 capture_output=True,20516 )20517 proc = subprocess.Popen( # noqa: S60320518 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20519 stdout=subprocess.DEVNULL,20520 stderr=subprocess.DEVNULL,20521 )20522 try:20523 deadline = time.monotonic() + 3020524 while (20525 subprocess.run( # noqa: S60320526 ["pg_isready", "-h", str(sockdir), "-U", "test"],20527 check=False,20528 capture_output=True,20529 ).returncode20530 != 020531 ):20532 # The socket appears before recovery finishes; createdb would20533 # fail with "the database system is starting up".20534 if time.monotonic() > deadline:20535 msg = "postgres did not start"20536> raise RuntimeError(msg)20537E RuntimeError: postgres did not start2053820539nixbot/tests/support.py:319: RuntimeError20540___________ ERROR at setup of test_scheduled_run_notify_build_events ___________20541[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142054220543request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20544tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2054520546 @pytest.fixture(scope="module")20547 def postgres_dsn(20548 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20549 ) -> Iterator[str]:20550 if shutil.which("initdb") is None:20551 pytest.skip("postgresql not available")20552 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20553> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20554 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2055520556nixbot/tests/conftest.py:33: 20557_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20558/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20559 return next(self.gen)20560 ^^^^^^^^^^^^^^20561_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2056220563tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20564dbname = 'web'2056520566 @contextlib.contextmanager20567 def ephemeral_postgres(20568 tmp_path_factory: pytest.TempPathFactory, dbname: str20569 ) -> Iterator[str]:20570 """Throwaway Postgres on a unix socket with migrations applied."""20571 datadir = tmp_path_factory.mktemp("pgdata")20572 sockdir = tmp_path_factory.mktemp("pgsock")20573 subprocess.run( # noqa: S60320574 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20575 check=True,20576 capture_output=True,20577 )20578 proc = subprocess.Popen( # noqa: S60320579 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20580 stdout=subprocess.DEVNULL,20581 stderr=subprocess.DEVNULL,20582 )20583 try:20584 deadline = time.monotonic() + 3020585 while (20586 subprocess.run( # noqa: S60320587 ["pg_isready", "-h", str(sockdir), "-U", "test"],20588 check=False,20589 capture_output=True,20590 ).returncode20591 != 020592 ):20593 # The socket appears before recovery finishes; createdb would20594 # fail with "the database system is starting up".20595 if time.monotonic() > deadline:20596 msg = "postgres did not start"20597> raise RuntimeError(msg)20598E RuntimeError: postgres did not start2059920600nixbot/tests/support.py:319: RuntimeError20601_________________ ERROR at setup of test_api_log_toc_and_text __________________20602[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142060320604request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20605tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2060620607 @pytest.fixture(scope="module")20608 def postgres_dsn(20609 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20610 ) -> Iterator[str]:20611 if shutil.which("initdb") is None:20612 pytest.skip("postgresql not available")20613 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20614> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20615 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2061620617nixbot/tests/conftest.py:33: 20618_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20619/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20620 return next(self.gen)20621 ^^^^^^^^^^^^^^20622_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2062320624tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20625dbname = 'web'2062620627 @contextlib.contextmanager20628 def ephemeral_postgres(20629 tmp_path_factory: pytest.TempPathFactory, dbname: str20630 ) -> Iterator[str]:20631 """Throwaway Postgres on a unix socket with migrations applied."""20632 datadir = tmp_path_factory.mktemp("pgdata")20633 sockdir = tmp_path_factory.mktemp("pgsock")20634 subprocess.run( # noqa: S60320635 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20636 check=True,20637 capture_output=True,20638 )20639 proc = subprocess.Popen( # noqa: S60320640 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20641 stdout=subprocess.DEVNULL,20642 stderr=subprocess.DEVNULL,20643 )20644 try:20645 deadline = time.monotonic() + 3020646 while (20647 subprocess.run( # noqa: S60320648 ["pg_isready", "-h", str(sockdir), "-U", "test"],20649 check=False,20650 capture_output=True,20651 ).returncode20652 != 020653 ):20654 # The socket appears before recovery finishes; createdb would20655 # fail with "the database system is starting up".20656 if time.monotonic() > deadline:20657 msg = "postgres did not start"20658> raise RuntimeError(msg)20659E RuntimeError: postgres did not start2066020661nixbot/tests/support.py:319: RuntimeError20662_______ ERROR at setup of test_eval_failure_settles_streamed_attributes ________20663[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142066420665self = <Coroutine test_eval_failure_settles_streamed_attributes>2066620667 def setup(self) -> None:20668 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20669 if runner_fixture_id not in self.fixturenames:20670 self.fixturenames.append(runner_fixture_id)20671 # When loop factories are configured, resolve the loop factory20672 # fixture early so that a factory variant change cascades cache20673 # invalidation before any async fixture checks its cache.20674 hook_caller = self.config.hook.pytest_asyncio_loop_factories20675 if hook_caller.get_hookimpls():20676 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20677> return super().setup()20678 ^^^^^^^^^^^^^^^2067920680/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20681_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20682nixbot/tests/conftest.py:33: in postgres_dsn20683 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20684 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20685/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20686 return next(self.gen)20687 ^^^^^^^^^^^^^^20688_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2068920690tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20691dbname = 'orchestrator'2069220693 @contextlib.contextmanager20694 def ephemeral_postgres(20695 tmp_path_factory: pytest.TempPathFactory, dbname: str20696 ) -> Iterator[str]:20697 """Throwaway Postgres on a unix socket with migrations applied."""20698 datadir = tmp_path_factory.mktemp("pgdata")20699 sockdir = tmp_path_factory.mktemp("pgsock")20700 subprocess.run( # noqa: S60320701 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20702 check=True,20703 capture_output=True,20704 )20705 proc = subprocess.Popen( # noqa: S60320706 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20707 stdout=subprocess.DEVNULL,20708 stderr=subprocess.DEVNULL,20709 )20710 try:20711 deadline = time.monotonic() + 3020712 while (20713 subprocess.run( # noqa: S60320714 ["pg_isready", "-h", str(sockdir), "-U", "test"],20715 check=False,20716 capture_output=True,20717 ).returncode20718 != 020719 ):20720 # The socket appears before recovery finishes; createdb would20721 # fail with "the database system is starting up".20722 if time.monotonic() > deadline:20723 msg = "postgres did not start"20724> raise RuntimeError(msg)20725E RuntimeError: postgres did not start2072620727nixbot/tests/support.py:319: RuntimeError20728_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________20729[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142073020731request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20732tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2073320734 @pytest.fixture(scope="module")20735 def postgres_dsn(20736 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20737 ) -> Iterator[str]:20738 if shutil.which("initdb") is None:20739 pytest.skip("postgresql not available")20740 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20741> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20742 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2074320744nixbot/tests/conftest.py:33: 20745_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20746/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20747 return next(self.gen)20748 ^^^^^^^^^^^^^^20749_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2075020751tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20752dbname = 'web'2075320754 @contextlib.contextmanager20755 def ephemeral_postgres(20756 tmp_path_factory: pytest.TempPathFactory, dbname: str20757 ) -> Iterator[str]:20758 """Throwaway Postgres on a unix socket with migrations applied."""20759 datadir = tmp_path_factory.mktemp("pgdata")20760 sockdir = tmp_path_factory.mktemp("pgsock")20761 subprocess.run( # noqa: S60320762 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20763 check=True,20764 capture_output=True,20765 )20766 proc = subprocess.Popen( # noqa: S60320767 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20768 stdout=subprocess.DEVNULL,20769 stderr=subprocess.DEVNULL,20770 )20771 try:20772 deadline = time.monotonic() + 3020773 while (20774 subprocess.run( # noqa: S60320775 ["pg_isready", "-h", str(sockdir), "-U", "test"],20776 check=False,20777 capture_output=True,20778 ).returncode20779 != 020780 ):20781 # The socket appears before recovery finishes; createdb would20782 # fail with "the database system is starting up".20783 if time.monotonic() > deadline:20784 msg = "postgres did not start"20785> raise RuntimeError(msg)20786E RuntimeError: postgres did not start2078720788nixbot/tests/support.py:319: RuntimeError20789_________________ ERROR at setup of test_effect_rows_roundtrip _________________20790[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142079120792self = <Coroutine test_effect_rows_roundtrip>2079320794 def setup(self) -> None:20795 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20796 if runner_fixture_id not in self.fixturenames:20797 self.fixturenames.append(runner_fixture_id)20798 # When loop factories are configured, resolve the loop factory20799 # fixture early so that a factory variant change cascades cache20800 # invalidation before any async fixture checks its cache.20801 hook_caller = self.config.hook.pytest_asyncio_loop_factories20802 if hook_caller.get_hookimpls():20803 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20804> return super().setup()20805 ^^^^^^^^^^^^^^^2080620807/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20808_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20809nixbot/tests/conftest.py:33: in postgres_dsn20810 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20811 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20812/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20813 return next(self.gen)20814 ^^^^^^^^^^^^^^20815_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2081620817tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20818dbname = 'orchestrator'2081920820 @contextlib.contextmanager20821 def ephemeral_postgres(20822 tmp_path_factory: pytest.TempPathFactory, dbname: str20823 ) -> Iterator[str]:20824 """Throwaway Postgres on a unix socket with migrations applied."""20825 datadir = tmp_path_factory.mktemp("pgdata")20826 sockdir = tmp_path_factory.mktemp("pgsock")20827 subprocess.run( # noqa: S60320828 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20829 check=True,20830 capture_output=True,20831 )20832 proc = subprocess.Popen( # noqa: S60320833 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20834 stdout=subprocess.DEVNULL,20835 stderr=subprocess.DEVNULL,20836 )20837 try:20838 deadline = time.monotonic() + 3020839 while (20840 subprocess.run( # noqa: S60320841 ["pg_isready", "-h", str(sockdir), "-U", "test"],20842 check=False,20843 capture_output=True,20844 ).returncode20845 != 020846 ):20847 # The socket appears before recovery finishes; createdb would20848 # fail with "the database system is starting up".20849 if time.monotonic() > deadline:20850 msg = "postgres did not start"20851> raise RuntimeError(msg)20852E RuntimeError: postgres did not start2085320854nixbot/tests/support.py:319: RuntimeError20855__________________ ERROR at setup of test_api_log_stream_json __________________20856[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142085720858request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20859tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2086020861 @pytest.fixture(scope="module")20862 def postgres_dsn(20863 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20864 ) -> Iterator[str]:20865 if shutil.which("initdb") is None:20866 pytest.skip("postgresql not available")20867 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20868> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20869 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2087020871nixbot/tests/conftest.py:33: 20872_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20873/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20874 return next(self.gen)20875 ^^^^^^^^^^^^^^20876_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2087720878tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20879dbname = 'web'2088020881 @contextlib.contextmanager20882 def ephemeral_postgres(20883 tmp_path_factory: pytest.TempPathFactory, dbname: str20884 ) -> Iterator[str]:20885 """Throwaway Postgres on a unix socket with migrations applied."""20886 datadir = tmp_path_factory.mktemp("pgdata")20887 sockdir = tmp_path_factory.mktemp("pgsock")20888 subprocess.run( # noqa: S60320889 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20890 check=True,20891 capture_output=True,20892 )20893 proc = subprocess.Popen( # noqa: S60320894 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20895 stdout=subprocess.DEVNULL,20896 stderr=subprocess.DEVNULL,20897 )20898 try:20899 deadline = time.monotonic() + 3020900 while (20901 subprocess.run( # noqa: S60320902 ["pg_isready", "-h", str(sockdir), "-U", "test"],20903 check=False,20904 capture_output=True,20905 ).returncode20906 != 020907 ):20908 # The socket appears before recovery finishes; createdb would20909 # fail with "the database system is starting up".20910 if time.monotonic() > deadline:20911 msg = "postgres did not start"20912> raise RuntimeError(msg)20913E RuntimeError: postgres did not start2091420915nixbot/tests/support.py:319: RuntimeError20916_______________ ERROR at setup of test_build_eval_stats_surface ________________20917[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142091820919request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20920tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2092120922 @pytest.fixture(scope="module")20923 def postgres_dsn(20924 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20925 ) -> Iterator[str]:20926 if shutil.which("initdb") is None:20927 pytest.skip("postgresql not available")20928 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20929> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20930 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2093120932nixbot/tests/conftest.py:33: 20933_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20934/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20935 return next(self.gen)20936 ^^^^^^^^^^^^^^20937_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2093820939tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20940dbname = 'web'2094120942 @contextlib.contextmanager20943 def ephemeral_postgres(20944 tmp_path_factory: pytest.TempPathFactory, dbname: str20945 ) -> Iterator[str]:20946 """Throwaway Postgres on a unix socket with migrations applied."""20947 datadir = tmp_path_factory.mktemp("pgdata")20948 sockdir = tmp_path_factory.mktemp("pgsock")20949 subprocess.run( # noqa: S60320950 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20951 check=True,20952 capture_output=True,20953 )20954 proc = subprocess.Popen( # noqa: S60320955 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20956 stdout=subprocess.DEVNULL,20957 stderr=subprocess.DEVNULL,20958 )20959 try:20960 deadline = time.monotonic() + 3020961 while (20962 subprocess.run( # noqa: S60320963 ["pg_isready", "-h", str(sockdir), "-U", "test"],20964 check=False,20965 capture_output=True,20966 ).returncode20967 != 020968 ):20969 # The socket appears before recovery finishes; createdb would20970 # fail with "the database system is starting up".20971 if time.monotonic() > deadline:20972 msg = "postgres did not start"20973> raise RuntimeError(msg)20974E RuntimeError: postgres did not start2097520976nixbot/tests/support.py:319: RuntimeError20977_________ ERROR at setup of test_pending_effects_replace_skipped_rows __________20978[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142097920980self = <Coroutine test_pending_effects_replace_skipped_rows>2098120982 def setup(self) -> None:20983 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20984 if runner_fixture_id not in self.fixturenames:20985 self.fixturenames.append(runner_fixture_id)20986 # When loop factories are configured, resolve the loop factory20987 # fixture early so that a factory variant change cascades cache20988 # invalidation before any async fixture checks its cache.20989 hook_caller = self.config.hook.pytest_asyncio_loop_factories20990 if hook_caller.get_hookimpls():20991 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20992> return super().setup()20993 ^^^^^^^^^^^^^^^2099420995/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20996_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20997nixbot/tests/conftest.py:33: in postgres_dsn20998 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20999 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21000/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21001 return next(self.gen)21002 ^^^^^^^^^^^^^^21003_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2100421005tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21006dbname = 'orchestrator'2100721008 @contextlib.contextmanager21009 def ephemeral_postgres(21010 tmp_path_factory: pytest.TempPathFactory, dbname: str21011 ) -> Iterator[str]:21012 """Throwaway Postgres on a unix socket with migrations applied."""21013 datadir = tmp_path_factory.mktemp("pgdata")21014 sockdir = tmp_path_factory.mktemp("pgsock")21015 subprocess.run( # noqa: S60321016 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21017 check=True,21018 capture_output=True,21019 )21020 proc = subprocess.Popen( # noqa: S60321021 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21022 stdout=subprocess.DEVNULL,21023 stderr=subprocess.DEVNULL,21024 )21025 try:21026 deadline = time.monotonic() + 3021027 while (21028 subprocess.run( # noqa: S60321029 ["pg_isready", "-h", str(sockdir), "-U", "test"],21030 check=False,21031 capture_output=True,21032 ).returncode21033 != 021034 ):21035 # The socket appears before recovery finishes; createdb would21036 # fail with "the database system is starting up".21037 if time.monotonic() > deadline:21038 msg = "postgres did not start"21039> raise RuntimeError(msg)21040E RuntimeError: postgres did not start2104121042nixbot/tests/support.py:319: RuntimeError21043___________ ERROR at setup of test_effect_items_resume_only_pending ____________21044[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142104521046self = <Coroutine test_effect_items_resume_only_pending>2104721048 def setup(self) -> None:21049 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21050 if runner_fixture_id not in self.fixturenames:21051 self.fixturenames.append(runner_fixture_id)21052 # When loop factories are configured, resolve the loop factory21053 # fixture early so that a factory variant change cascades cache21054 # invalidation before any async fixture checks its cache.21055 hook_caller = self.config.hook.pytest_asyncio_loop_factories21056 if hook_caller.get_hookimpls():21057 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21058> return super().setup()21059 ^^^^^^^^^^^^^^^2106021061/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21062_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21063nixbot/tests/conftest.py:33: in postgres_dsn21064 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21065 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21066/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21067 return next(self.gen)21068 ^^^^^^^^^^^^^^21069_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2107021071tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21072dbname = 'orchestrator'2107321074 @contextlib.contextmanager21075 def ephemeral_postgres(21076 tmp_path_factory: pytest.TempPathFactory, dbname: str21077 ) -> Iterator[str]:21078 """Throwaway Postgres on a unix socket with migrations applied."""21079 datadir = tmp_path_factory.mktemp("pgdata")21080 sockdir = tmp_path_factory.mktemp("pgsock")21081 subprocess.run( # noqa: S60321082 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21083 check=True,21084 capture_output=True,21085 )21086 proc = subprocess.Popen( # noqa: S60321087 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21088 stdout=subprocess.DEVNULL,21089 stderr=subprocess.DEVNULL,21090 )21091 try:21092 deadline = time.monotonic() + 3021093 while (21094 subprocess.run( # noqa: S60321095 ["pg_isready", "-h", str(sockdir), "-U", "test"],21096 check=False,21097 capture_output=True,21098 ).returncode21099 != 021100 ):21101 # The socket appears before recovery finishes; createdb would21102 # fail with "the database system is starting up".21103 if time.monotonic() > deadline:21104 msg = "postgres did not start"21105> raise RuntimeError(msg)21106E RuntimeError: postgres did not start2110721108nixbot/tests/support.py:319: RuntimeError21109_____________ ERROR at setup of test_effect_crash_settles_the_row ______________21110[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142111121112self = <Coroutine test_effect_crash_settles_the_row>2111321114 def setup(self) -> None:21115 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21116 if runner_fixture_id not in self.fixturenames:21117 self.fixturenames.append(runner_fixture_id)21118 # When loop factories are configured, resolve the loop factory21119 # fixture early so that a factory variant change cascades cache21120 # invalidation before any async fixture checks its cache.21121 hook_caller = self.config.hook.pytest_asyncio_loop_factories21122 if hook_caller.get_hookimpls():21123 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21124> return super().setup()21125 ^^^^^^^^^^^^^^^2112621127/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21128_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21129nixbot/tests/conftest.py:33: in postgres_dsn21130 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21131 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21132/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21133 return next(self.gen)21134 ^^^^^^^^^^^^^^21135_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2113621137tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21138dbname = 'orchestrator'2113921140 @contextlib.contextmanager21141 def ephemeral_postgres(21142 tmp_path_factory: pytest.TempPathFactory, dbname: str21143 ) -> Iterator[str]:21144 """Throwaway Postgres on a unix socket with migrations applied."""21145 datadir = tmp_path_factory.mktemp("pgdata")21146 sockdir = tmp_path_factory.mktemp("pgsock")21147 subprocess.run( # noqa: S60321148 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21149 check=True,21150 capture_output=True,21151 )21152 proc = subprocess.Popen( # noqa: S60321153 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21154 stdout=subprocess.DEVNULL,21155 stderr=subprocess.DEVNULL,21156 )21157 try:21158 deadline = time.monotonic() + 3021159 while (21160 subprocess.run( # noqa: S60321161 ["pg_isready", "-h", str(sockdir), "-U", "test"],21162 check=False,21163 capture_output=True,21164 ).returncode21165 != 021166 ):21167 # The socket appears before recovery finishes; createdb would21168 # fail with "the database system is starting up".21169 if time.monotonic() > deadline:21170 msg = "postgres did not start"21171> raise RuntimeError(msg)21172E RuntimeError: postgres did not start2117321174nixbot/tests/support.py:319: RuntimeError21175_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______21176[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142117721178self = <Coroutine test_concurrent_effects_use_independent_worktrees>2117921180 def setup(self) -> None:21181 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21182 if runner_fixture_id not in self.fixturenames:21183 self.fixturenames.append(runner_fixture_id)21184 # When loop factories are configured, resolve the loop factory21185 # fixture early so that a factory variant change cascades cache21186 # invalidation before any async fixture checks its cache.21187 hook_caller = self.config.hook.pytest_asyncio_loop_factories21188 if hook_caller.get_hookimpls():21189 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21190> return super().setup()21191 ^^^^^^^^^^^^^^^2119221193/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21194_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21195nixbot/tests/conftest.py:33: in postgres_dsn21196 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21197 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21198/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21199 return next(self.gen)21200 ^^^^^^^^^^^^^^21201_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2120221203tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21204dbname = 'orchestrator'2120521206 @contextlib.contextmanager21207 def ephemeral_postgres(21208 tmp_path_factory: pytest.TempPathFactory, dbname: str21209 ) -> Iterator[str]:21210 """Throwaway Postgres on a unix socket with migrations applied."""21211 datadir = tmp_path_factory.mktemp("pgdata")21212 sockdir = tmp_path_factory.mktemp("pgsock")21213 subprocess.run( # noqa: S60321214 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21215 check=True,21216 capture_output=True,21217 )21218 proc = subprocess.Popen( # noqa: S60321219 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21220 stdout=subprocess.DEVNULL,21221 stderr=subprocess.DEVNULL,21222 )21223 try:21224 deadline = time.monotonic() + 3021225 while (21226 subprocess.run( # noqa: S60321227 ["pg_isready", "-h", str(sockdir), "-U", "test"],21228 check=False,21229 capture_output=True,21230 ).returncode21231 != 021232 ):21233 # The socket appears before recovery finishes; createdb would21234 # fail with "the database system is starting up".21235 if time.monotonic() > deadline:21236 msg = "postgres did not start"21237> raise RuntimeError(msg)21238E RuntimeError: postgres did not start2123921240nixbot/tests/support.py:319: RuntimeError21241__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________21242[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142124321244self = <Coroutine test_locked_effect_gets_shared_dedup_key>2124521246 def setup(self) -> None:21247 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21248 if runner_fixture_id not in self.fixturenames:21249 self.fixturenames.append(runner_fixture_id)21250 # When loop factories are configured, resolve the loop factory21251 # fixture early so that a factory variant change cascades cache21252 # invalidation before any async fixture checks its cache.21253 hook_caller = self.config.hook.pytest_asyncio_loop_factories21254 if hook_caller.get_hookimpls():21255 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21256> return super().setup()21257 ^^^^^^^^^^^^^^^2125821259/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21260_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21261nixbot/tests/conftest.py:33: in postgres_dsn21262 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21264/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21265 return next(self.gen)21266 ^^^^^^^^^^^^^^21267_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2126821269tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21270dbname = 'orchestrator'2127121272 @contextlib.contextmanager21273 def ephemeral_postgres(21274 tmp_path_factory: pytest.TempPathFactory, dbname: str21275 ) -> Iterator[str]:21276 """Throwaway Postgres on a unix socket with migrations applied."""21277 datadir = tmp_path_factory.mktemp("pgdata")21278 sockdir = tmp_path_factory.mktemp("pgsock")21279 subprocess.run( # noqa: S60321280 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21281 check=True,21282 capture_output=True,21283 )21284 proc = subprocess.Popen( # noqa: S60321285 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21286 stdout=subprocess.DEVNULL,21287 stderr=subprocess.DEVNULL,21288 )21289 try:21290 deadline = time.monotonic() + 3021291 while (21292 subprocess.run( # noqa: S60321293 ["pg_isready", "-h", str(sockdir), "-U", "test"],21294 check=False,21295 capture_output=True,21296 ).returncode21297 != 021298 ):21299 # The socket appears before recovery finishes; createdb would21300 # fail with "the database system is starting up".21301 if time.monotonic() > deadline:21302 msg = "postgres did not start"21303> raise RuntimeError(msg)21304E RuntimeError: postgres did not start2130521306nixbot/tests/support.py:319: RuntimeError21307______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______21308[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142130921310self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2131121312 def setup(self) -> None:21313 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21314 if runner_fixture_id not in self.fixturenames:21315 self.fixturenames.append(runner_fixture_id)21316 # When loop factories are configured, resolve the loop factory21317 # fixture early so that a factory variant change cascades cache21318 # invalidation before any async fixture checks its cache.21319 hook_caller = self.config.hook.pytest_asyncio_loop_factories21320 if hook_caller.get_hookimpls():21321 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21322> return super().setup()21323 ^^^^^^^^^^^^^^^2132421325/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21326_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21327nixbot/tests/conftest.py:33: in postgres_dsn21328 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21329 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21330/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21331 return next(self.gen)21332 ^^^^^^^^^^^^^^21333_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2133421335tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21336dbname = 'orchestrator'2133721338 @contextlib.contextmanager21339 def ephemeral_postgres(21340 tmp_path_factory: pytest.TempPathFactory, dbname: str21341 ) -> Iterator[str]:21342 """Throwaway Postgres on a unix socket with migrations applied."""21343 datadir = tmp_path_factory.mktemp("pgdata")21344 sockdir = tmp_path_factory.mktemp("pgsock")21345 subprocess.run( # noqa: S60321346 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21347 check=True,21348 capture_output=True,21349 )21350 proc = subprocess.Popen( # noqa: S60321351 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21352 stdout=subprocess.DEVNULL,21353 stderr=subprocess.DEVNULL,21354 )21355 try:21356 deadline = time.monotonic() + 3021357 while (21358 subprocess.run( # noqa: S60321359 ["pg_isready", "-h", str(sockdir), "-U", "test"],21360 check=False,21361 capture_output=True,21362 ).returncode21363 != 021364 ):21365 # The socket appears before recovery finishes; createdb would21366 # fail with "the database system is starting up".21367 if time.monotonic() > deadline:21368 msg = "postgres did not start"21369> raise RuntimeError(msg)21370E RuntimeError: postgres did not start2137121372nixbot/tests/support.py:319: RuntimeError21373__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21374[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142137521376self = <Coroutine test_effect_dep_failure_skips_dependent>2137721378 def setup(self) -> None:21379 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21380 if runner_fixture_id not in self.fixturenames:21381 self.fixturenames.append(runner_fixture_id)21382 # When loop factories are configured, resolve the loop factory21383 # fixture early so that a factory variant change cascades cache21384 # invalidation before any async fixture checks its cache.21385 hook_caller = self.config.hook.pytest_asyncio_loop_factories21386 if hook_caller.get_hookimpls():21387 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21388> return super().setup()21389 ^^^^^^^^^^^^^^^2139021391/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21392_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21393nixbot/tests/conftest.py:33: in postgres_dsn21394 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21395 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21396/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21397 return next(self.gen)21398 ^^^^^^^^^^^^^^21399_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2140021401tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21402dbname = 'orchestrator'2140321404 @contextlib.contextmanager21405 def ephemeral_postgres(21406 tmp_path_factory: pytest.TempPathFactory, dbname: str21407 ) -> Iterator[str]:21408 """Throwaway Postgres on a unix socket with migrations applied."""21409 datadir = tmp_path_factory.mktemp("pgdata")21410 sockdir = tmp_path_factory.mktemp("pgsock")21411 subprocess.run( # noqa: S60321412 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21413 check=True,21414 capture_output=True,21415 )21416 proc = subprocess.Popen( # noqa: S60321417 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21418 stdout=subprocess.DEVNULL,21419 stderr=subprocess.DEVNULL,21420 )21421 try:21422 deadline = time.monotonic() + 3021423 while (21424 subprocess.run( # noqa: S60321425 ["pg_isready", "-h", str(sockdir), "-U", "test"],21426 check=False,21427 capture_output=True,21428 ).returncode21429 != 021430 ):21431 # The socket appears before recovery finishes; createdb would21432 # fail with "the database system is starting up".21433 if time.monotonic() > deadline:21434 msg = "postgres did not start"21435> raise RuntimeError(msg)21436E RuntimeError: postgres did not start2143721438nixbot/tests/support.py:319: RuntimeError21439______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21440[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144121442self = <Coroutine test_lock_serializes_builds_without_interleaving>2144321444 def setup(self) -> None:21445 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21446 if runner_fixture_id not in self.fixturenames:21447 self.fixturenames.append(runner_fixture_id)21448 # When loop factories are configured, resolve the loop factory21449 # fixture early so that a factory variant change cascades cache21450 # invalidation before any async fixture checks its cache.21451 hook_caller = self.config.hook.pytest_asyncio_loop_factories21452 if hook_caller.get_hookimpls():21453 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21454> return super().setup()21455 ^^^^^^^^^^^^^^^2145621457/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21458_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21459nixbot/tests/conftest.py:33: in postgres_dsn21460 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21461 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21462/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21463 return next(self.gen)21464 ^^^^^^^^^^^^^^21465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2146621467tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21468dbname = 'orchestrator'2146921470 @contextlib.contextmanager21471 def ephemeral_postgres(21472 tmp_path_factory: pytest.TempPathFactory, dbname: str21473 ) -> Iterator[str]:21474 """Throwaway Postgres on a unix socket with migrations applied."""21475 datadir = tmp_path_factory.mktemp("pgdata")21476 sockdir = tmp_path_factory.mktemp("pgsock")21477 subprocess.run( # noqa: S60321478 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21479 check=True,21480 capture_output=True,21481 )21482 proc = subprocess.Popen( # noqa: S60321483 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21484 stdout=subprocess.DEVNULL,21485 stderr=subprocess.DEVNULL,21486 )21487 try:21488 deadline = time.monotonic() + 3021489 while (21490 subprocess.run( # noqa: S60321491 ["pg_isready", "-h", str(sockdir), "-U", "test"],21492 check=False,21493 capture_output=True,21494 ).returncode21495 != 021496 ):21497 # The socket appears before recovery finishes; createdb would21498 # fail with "the database system is starting up".21499 if time.monotonic() > deadline:21500 msg = "postgres did not start"21501> raise RuntimeError(msg)21502E RuntimeError: postgres did not start2150321504nixbot/tests/support.py:319: RuntimeError21505___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21506[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142150721508self = <Coroutine test_effect_dep_cycle_fails_discovery>2150921510 def setup(self) -> None:21511 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21512 if runner_fixture_id not in self.fixturenames:21513 self.fixturenames.append(runner_fixture_id)21514 # When loop factories are configured, resolve the loop factory21515 # fixture early so that a factory variant change cascades cache21516 # invalidation before any async fixture checks its cache.21517 hook_caller = self.config.hook.pytest_asyncio_loop_factories21518 if hook_caller.get_hookimpls():21519 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21520> return super().setup()21521 ^^^^^^^^^^^^^^^2152221523/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21524_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21525nixbot/tests/conftest.py:33: in postgres_dsn21526 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21527 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21528/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21529 return next(self.gen)21530 ^^^^^^^^^^^^^^21531_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153221533tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21534dbname = 'orchestrator'2153521536 @contextlib.contextmanager21537 def ephemeral_postgres(21538 tmp_path_factory: pytest.TempPathFactory, dbname: str21539 ) -> Iterator[str]:21540 """Throwaway Postgres on a unix socket with migrations applied."""21541 datadir = tmp_path_factory.mktemp("pgdata")21542 sockdir = tmp_path_factory.mktemp("pgsock")21543 subprocess.run( # noqa: S60321544 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21545 check=True,21546 capture_output=True,21547 )21548 proc = subprocess.Popen( # noqa: S60321549 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21550 stdout=subprocess.DEVNULL,21551 stderr=subprocess.DEVNULL,21552 )21553 try:21554 deadline = time.monotonic() + 3021555 while (21556 subprocess.run( # noqa: S60321557 ["pg_isready", "-h", str(sockdir), "-U", "test"],21558 check=False,21559 capture_output=True,21560 ).returncode21561 != 021562 ):21563 # The socket appears before recovery finishes; createdb would21564 # fail with "the database system is starting up".21565 if time.monotonic() > deadline:21566 msg = "postgres did not start"21567> raise RuntimeError(msg)21568E RuntimeError: postgres did not start2156921570nixbot/tests/support.py:319: RuntimeError21571_________ ERROR at setup of test_failed_effect_reports_failure_status __________21572[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157321574self = <Coroutine test_failed_effect_reports_failure_status>2157521576 def setup(self) -> None:21577 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21578 if runner_fixture_id not in self.fixturenames:21579 self.fixturenames.append(runner_fixture_id)21580 # When loop factories are configured, resolve the loop factory21581 # fixture early so that a factory variant change cascades cache21582 # invalidation before any async fixture checks its cache.21583 hook_caller = self.config.hook.pytest_asyncio_loop_factories21584 if hook_caller.get_hookimpls():21585 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21586> return super().setup()21587 ^^^^^^^^^^^^^^^2158821589/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21590_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21591nixbot/tests/conftest.py:33: in postgres_dsn21592 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21593 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21594/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21595 return next(self.gen)21596 ^^^^^^^^^^^^^^21597_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2159821599tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21600dbname = 'orchestrator'2160121602 @contextlib.contextmanager21603 def ephemeral_postgres(21604 tmp_path_factory: pytest.TempPathFactory, dbname: str21605 ) -> Iterator[str]:21606 """Throwaway Postgres on a unix socket with migrations applied."""21607 datadir = tmp_path_factory.mktemp("pgdata")21608 sockdir = tmp_path_factory.mktemp("pgsock")21609 subprocess.run( # noqa: S60321610 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21611 check=True,21612 capture_output=True,21613 )21614 proc = subprocess.Popen( # noqa: S60321615 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21616 stdout=subprocess.DEVNULL,21617 stderr=subprocess.DEVNULL,21618 )21619 try:21620 deadline = time.monotonic() + 3021621 while (21622 subprocess.run( # noqa: S60321623 ["pg_isready", "-h", str(sockdir), "-U", "test"],21624 check=False,21625 capture_output=True,21626 ).returncode21627 != 021628 ):21629 # The socket appears before recovery finishes; createdb would21630 # fail with "the database system is starting up".21631 if time.monotonic() > deadline:21632 msg = "postgres did not start"21633> raise RuntimeError(msg)21634E RuntimeError: postgres did not start2163521636nixbot/tests/support.py:319: RuntimeError21637________ ERROR at setup of test_post_process_error_does_not_wedge_build ________21638[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142163921640self = <Coroutine test_post_process_error_does_not_wedge_build>2164121642 def setup(self) -> None:21643 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21644 if runner_fixture_id not in self.fixturenames:21645 self.fixturenames.append(runner_fixture_id)21646 # When loop factories are configured, resolve the loop factory21647 # fixture early so that a factory variant change cascades cache21648 # invalidation before any async fixture checks its cache.21649 hook_caller = self.config.hook.pytest_asyncio_loop_factories21650 if hook_caller.get_hookimpls():21651 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21652> return super().setup()21653 ^^^^^^^^^^^^^^^2165421655/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21656_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21657nixbot/tests/conftest.py:33: in postgres_dsn21658 with ephemeral_postgres(tmp_path_factory, dbname) as dsn: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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21666dbname = 'orchestrator'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_unexpected_eval_path_error_settles_build ________21704[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170521706self = <Coroutine test_unexpected_eval_path_error_settles_build>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_reuse_empty_succeeded_build_posts_eval_success _____21770[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177121772self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_stale_event_reusing_old_build_does_not_cancel_newer __21836[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142183721838self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_reuse_for_default_branch_push_runs_effects _______21902[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190321904self = <Coroutine test_reuse_for_default_branch_push_runs_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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_reusing_deployed_build_delivers_its_own_effects __21968[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142196921970self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_tag_attached_to_in_flight_build_delivers_on_success __22034[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203522036self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_of_gated_build_settles_effect_rows _______22100[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210122102self = <Coroutine test_restart_of_gated_build_settles_effect_rows>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_build_drops_queued_effect_items ________22166[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142216722168self = <Coroutine test_restart_build_drops_queued_effect_items>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_restart_effects_after_pr_attach_keeps_effects_ref ___22232[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223322234self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_gated_restart_then_allowed_reuse_deploys ________22298[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142229922300self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_rerun_single_effect_takes_pending_dependents ______22364[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236522366self = <Coroutine test_rerun_single_effect_takes_pending_dependents>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_reuse_replays_effect_statuses_to_new_commit ______22430[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243122432self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_attach_to_already_terminal_build_replays_status ____22496[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142249722498self = <Coroutine test_attach_to_already_terminal_build_replays_status>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_cancel_during_eval_resolves_linked_eval_contexts ____22562[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256322564self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_effect_log_does_not_collide_with_attribute_log _____22628[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142262922630self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_post_process_paths_are_forge_scoped __________22694[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269522696self = <Coroutine test_post_process_paths_are_forge_scoped>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_effects_phase_error_keeps_succeeded_build _______22760[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276122762self = <Coroutine test_effects_phase_error_keeps_succeeded_build>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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_post_process_error_still_reports_status _____22826[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142282722828self = <Coroutine test_reuse_post_process_error_still_reports_status>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/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/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____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____22892[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289322894self = <Coroutine test_reuse_with_missing_output_still_post_processes>2289522896 def setup(self) -> None:22897 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22898 if runner_fixture_id not in self.fixturenames:22899 self.fixturenames.append(runner_fixture_id)22900 # When loop factories are configured, resolve the loop factory22901 # fixture early so that a factory variant change cascades cache22902 # invalidation before any async fixture checks its cache.22903 hook_caller = self.config.hook.pytest_asyncio_loop_factories22904 if hook_caller.get_hookimpls():22905 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22906> return super().setup()22907 ^^^^^^^^^^^^^^^2290822909/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22910_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22911nixbot/tests/conftest.py:33: in postgres_dsn22912 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22913 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22914/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22915 return next(self.gen)22916 ^^^^^^^^^^^^^^22917_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2291822919tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/p...atch/72fdd8dd79e44c60/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22920dbname = 'orchestrator'2292122922 @contextlib.contextmanager22923 def ephemeral_postgres(22924 tmp_path_factory: pytest.TempPathFactory, dbname: str22925 ) -> Iterator[str]:22926 """Throwaway Postgres on a unix socket with migrations applied."""22927 datadir = tmp_path_factory.mktemp("pgdata")22928 sockdir = tmp_path_factory.mktemp("pgsock")22929 subprocess.run( # noqa: S60322930 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22931 check=True,22932 capture_output=True,22933 )22934 proc = subprocess.Popen( # noqa: S60322935 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22936 stdout=subprocess.DEVNULL,22937 stderr=subprocess.DEVNULL,22938 )22939 try:22940 deadline = time.monotonic() + 3022941 while (22942 subprocess.run( # noqa: S60322943 ["pg_isready", "-h", str(sockdir), "-U", "test"],22944 check=False,22945 capture_output=True,22946 ).returncode22947 != 022948 ):22949 # The socket appears before recovery finishes; createdb would22950 # fail with "the database system is starting up".22951 if time.monotonic() > deadline:22952 msg = "postgres did not start"22953> raise RuntimeError(msg)22954E RuntimeError: postgres did not start2295522956nixbot/tests/support.py:319: RuntimeError22957=========================== short test summary info ============================22958ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...22959ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...22960ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...22961ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...22962ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...22963ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...22964ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...22965ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...22966ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...22967ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings22968ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission22969ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...22970ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only22971ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...22972ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...22973ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...22974ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...22975ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...22976ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...22977ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...22978ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import22979ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...22980ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...22981ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship22982ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...22983ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search22984ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows22985ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...22986ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author22987ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...22988ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...22989ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...22990ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...22991ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...22992ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...22993ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge22994ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...22995ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds22996ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...22997ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...22998ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...22999ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23000ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23001ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23002ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23003ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23004ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23005ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23006ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23007ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23008ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23009ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23010ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23011ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23012ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23013ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23014ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23015ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23016ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23017ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23018ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23019ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23020ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23021ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23022ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23023ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23024ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23025ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23026ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23027ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23028ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23029ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23030ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23031ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23032ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23033ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23034ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23035ERROR nixbot/tests/test_schedules.py::test_concurrent_replace_schedules_do_not_collide23036ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23037ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23038ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23039ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23040ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23041ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23042ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23043ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23044ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23045ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23046ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23047ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23048ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23049ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23050ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23051ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23052ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23053ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23054ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23055ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23056ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23057ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23058ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23059ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23060ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23061ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23062ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23063ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23064ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23065ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23066ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23067ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23068ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23069ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23070ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23071ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23072ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23073ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23074ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23075ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23076ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23077ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23078ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23079ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23080ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23081ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23082ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23083ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23084ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23085ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23086ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23087ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23088ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23089ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23090ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23091ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23092ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23093ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23094ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23095ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23096ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23097ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23098ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23099ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23100ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23101ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23102ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23103ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23104ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23105ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23106ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23107ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23108ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23109ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23110ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23111ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23112ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23113ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23114ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23115ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23116ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23117ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23118ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23119ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23120ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23121ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23122ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23123ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23124ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23125ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23126ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23127ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23128ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23129ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23130ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23131ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23132ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23133ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23134ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23135ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23136ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23137ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23138ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23139ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23140ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23141ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23142ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23143ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23144ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23145ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23146ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23147ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23148ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23149ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23150ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23151ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23152ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23153ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23154ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23155ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23156ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23157ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23158ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23159ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23160ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23161ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23162ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23163ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23164ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23165ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23166ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23167ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23168ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23169ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23170ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23171ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23172ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23173ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23174ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23175ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23176ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23177ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23178ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23179ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23180ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23181ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23182ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23183ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23184ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23185ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23186ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23187ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23188ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23189ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23190ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23191ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23192ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23193ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23194ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23195ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23196ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23197ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23198ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23199ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23200ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23201ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23202ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23203ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23204ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23205ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23206ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23207ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23208ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23209ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23210ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23211ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23212ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23213ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23214ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23215ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23216ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23217ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23218ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23219ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23220ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23221ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23222ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23223ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23224ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23225ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23226ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23227ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23228ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23229ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23230ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23231ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23232ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23233ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23234ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23235ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23236ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23237ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23238ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23239ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23240ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23241ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23242ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23243ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23244ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23245ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23246ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23247ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23248ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23249ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23250ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23251ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23252ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23253ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23254ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23255ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23256ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23257ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23258ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23259ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23260ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23261ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23262ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23263ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23264ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23265ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23266ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423267ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23268ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23269ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23270ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23271ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23272ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23273ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23274ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23275ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23276ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23277ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23278ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23279ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23280ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23281ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23282ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23283ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23284ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23285ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23286ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23287ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23288ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23289ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23290ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23291ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23292ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23293ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23294ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23295ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23296ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23297ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23298ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23299ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23300ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23301ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23302ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23303ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23304ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23305ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23306ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23307ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23308ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23309ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23310ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23311ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23312ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23313ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23314================= 477 passed, 29 skipped, 356 errors in 42.23s =================