python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #444
· 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 nothingbuildPhase
21Executing pypaBuildPhase22Creating a wheel...23pypa build flags: --no-isolation --outdir dist/ --wheel24* Getting build dependencies for wheel...25* Building wheel...26Successfully built nixbot-0.0.1-py3-none-any.whl27Finished creating a wheel...28Finished executing pypaBuildPhasepythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheckinstallPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhasepythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhasefixupPhase
37checking for references to /private/var/tb/5/scratch/a4c115648c1965ef/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/5/scratch/a4c115648c1965ef/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 pythonRemoveTestsDirinstallCheckPhase
46no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
47Executing pythonImportsCheckPhasepytestCheckPhase
48Executing pytestCheckPhase49pytest flags: -m pytest --numprocesses=2450/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.51 warner(PytestBenchmarkWarning(text))52/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.53 warner(PytestBenchmarkWarning(text))54/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.55 warner(PytestBenchmarkWarning(text))56/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.57 warner(PytestBenchmarkWarning(text))58/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.59 warner(PytestBenchmarkWarning(text))60/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.61 warner(PytestBenchmarkWarning(text))62/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.63 warner(PytestBenchmarkWarning(text))64/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.65 warner(PytestBenchmarkWarning(text))66/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.67 warner(PytestBenchmarkWarning(text))68/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.69 warner(PytestBenchmarkWarning(text))70/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.71 warner(PytestBenchmarkWarning(text))72/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.73 warner(PytestBenchmarkWarning(text))74/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.75 warner(PytestBenchmarkWarning(text))76/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.77 warner(PytestBenchmarkWarning(text))78/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.79 warner(PytestBenchmarkWarning(text))80/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.81 warner(PytestBenchmarkWarning(text))82/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.83 warner(PytestBenchmarkWarning(text))84/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.85 warner(PytestBenchmarkWarning(text))86/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.87 warner(PytestBenchmarkWarning(text))88/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.89 warner(PytestBenchmarkWarning(text))90/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.91 warner(PytestBenchmarkWarning(text))92/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.93 warner(PytestBenchmarkWarning(text))94/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.95 warner(PytestBenchmarkWarning(text))96/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.97 warner(PytestBenchmarkWarning(text))98/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.99 warner(PytestBenchmarkWarning(text))100============================= test session starts ==============================101platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0102benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)103rootdir: /private/var/tb/5/scratch/a4c115648c1965ef/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.........sssss.s.......ss....sssssssss..sss............s................ [ 8%]114........................................................................ [ 16%]115........................................................................ [ 25%]116........................................................................ [ 33%]117...............s....s.ss...........................................s.... [ 41%]118........................................................................ [ 50%]119.............................s.EEEEEEEEEEEEEEEEEEE.EEEEE.E..E..sEEs.E.EE [ 58%]120EEEEEEEEEEEE.EEEE.EEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 66%]121EEEE.E.EE.EEEEEEEEE.EEEEEEEE.EEEEEEEEEEE.EE.EEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 75%]122E.EEEEEE..EEE.....EEEEE...EEEEEEEEEEEEEEEEEEEEEEEEEE..EEEEEEEEEEEEE.EEEE [ 83%]123EEE.....EEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE. [ 91%]124EEEEEEEEEEEEEEEE.EEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]125==================================== ERRORS ====================================126______________ ERROR at setup of test_anonymous_sees_public_only _______________127[gw15] 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_anonymous_sees_public_only>>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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')162dbname = 'visibility'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_project_store_sync_and_legacy_import __________200[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14201202self = <Coroutine test_project_store_sync_and_legacy_import>203204 def setup(self) -> None:205 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"206 if runner_fixture_id not in self.fixturenames:207 self.fixturenames.append(runner_fixture_id)208 # When loop factories are configured, resolve the loop factory209 # fixture early so that a factory variant change cascades cache210 # invalidation before any async fixture checks its cache.211 hook_caller = self.config.hook.pytest_asyncio_loop_factories212 if hook_caller.get_hookimpls():213 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)214> return super().setup()215 ^^^^^^^^^^^^^^^216217/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 218_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 219/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup220 return (yield)221 ^^^^^222nixbot/tests/conftest.py:33: in postgres_dsn223 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:224 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^225/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__226 return next(self.gen)227 ^^^^^^^^^^^^^^228_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 229230tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')231dbname = 'forge'232233 @contextlib.contextmanager234 def ephemeral_postgres(235 tmp_path_factory: pytest.TempPathFactory, dbname: str236 ) -> Iterator[str]:237 """Throwaway Postgres on a unix socket with migrations applied."""238 datadir = tmp_path_factory.mktemp("pgdata")239 sockdir = tmp_path_factory.mktemp("pgsock")240 subprocess.run( # noqa: S603241 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],242 check=True,243 capture_output=True,244 )245 proc = subprocess.Popen( # noqa: S603246 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],247 stdout=subprocess.DEVNULL,248 stderr=subprocess.DEVNULL,249 )250 try:251 deadline = time.monotonic() + 30252 while (253 subprocess.run( # noqa: S603254 ["pg_isready", "-h", str(sockdir), "-U", "test"],255 check=False,256 capture_output=True,257 ).returncode258 != 0259 ):260 # The socket appears before recovery finishes; createdb would261 # fail with "the database system is starting up".262 if time.monotonic() > deadline:263 msg = "postgres did not start"264> raise RuntimeError(msg)265E RuntimeError: postgres did not start266267nixbot/tests/support.py:319: RuntimeError268__________ ERROR at setup of test_unauthorized_user_sees_public_only ___________269[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14270271request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>272tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')273274 @pytest.fixture(scope="module")275 def postgres_dsn(276 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory277 ) -> Iterator[str]:278 if shutil.which("initdb") is None:279 pytest.skip("postgresql not available")280 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")281> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:282 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^283284nixbot/tests/conftest.py:33: 285_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 286/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__287 return next(self.gen)288 ^^^^^^^^^^^^^^289_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 290291tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')292dbname = 'visibility'293294 @contextlib.contextmanager295 def ephemeral_postgres(296 tmp_path_factory: pytest.TempPathFactory, dbname: str297 ) -> Iterator[str]:298 """Throwaway Postgres on a unix socket with migrations applied."""299 datadir = tmp_path_factory.mktemp("pgdata")300 sockdir = tmp_path_factory.mktemp("pgsock")301 subprocess.run( # noqa: S603302 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],303 check=True,304 capture_output=True,305 )306 proc = subprocess.Popen( # noqa: S603307 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],308 stdout=subprocess.DEVNULL,309 stderr=subprocess.DEVNULL,310 )311 try:312 deadline = time.monotonic() + 30313 while (314 subprocess.run( # noqa: S603315 ["pg_isready", "-h", str(sockdir), "-U", "test"],316 check=False,317 capture_output=True,318 ).returncode319 != 0320 ):321 # The socket appears before recovery finishes; createdb would322 # fail with "the database system is starting up".323 if time.monotonic() > deadline:324 msg = "postgres did not start"325> raise RuntimeError(msg)326E RuntimeError: postgres did not start327328nixbot/tests/support.py:319: RuntimeError329_____________ ERROR at setup of test_authorized_user_sees_private ______________330[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14331332request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>333tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')334335 @pytest.fixture(scope="module")336 def postgres_dsn(337 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory338 ) -> Iterator[str]:339 if shutil.which("initdb") is None:340 pytest.skip("postgresql not available")341 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")342> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:343 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^344345nixbot/tests/conftest.py:33: 346_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 347/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__348 return next(self.gen)349 ^^^^^^^^^^^^^^350_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 351352tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')353dbname = 'visibility'354355 @contextlib.contextmanager356 def ephemeral_postgres(357 tmp_path_factory: pytest.TempPathFactory, dbname: str358 ) -> Iterator[str]:359 """Throwaway Postgres on a unix socket with migrations applied."""360 datadir = tmp_path_factory.mktemp("pgdata")361 sockdir = tmp_path_factory.mktemp("pgsock")362 subprocess.run( # noqa: S603363 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],364 check=True,365 capture_output=True,366 )367 proc = subprocess.Popen( # noqa: S603368 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],369 stdout=subprocess.DEVNULL,370 stderr=subprocess.DEVNULL,371 )372 try:373 deadline = time.monotonic() + 30374 while (375 subprocess.run( # noqa: S603376 ["pg_isready", "-h", str(sockdir), "-U", "test"],377 check=False,378 capture_output=True,379 ).returncode380 != 0381 ):382 # The socket appears before recovery finishes; createdb would383 # fail with "the database system is starting up".384 if time.monotonic() > deadline:385 msg = "postgres did not start"386> raise RuntimeError(msg)387E RuntimeError: postgres did not start388389nixbot/tests/support.py:319: RuntimeError390______ ERROR at setup of test_legacy_import_runs_despite_pull_based_rows _______391[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14392393self = <Coroutine test_legacy_import_runs_despite_pull_based_rows>394395 def setup(self) -> None:396 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"397 if runner_fixture_id not in self.fixturenames:398 self.fixturenames.append(runner_fixture_id)399 # When loop factories are configured, resolve the loop factory400 # fixture early so that a factory variant change cascades cache401 # invalidation before any async fixture checks its cache.402 hook_caller = self.config.hook.pytest_asyncio_loop_factories403 if hook_caller.get_hookimpls():404 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)405> return super().setup()406 ^^^^^^^^^^^^^^^407408/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 409_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 410nixbot/tests/conftest.py:33: in postgres_dsn411 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:412 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^413/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__414 return next(self.gen)415 ^^^^^^^^^^^^^^416_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 417418tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')419dbname = 'forge'420421 @contextlib.contextmanager422 def ephemeral_postgres(423 tmp_path_factory: pytest.TempPathFactory, dbname: str424 ) -> Iterator[str]:425 """Throwaway Postgres on a unix socket with migrations applied."""426 datadir = tmp_path_factory.mktemp("pgdata")427 sockdir = tmp_path_factory.mktemp("pgsock")428 subprocess.run( # noqa: S603429 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],430 check=True,431 capture_output=True,432 )433 proc = subprocess.Popen( # noqa: S603434 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],435 stdout=subprocess.DEVNULL,436 stderr=subprocess.DEVNULL,437 )438 try:439 deadline = time.monotonic() + 30440 while (441 subprocess.run( # noqa: S603442 ["pg_isready", "-h", str(sockdir), "-U", "test"],443 check=False,444 capture_output=True,445 ).returncode446 != 0447 ):448 # The socket appears before recovery finishes; createdb would449 # fail with "the database system is starting up".450 if time.monotonic() > deadline:451 msg = "postgres did not start"452> raise RuntimeError(msg)453E RuntimeError: postgres did not start454455nixbot/tests/support.py:319: RuntimeError456_________________ ERROR at setup of test_admin_sees_everything _________________457[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14458459request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>460tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')461462 @pytest.fixture(scope="module")463 def postgres_dsn(464 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory465 ) -> Iterator[str]:466 if shutil.which("initdb") is None:467 pytest.skip("postgresql not available")468 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")469> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:470 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^471472nixbot/tests/conftest.py:33: 473_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 474/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__475 return next(self.gen)476 ^^^^^^^^^^^^^^477_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 478479tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')480dbname = 'visibility'481482 @contextlib.contextmanager483 def ephemeral_postgres(484 tmp_path_factory: pytest.TempPathFactory, dbname: str485 ) -> Iterator[str]:486 """Throwaway Postgres on a unix socket with migrations applied."""487 datadir = tmp_path_factory.mktemp("pgdata")488 sockdir = tmp_path_factory.mktemp("pgsock")489 subprocess.run( # noqa: S603490 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],491 check=True,492 capture_output=True,493 )494 proc = subprocess.Popen( # noqa: S603495 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],496 stdout=subprocess.DEVNULL,497 stderr=subprocess.DEVNULL,498 )499 try:500 deadline = time.monotonic() + 30501 while (502 subprocess.run( # noqa: S603503 ["pg_isready", "-h", str(sockdir), "-U", "test"],504 check=False,505 capture_output=True,506 ).returncode507 != 0508 ):509 # The socket appears before recovery finishes; createdb would510 # fail with "the database system is starting up".511 if time.monotonic() > deadline:512 msg = "postgres did not start"513> raise RuntimeError(msg)514E RuntimeError: postgres did not start515516nixbot/tests/support.py:319: RuntimeError517_______ ERROR at setup of test_admin_sees_disabled_repos_without_search ________518[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14519520request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>521tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')522523 @pytest.fixture(scope="module")524 def postgres_dsn(525 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory526 ) -> Iterator[str]:527 if shutil.which("initdb") is None:528 pytest.skip("postgresql not available")529 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")530> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:531 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^532533nixbot/tests/conftest.py:33: 534_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 535/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__536 return next(self.gen)537 ^^^^^^^^^^^^^^538_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 539540tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')541dbname = 'visibility'542543 @contextlib.contextmanager544 def ephemeral_postgres(545 tmp_path_factory: pytest.TempPathFactory, dbname: str546 ) -> Iterator[str]:547 """Throwaway Postgres on a unix socket with migrations applied."""548 datadir = tmp_path_factory.mktemp("pgdata")549 sockdir = tmp_path_factory.mktemp("pgsock")550 subprocess.run( # noqa: S603551 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],552 check=True,553 capture_output=True,554 )555 proc = subprocess.Popen( # noqa: S603556 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],557 stdout=subprocess.DEVNULL,558 stderr=subprocess.DEVNULL,559 )560 try:561 deadline = time.monotonic() + 30562 while (563 subprocess.run( # noqa: S603564 ["pg_isready", "-h", str(sockdir), "-U", "test"],565 check=False,566 capture_output=True,567 ).returncode568 != 0569 ):570 # The socket appears before recovery finishes; createdb would571 # fail with "the database system is starting up".572 if time.monotonic() > deadline:573 msg = "postgres did not start"574> raise RuntimeError(msg)575E RuntimeError: postgres did not start576577nixbot/tests/support.py:319: RuntimeError578_________ ERROR at setup of test_legacy_import_scopes_topics_per_forge _________579[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14580581self = <Coroutine test_legacy_import_scopes_topics_per_forge>582583 def setup(self) -> None:584 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"585 if runner_fixture_id not in self.fixturenames:586 self.fixturenames.append(runner_fixture_id)587 # When loop factories are configured, resolve the loop factory588 # fixture early so that a factory variant change cascades cache589 # invalidation before any async fixture checks its cache.590 hook_caller = self.config.hook.pytest_asyncio_loop_factories591 if hook_caller.get_hookimpls():592 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)593> return super().setup()594 ^^^^^^^^^^^^^^^595596/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 597_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 598nixbot/tests/conftest.py:33: in postgres_dsn599 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:600 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^601/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__602 return next(self.gen)603 ^^^^^^^^^^^^^^604_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 605606tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')607dbname = 'forge'608609 @contextlib.contextmanager610 def ephemeral_postgres(611 tmp_path_factory: pytest.TempPathFactory, dbname: str612 ) -> Iterator[str]:613 """Throwaway Postgres on a unix socket with migrations applied."""614 datadir = tmp_path_factory.mktemp("pgdata")615 sockdir = tmp_path_factory.mktemp("pgsock")616 subprocess.run( # noqa: S603617 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],618 check=True,619 capture_output=True,620 )621 proc = subprocess.Popen( # noqa: S603622 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],623 stdout=subprocess.DEVNULL,624 stderr=subprocess.DEVNULL,625 )626 try:627 deadline = time.monotonic() + 30628 while (629 subprocess.run( # noqa: S603630 ["pg_isready", "-h", str(sockdir), "-U", "test"],631 check=False,632 capture_output=True,633 ).returncode634 != 0635 ):636 # The socket appears before recovery finishes; createdb would637 # fail with "the database system is starting up".638 if time.monotonic() > deadline:639 msg = "postgres did not start"640> raise RuntimeError(msg)641E RuntimeError: postgres did not start642643nixbot/tests/support.py:319: RuntimeError644_________ ERROR at setup of test_non_admin_does_not_see_disabled_repos _________645[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14646647request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>648tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')649650 @pytest.fixture(scope="module")651 def postgres_dsn(652 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory653 ) -> Iterator[str]:654 if shutil.which("initdb") is None:655 pytest.skip("postgresql not available")656 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")657> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:658 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^659660nixbot/tests/conftest.py:33: 661_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 662/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__663 return next(self.gen)664 ^^^^^^^^^^^^^^665_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 666667tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')668dbname = 'visibility'669670 @contextlib.contextmanager671 def ephemeral_postgres(672 tmp_path_factory: pytest.TempPathFactory, dbname: str673 ) -> Iterator[str]:674 """Throwaway Postgres on a unix socket with migrations applied."""675 datadir = tmp_path_factory.mktemp("pgdata")676 sockdir = tmp_path_factory.mktemp("pgsock")677 subprocess.run( # noqa: S603678 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],679 check=True,680 capture_output=True,681 )682 proc = subprocess.Popen( # noqa: S603683 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],684 stdout=subprocess.DEVNULL,685 stderr=subprocess.DEVNULL,686 )687 try:688 deadline = time.monotonic() + 30689 while (690 subprocess.run( # noqa: S603691 ["pg_isready", "-h", str(sockdir), "-U", "test"],692 check=False,693 capture_output=True,694 ).returncode695 != 0696 ):697 # The socket appears before recovery finishes; createdb would698 # fail with "the database system is starting up".699 if time.monotonic() > deadline:700 msg = "postgres did not start"701> raise RuntimeError(msg)702E RuntimeError: postgres did not start703704nixbot/tests/support.py:319: RuntimeError705________________ ERROR at setup of test_api_token_sees_private _________________706[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14707708request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>709tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')710711 @pytest.fixture(scope="module")712 def postgres_dsn(713 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory714 ) -> Iterator[str]:715 if shutil.which("initdb") is None:716 pytest.skip("postgresql not available")717 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")718> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:719 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^720721nixbot/tests/conftest.py:33: 722_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 723/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__724 return next(self.gen)725 ^^^^^^^^^^^^^^726_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 727728tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')729dbname = 'visibility'730731 @contextlib.contextmanager732 def ephemeral_postgres(733 tmp_path_factory: pytest.TempPathFactory, dbname: str734 ) -> Iterator[str]:735 """Throwaway Postgres on a unix socket with migrations applied."""736 datadir = tmp_path_factory.mktemp("pgdata")737 sockdir = tmp_path_factory.mktemp("pgsock")738 subprocess.run( # noqa: S603739 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],740 check=True,741 capture_output=True,742 )743 proc = subprocess.Popen( # noqa: S603744 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],745 stdout=subprocess.DEVNULL,746 stderr=subprocess.DEVNULL,747 )748 try:749 deadline = time.monotonic() + 30750 while (751 subprocess.run( # noqa: S603752 ["pg_isready", "-h", str(sockdir), "-U", "test"],753 check=False,754 capture_output=True,755 ).returncode756 != 0757 ):758 # The socket appears before recovery finishes; createdb would759 # fail with "the database system is starting up".760 if time.monotonic() > deadline:761 msg = "postgres did not start"762> raise RuntimeError(msg)763E RuntimeError: postgres did not start764765nixbot/tests/support.py:319: RuntimeError766____________ ERROR at setup of test_prune_missing_disabled_projects ____________767[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14768769self = <Coroutine test_prune_missing_disabled_projects>770771 def setup(self) -> None:772 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"773 if runner_fixture_id not in self.fixturenames:774 self.fixturenames.append(runner_fixture_id)775 # When loop factories are configured, resolve the loop factory776 # fixture early so that a factory variant change cascades cache777 # invalidation before any async fixture checks its cache.778 hook_caller = self.config.hook.pytest_asyncio_loop_factories779 if hook_caller.get_hookimpls():780 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)781> return super().setup()782 ^^^^^^^^^^^^^^^783784/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 785_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 786nixbot/tests/conftest.py:33: in postgres_dsn787 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:788 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^789/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__790 return next(self.gen)791 ^^^^^^^^^^^^^^792_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 793794tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')795dbname = 'forge'796797 @contextlib.contextmanager798 def ephemeral_postgres(799 tmp_path_factory: pytest.TempPathFactory, dbname: str800 ) -> Iterator[str]:801 """Throwaway Postgres on a unix socket with migrations applied."""802 datadir = tmp_path_factory.mktemp("pgdata")803 sockdir = tmp_path_factory.mktemp("pgsock")804 subprocess.run( # noqa: S603805 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],806 check=True,807 capture_output=True,808 )809 proc = subprocess.Popen( # noqa: S603810 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],811 stdout=subprocess.DEVNULL,812 stderr=subprocess.DEVNULL,813 )814 try:815 deadline = time.monotonic() + 30816 while (817 subprocess.run( # noqa: S603818 ["pg_isready", "-h", str(sockdir), "-U", "test"],819 check=False,820 capture_output=True,821 ).returncode822 != 0823 ):824 # The socket appears before recovery finishes; createdb would825 # fail with "the database system is starting up".826 if time.monotonic() > deadline:827 msg = "postgres did not start"828> raise RuntimeError(msg)829E RuntimeError: postgres did not start830831nixbot/tests/support.py:319: RuntimeError832_____________ ERROR at setup of test_admin_api_token_sees_private ______________833[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14834835request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>836tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')837838 @pytest.fixture(scope="module")839 def postgres_dsn(840 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory841 ) -> Iterator[str]:842 if shutil.which("initdb") is None:843 pytest.skip("postgresql not available")844 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")845> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:846 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^847848nixbot/tests/conftest.py:33: 849_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 850/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__851 return next(self.gen)852 ^^^^^^^^^^^^^^853_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 854855tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')856dbname = 'visibility'857858 @contextlib.contextmanager859 def ephemeral_postgres(860 tmp_path_factory: pytest.TempPathFactory, dbname: str861 ) -> Iterator[str]:862 """Throwaway Postgres on a unix socket with migrations applied."""863 datadir = tmp_path_factory.mktemp("pgdata")864 sockdir = tmp_path_factory.mktemp("pgsock")865 subprocess.run( # noqa: S603866 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],867 check=True,868 capture_output=True,869 )870 proc = subprocess.Popen( # noqa: S603871 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],872 stdout=subprocess.DEVNULL,873 stderr=subprocess.DEVNULL,874 )875 try:876 deadline = time.monotonic() + 30877 while (878 subprocess.run( # noqa: S603879 ["pg_isready", "-h", str(sockdir), "-U", "test"],880 check=False,881 capture_output=True,882 ).returncode883 != 0884 ):885 # The socket appears before recovery finishes; createdb would886 # fail with "the database system is starting up".887 if time.monotonic() > deadline:888 msg = "postgres did not start"889> raise RuntimeError(msg)890E RuntimeError: postgres did not start891892nixbot/tests/support.py:319: RuntimeError893________ ERROR at setup of test_project_store_sync_skips_unchanged_rows ________894[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14895896self = <Coroutine test_project_store_sync_skips_unchanged_rows>897898 def setup(self) -> None:899 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"900 if runner_fixture_id not in self.fixturenames:901 self.fixturenames.append(runner_fixture_id)902 # When loop factories are configured, resolve the loop factory903 # fixture early so that a factory variant change cascades cache904 # invalidation before any async fixture checks its cache.905 hook_caller = self.config.hook.pytest_asyncio_loop_factories906 if hook_caller.get_hookimpls():907 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)908> return super().setup()909 ^^^^^^^^^^^^^^^910911/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 912_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 913nixbot/tests/conftest.py:33: in postgres_dsn914 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:915 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^916/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__917 return next(self.gen)918 ^^^^^^^^^^^^^^919_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 920921tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')922dbname = 'forge'923924 @contextlib.contextmanager925 def ephemeral_postgres(926 tmp_path_factory: pytest.TempPathFactory, dbname: str927 ) -> Iterator[str]:928 """Throwaway Postgres on a unix socket with migrations applied."""929 datadir = tmp_path_factory.mktemp("pgdata")930 sockdir = tmp_path_factory.mktemp("pgsock")931 subprocess.run( # noqa: S603932 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],933 check=True,934 capture_output=True,935 )936 proc = subprocess.Popen( # noqa: S603937 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],938 stdout=subprocess.DEVNULL,939 stderr=subprocess.DEVNULL,940 )941 try:942 deadline = time.monotonic() + 30943 while (944 subprocess.run( # noqa: S603945 ["pg_isready", "-h", str(sockdir), "-U", "test"],946 check=False,947 capture_output=True,948 ).returncode949 != 0950 ):951 # The socket appears before recovery finishes; createdb would952 # fail with "the database system is starting up".953 if time.monotonic() > deadline:954 msg = "postgres did not start"955> raise RuntimeError(msg)956E RuntimeError: postgres did not start957958nixbot/tests/support.py:319: RuntimeError959_______ ERROR at setup of test_forge_repo_admins_can_toggle_their_repos ________960[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14961962request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>963tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')964965 @pytest.fixture(scope="module")966 def postgres_dsn(967 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory968 ) -> Iterator[str]:969 if shutil.which("initdb") is None:970 pytest.skip("postgresql not available")971 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")972> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:973 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^974975nixbot/tests/conftest.py:33: 976_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 977/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__978 return next(self.gen)979 ^^^^^^^^^^^^^^980_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 981982tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')983dbname = 'visibility'984985 @contextlib.contextmanager986 def ephemeral_postgres(987 tmp_path_factory: pytest.TempPathFactory, dbname: str988 ) -> Iterator[str]:989 """Throwaway Postgres on a unix socket with migrations applied."""990 datadir = tmp_path_factory.mktemp("pgdata")991 sockdir = tmp_path_factory.mktemp("pgsock")992 subprocess.run( # noqa: S603993 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],994 check=True,995 capture_output=True,996 )997 proc = subprocess.Popen( # noqa: S603998 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],999 stdout=subprocess.DEVNULL,1000 stderr=subprocess.DEVNULL,1001 )1002 try:1003 deadline = time.monotonic() + 301004 while (1005 subprocess.run( # noqa: S6031006 ["pg_isready", "-h", str(sockdir), "-U", "test"],1007 check=False,1008 capture_output=True,1009 ).returncode1010 != 01011 ):1012 # The socket appears before recovery finishes; createdb would1013 # fail with "the database system is starting up".1014 if time.monotonic() > deadline:1015 msg = "postgres did not start"1016> raise RuntimeError(msg)1017E RuntimeError: postgres did not start10181019nixbot/tests/support.py:319: RuntimeError1020______ ERROR at setup of test_forge_repo_writers_can_control_their_repos _______1021[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410221023request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1024tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')10251026 @pytest.fixture(scope="module")1027 def postgres_dsn(1028 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1029 ) -> Iterator[str]:1030 if shutil.which("initdb") is None:1031 pytest.skip("postgresql not available")1032 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1033> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1034 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10351036nixbot/tests/conftest.py:33: 1037_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1038/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1039 return next(self.gen)1040 ^^^^^^^^^^^^^^1041_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10421043tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1044dbname = 'visibility'10451046 @contextlib.contextmanager1047 def ephemeral_postgres(1048 tmp_path_factory: pytest.TempPathFactory, dbname: str1049 ) -> Iterator[str]:1050 """Throwaway Postgres on a unix socket with migrations applied."""1051 datadir = tmp_path_factory.mktemp("pgdata")1052 sockdir = tmp_path_factory.mktemp("pgsock")1053 subprocess.run( # noqa: S6031054 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1055 check=True,1056 capture_output=True,1057 )1058 proc = subprocess.Popen( # noqa: S6031059 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1060 stdout=subprocess.DEVNULL,1061 stderr=subprocess.DEVNULL,1062 )1063 try:1064 deadline = time.monotonic() + 301065 while (1066 subprocess.run( # noqa: S6031067 ["pg_isready", "-h", str(sockdir), "-U", "test"],1068 check=False,1069 capture_output=True,1070 ).returncode1071 != 01072 ):1073 # The socket appears before recovery finishes; createdb would1074 # fail with "the database system is starting up".1075 if time.monotonic() > deadline:1076 msg = "postgres did not start"1077> raise RuntimeError(msg)1078E RuntimeError: postgres did not start10791080nixbot/tests/support.py:319: RuntimeError1081________________ ERROR at setup of test_gitea_hook_registration ________________1082[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410831084self = <Coroutine test_gitea_hook_registration>10851086 def setup(self) -> None:1087 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1088 if runner_fixture_id not in self.fixturenames:1089 self.fixturenames.append(runner_fixture_id)1090 # When loop factories are configured, resolve the loop factory1091 # fixture early so that a factory variant change cascades cache1092 # invalidation before any async fixture checks its cache.1093 hook_caller = self.config.hook.pytest_asyncio_loop_factories1094 if hook_caller.get_hookimpls():1095 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1096> return super().setup()1097 ^^^^^^^^^^^^^^^10981099/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1100_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1101nixbot/tests/conftest.py:33: in postgres_dsn1102 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1103 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1104/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1105 return next(self.gen)1106 ^^^^^^^^^^^^^^1107_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11081109tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1110dbname = 'forge'11111112 @contextlib.contextmanager1113 def ephemeral_postgres(1114 tmp_path_factory: pytest.TempPathFactory, dbname: str1115 ) -> Iterator[str]:1116 """Throwaway Postgres on a unix socket with migrations applied."""1117 datadir = tmp_path_factory.mktemp("pgdata")1118 sockdir = tmp_path_factory.mktemp("pgsock")1119 subprocess.run( # noqa: S6031120 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1121 check=True,1122 capture_output=True,1123 )1124 proc = subprocess.Popen( # noqa: S6031125 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1126 stdout=subprocess.DEVNULL,1127 stderr=subprocess.DEVNULL,1128 )1129 try:1130 deadline = time.monotonic() + 301131 while (1132 subprocess.run( # noqa: S6031133 ["pg_isready", "-h", str(sockdir), "-U", "test"],1134 check=False,1135 capture_output=True,1136 ).returncode1137 != 01138 ):1139 # The socket appears before recovery finishes; createdb would1140 # fail with "the database system is starting up".1141 if time.monotonic() > deadline:1142 msg = "postgres did not start"1143> raise RuntimeError(msg)1144E RuntimeError: postgres did not start11451146nixbot/tests/support.py:319: RuntimeError1147______________ ERROR at setup of test_fetch_errors_are_not_cached ______________1148[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411491150request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1151tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')11521153 @pytest.fixture(scope="module")1154 def postgres_dsn(1155 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1156 ) -> Iterator[str]:1157 if shutil.which("initdb") is None:1158 pytest.skip("postgresql not available")1159 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1160> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1161 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^11621163nixbot/tests/conftest.py:33: 1164_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1165/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1166 return next(self.gen)1167 ^^^^^^^^^^^^^^1168_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11691170tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1171dbname = 'visibility'11721173 @contextlib.contextmanager1174 def ephemeral_postgres(1175 tmp_path_factory: pytest.TempPathFactory, dbname: str1176 ) -> Iterator[str]:1177 """Throwaway Postgres on a unix socket with migrations applied."""1178 datadir = tmp_path_factory.mktemp("pgdata")1179 sockdir = tmp_path_factory.mktemp("pgsock")1180 subprocess.run( # noqa: S6031181 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1182 check=True,1183 capture_output=True,1184 )1185 proc = subprocess.Popen( # noqa: S6031186 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1187 stdout=subprocess.DEVNULL,1188 stderr=subprocess.DEVNULL,1189 )1190 try:1191 deadline = time.monotonic() + 301192 while (1193 subprocess.run( # noqa: S6031194 ["pg_isready", "-h", str(sockdir), "-U", "test"],1195 check=False,1196 capture_output=True,1197 ).returncode1198 != 01199 ):1200 # The socket appears before recovery finishes; createdb would1201 # fail with "the database system is starting up".1202 if time.monotonic() > deadline:1203 msg = "postgres did not start"1204> raise RuntimeError(msg)1205E RuntimeError: postgres did not start12061207nixbot/tests/support.py:319: RuntimeError1208_________ ERROR at setup of test_gitlab_heads_carry_target_branch_base _________1209[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412101211self = <Coroutine test_gitlab_heads_carry_target_branch_base>12121213 def setup(self) -> None:1214 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1215 if runner_fixture_id not in self.fixturenames:1216 self.fixturenames.append(runner_fixture_id)1217 # When loop factories are configured, resolve the loop factory1218 # fixture early so that a factory variant change cascades cache1219 # invalidation before any async fixture checks its cache.1220 hook_caller = self.config.hook.pytest_asyncio_loop_factories1221 if hook_caller.get_hookimpls():1222 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1223> return super().setup()1224 ^^^^^^^^^^^^^^^12251226/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1227_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1228nixbot/tests/conftest.py:33: in postgres_dsn1229 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1230 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1231/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1232 return next(self.gen)1233 ^^^^^^^^^^^^^^1234_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12351236tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1237dbname = 'forge'12381239 @contextlib.contextmanager1240 def ephemeral_postgres(1241 tmp_path_factory: pytest.TempPathFactory, dbname: str1242 ) -> Iterator[str]:1243 """Throwaway Postgres on a unix socket with migrations applied."""1244 datadir = tmp_path_factory.mktemp("pgdata")1245 sockdir = tmp_path_factory.mktemp("pgsock")1246 subprocess.run( # noqa: S6031247 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1248 check=True,1249 capture_output=True,1250 )1251 proc = subprocess.Popen( # noqa: S6031252 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1253 stdout=subprocess.DEVNULL,1254 stderr=subprocess.DEVNULL,1255 )1256 try:1257 deadline = time.monotonic() + 301258 while (1259 subprocess.run( # noqa: S6031260 ["pg_isready", "-h", str(sockdir), "-U", "test"],1261 check=False,1262 capture_output=True,1263 ).returncode1264 != 01265 ):1266 # The socket appears before recovery finishes; createdb would1267 # fail with "the database system is starting up".1268 if time.monotonic() > deadline:1269 msg = "postgres did not start"1270> raise RuntimeError(msg)1271E RuntimeError: postgres did not start12721273nixbot/tests/support.py:319: RuntimeError1274___________________ ERROR at setup of test_access_cache_used ___________________1275[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412761277request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1278tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')12791280 @pytest.fixture(scope="module")1281 def postgres_dsn(1282 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1283 ) -> Iterator[str]:1284 if shutil.which("initdb") is None:1285 pytest.skip("postgresql not available")1286 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1287> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1288 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12891290nixbot/tests/conftest.py:33: 1291_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1292/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1293 return next(self.gen)1294 ^^^^^^^^^^^^^^1295_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12961297tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1298dbname = 'visibility'12991300 @contextlib.contextmanager1301 def ephemeral_postgres(1302 tmp_path_factory: pytest.TempPathFactory, dbname: str1303 ) -> Iterator[str]:1304 """Throwaway Postgres on a unix socket with migrations applied."""1305 datadir = tmp_path_factory.mktemp("pgdata")1306 sockdir = tmp_path_factory.mktemp("pgsock")1307 subprocess.run( # noqa: S6031308 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1309 check=True,1310 capture_output=True,1311 )1312 proc = subprocess.Popen( # noqa: S6031313 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1314 stdout=subprocess.DEVNULL,1315 stderr=subprocess.DEVNULL,1316 )1317 try:1318 deadline = time.monotonic() + 301319 while (1320 subprocess.run( # noqa: S6031321 ["pg_isready", "-h", str(sockdir), "-U", "test"],1322 check=False,1323 capture_output=True,1324 ).returncode1325 != 01326 ):1327 # The socket appears before recovery finishes; createdb would1328 # fail with "the database system is starting up".1329 if time.monotonic() > deadline:1330 msg = "postgres did not start"1331> raise RuntimeError(msg)1332E RuntimeError: postgres did not start13331334nixbot/tests/support.py:319: RuntimeError1335_______ ERROR at setup of test_metrics_unauthenticated_no_private_names ________1336[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413371338request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')13401341 @pytest.fixture(scope="module")1342 def postgres_dsn(1343 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1344 ) -> Iterator[str]:1345 if shutil.which("initdb") is None:1346 pytest.skip("postgresql not available")1347 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1348> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1349 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^13501351nixbot/tests/conftest.py:33: 1352_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1353/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1354 return next(self.gen)1355 ^^^^^^^^^^^^^^1356_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13571358tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1359dbname = 'visibility'13601361 @contextlib.contextmanager1362 def ephemeral_postgres(1363 tmp_path_factory: pytest.TempPathFactory, dbname: str1364 ) -> Iterator[str]:1365 """Throwaway Postgres on a unix socket with migrations applied."""1366 datadir = tmp_path_factory.mktemp("pgdata")1367 sockdir = tmp_path_factory.mktemp("pgsock")1368 subprocess.run( # noqa: S6031369 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1370 check=True,1371 capture_output=True,1372 )1373 proc = subprocess.Popen( # noqa: S6031374 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1375 stdout=subprocess.DEVNULL,1376 stderr=subprocess.DEVNULL,1377 )1378 try:1379 deadline = time.monotonic() + 301380 while (1381 subprocess.run( # noqa: S6031382 ["pg_isready", "-h", str(sockdir), "-U", "test"],1383 check=False,1384 capture_output=True,1385 ).returncode1386 != 01387 ):1388 # The socket appears before recovery finishes; createdb would1389 # fail with "the database system is starting up".1390 if time.monotonic() > deadline:1391 msg = "postgres did not start"1392> raise RuntimeError(msg)1393E RuntimeError: postgres did not start13941395nixbot/tests/support.py:319: RuntimeError1396_______ ERROR at setup of test_gitea_heads_encode_slashed_default_branch _______1397[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413981399self = <Coroutine test_gitea_heads_encode_slashed_default_branch>14001401 def setup(self) -> None:1402 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1403 if runner_fixture_id not in self.fixturenames:1404 self.fixturenames.append(runner_fixture_id)1405 # When loop factories are configured, resolve the loop factory1406 # fixture early so that a factory variant change cascades cache1407 # invalidation before any async fixture checks its cache.1408 hook_caller = self.config.hook.pytest_asyncio_loop_factories1409 if hook_caller.get_hookimpls():1410 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1411> return super().setup()1412 ^^^^^^^^^^^^^^^14131414/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1415_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1416nixbot/tests/conftest.py:33: in postgres_dsn1417 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1418 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1419/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1420 return next(self.gen)1421 ^^^^^^^^^^^^^^1422_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14231424tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1425dbname = 'forge'14261427 @contextlib.contextmanager1428 def ephemeral_postgres(1429 tmp_path_factory: pytest.TempPathFactory, dbname: str1430 ) -> Iterator[str]:1431 """Throwaway Postgres on a unix socket with migrations applied."""1432 datadir = tmp_path_factory.mktemp("pgdata")1433 sockdir = tmp_path_factory.mktemp("pgsock")1434 subprocess.run( # noqa: S6031435 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1436 check=True,1437 capture_output=True,1438 )1439 proc = subprocess.Popen( # noqa: S6031440 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1441 stdout=subprocess.DEVNULL,1442 stderr=subprocess.DEVNULL,1443 )1444 try:1445 deadline = time.monotonic() + 301446 while (1447 subprocess.run( # noqa: S6031448 ["pg_isready", "-h", str(sockdir), "-U", "test"],1449 check=False,1450 capture_output=True,1451 ).returncode1452 != 01453 ):1454 # The socket appears before recovery finishes; createdb would1455 # fail with "the database system is starting up".1456 if time.monotonic() > deadline:1457 msg = "postgres did not start"1458> raise RuntimeError(msg)1459E RuntimeError: postgres did not start14601461nixbot/tests/support.py:319: RuntimeError1462____________ ERROR at setup of test_configured_viewers_see_private _____________1463[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414641465request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1466tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')14671468 @pytest.fixture(scope="module")1469 def postgres_dsn(1470 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1471 ) -> Iterator[str]:1472 if shutil.which("initdb") is None:1473 pytest.skip("postgresql not available")1474 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1475> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1476 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^14771478nixbot/tests/conftest.py:33: 1479_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1480/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1481 return next(self.gen)1482 ^^^^^^^^^^^^^^1483_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14841485tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1486dbname = 'visibility'14871488 @contextlib.contextmanager1489 def ephemeral_postgres(1490 tmp_path_factory: pytest.TempPathFactory, dbname: str1491 ) -> Iterator[str]:1492 """Throwaway Postgres on a unix socket with migrations applied."""1493 datadir = tmp_path_factory.mktemp("pgdata")1494 sockdir = tmp_path_factory.mktemp("pgsock")1495 subprocess.run( # noqa: S6031496 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1497 check=True,1498 capture_output=True,1499 )1500 proc = subprocess.Popen( # noqa: S6031501 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1502 stdout=subprocess.DEVNULL,1503 stderr=subprocess.DEVNULL,1504 )1505 try:1506 deadline = time.monotonic() + 301507 while (1508 subprocess.run( # noqa: S6031509 ["pg_isready", "-h", str(sockdir), "-U", "test"],1510 check=False,1511 capture_output=True,1512 ).returncode1513 != 01514 ):1515 # The socket appears before recovery finishes; createdb would1516 # fail with "the database system is starting up".1517 if time.monotonic() > deadline:1518 msg = "postgres did not start"1519> raise RuntimeError(msg)1520E RuntimeError: postgres did not start15211522nixbot/tests/support.py:319: RuntimeError1523________________ ERROR at setup of test_reconcile_unbuilt_heads ________________1524[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415251526self = <Coroutine test_reconcile_unbuilt_heads>15271528 def setup(self) -> None:1529 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1530 if runner_fixture_id not in self.fixturenames:1531 self.fixturenames.append(runner_fixture_id)1532 # When loop factories are configured, resolve the loop factory1533 # fixture early so that a factory variant change cascades cache1534 # invalidation before any async fixture checks its cache.1535 hook_caller = self.config.hook.pytest_asyncio_loop_factories1536 if hook_caller.get_hookimpls():1537 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1538> return super().setup()1539 ^^^^^^^^^^^^^^^15401541/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1542_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1543nixbot/tests/conftest.py:33: in postgres_dsn1544 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1545 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1546/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1547 return next(self.gen)1548 ^^^^^^^^^^^^^^1549_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15501551tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1552dbname = 'forge'15531554 @contextlib.contextmanager1555 def ephemeral_postgres(1556 tmp_path_factory: pytest.TempPathFactory, dbname: str1557 ) -> Iterator[str]:1558 """Throwaway Postgres on a unix socket with migrations applied."""1559 datadir = tmp_path_factory.mktemp("pgdata")1560 sockdir = tmp_path_factory.mktemp("pgsock")1561 subprocess.run( # noqa: S6031562 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1563 check=True,1564 capture_output=True,1565 )1566 proc = subprocess.Popen( # noqa: S6031567 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1568 stdout=subprocess.DEVNULL,1569 stderr=subprocess.DEVNULL,1570 )1571 try:1572 deadline = time.monotonic() + 301573 while (1574 subprocess.run( # noqa: S6031575 ["pg_isready", "-h", str(sockdir), "-U", "test"],1576 check=False,1577 capture_output=True,1578 ).returncode1579 != 01580 ):1581 # The socket appears before recovery finishes; createdb would1582 # fail with "the database system is starting up".1583 if time.monotonic() > deadline:1584 msg = "postgres did not start"1585> raise RuntimeError(msg)1586E RuntimeError: postgres did not start15871588nixbot/tests/support.py:319: RuntimeError1589____________ ERROR at setup of test_api_token_inherits_login_groups ____________1590[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415911592request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1593tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')15941595 @pytest.fixture(scope="module")1596 def postgres_dsn(1597 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1598 ) -> Iterator[str]:1599 if shutil.which("initdb") is None:1600 pytest.skip("postgresql not available")1601 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1602> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1603 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16041605nixbot/tests/conftest.py:33: 1606_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1607/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1608 return next(self.gen)1609 ^^^^^^^^^^^^^^1610_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16111612tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1613dbname = 'visibility'16141615 @contextlib.contextmanager1616 def ephemeral_postgres(1617 tmp_path_factory: pytest.TempPathFactory, dbname: str1618 ) -> Iterator[str]:1619 """Throwaway Postgres on a unix socket with migrations applied."""1620 datadir = tmp_path_factory.mktemp("pgdata")1621 sockdir = tmp_path_factory.mktemp("pgsock")1622 subprocess.run( # noqa: S6031623 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1624 check=True,1625 capture_output=True,1626 )1627 proc = subprocess.Popen( # noqa: S6031628 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1629 stdout=subprocess.DEVNULL,1630 stderr=subprocess.DEVNULL,1631 )1632 try:1633 deadline = time.monotonic() + 301634 while (1635 subprocess.run( # noqa: S6031636 ["pg_isready", "-h", str(sockdir), "-U", "test"],1637 check=False,1638 capture_output=True,1639 ).returncode1640 != 01641 ):1642 # The socket appears before recovery finishes; createdb would1643 # fail with "the database system is starting up".1644 if time.monotonic() > deadline:1645 msg = "postgres did not start"1646> raise RuntimeError(msg)1647E RuntimeError: postgres did not start16481649nixbot/tests/support.py:319: RuntimeError1650____________ ERROR at setup of test_logout_invalidates_access_cache ____________1651[gw15] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416521653request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1654tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')16551656 @pytest.fixture(scope="module")1657 def postgres_dsn(1658 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1659 ) -> Iterator[str]:1660 if shutil.which("initdb") is None:1661 pytest.skip("postgresql not available")1662 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1663> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1664 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16651666nixbot/tests/conftest.py:33: 1667_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1668/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1669 return next(self.gen)1670 ^^^^^^^^^^^^^^1671_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16721673tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...tch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw15'), _retention_count=3, _retention_policy='all')1674dbname = 'visibility'16751676 @contextlib.contextmanager1677 def ephemeral_postgres(1678 tmp_path_factory: pytest.TempPathFactory, dbname: str1679 ) -> Iterator[str]:1680 """Throwaway Postgres on a unix socket with migrations applied."""1681 datadir = tmp_path_factory.mktemp("pgdata")1682 sockdir = tmp_path_factory.mktemp("pgsock")1683 subprocess.run( # noqa: S6031684 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1685 check=True,1686 capture_output=True,1687 )1688 proc = subprocess.Popen( # noqa: S6031689 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1690 stdout=subprocess.DEVNULL,1691 stderr=subprocess.DEVNULL,1692 )1693 try:1694 deadline = time.monotonic() + 301695 while (1696 subprocess.run( # noqa: S6031697 ["pg_isready", "-h", str(sockdir), "-U", "test"],1698 check=False,1699 capture_output=True,1700 ).returncode1701 != 01702 ):1703 # The socket appears before recovery finishes; createdb would1704 # fail with "the database system is starting up".1705 if time.monotonic() > deadline:1706 msg = "postgres did not start"1707> raise RuntimeError(msg)1708E RuntimeError: postgres did not start17091710nixbot/tests/support.py:319: RuntimeError1711___________ ERROR at setup of test_gitea_watermark_stops_pagination ____________1712[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417131714self = <Coroutine test_gitea_watermark_stops_pagination>17151716 def setup(self) -> None:1717 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1718 if runner_fixture_id not in self.fixturenames:1719 self.fixturenames.append(runner_fixture_id)1720 # When loop factories are configured, resolve the loop factory1721 # fixture early so that a factory variant change cascades cache1722 # invalidation before any async fixture checks its cache.1723 hook_caller = self.config.hook.pytest_asyncio_loop_factories1724 if hook_caller.get_hookimpls():1725 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1726> return super().setup()1727 ^^^^^^^^^^^^^^^17281729/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1730_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1731nixbot/tests/conftest.py:33: in postgres_dsn1732 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1733 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1734/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1735 return next(self.gen)1736 ^^^^^^^^^^^^^^1737_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17381739tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1740dbname = 'forge'17411742 @contextlib.contextmanager1743 def ephemeral_postgres(1744 tmp_path_factory: pytest.TempPathFactory, dbname: str1745 ) -> Iterator[str]:1746 """Throwaway Postgres on a unix socket with migrations applied."""1747 datadir = tmp_path_factory.mktemp("pgdata")1748 sockdir = tmp_path_factory.mktemp("pgsock")1749 subprocess.run( # noqa: S6031750 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1751 check=True,1752 capture_output=True,1753 )1754 proc = subprocess.Popen( # noqa: S6031755 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1756 stdout=subprocess.DEVNULL,1757 stderr=subprocess.DEVNULL,1758 )1759 try:1760 deadline = time.monotonic() + 301761 while (1762 subprocess.run( # noqa: S6031763 ["pg_isready", "-h", str(sockdir), "-U", "test"],1764 check=False,1765 capture_output=True,1766 ).returncode1767 != 01768 ):1769 # The socket appears before recovery finishes; createdb would1770 # fail with "the database system is starting up".1771 if time.monotonic() > deadline:1772 msg = "postgres did not start"1773> raise RuntimeError(msg)1774E RuntimeError: postgres did not start17751776nixbot/tests/support.py:319: RuntimeError1777___________ ERROR at setup of test_gitlab_heads_filter_updated_after ___________1778[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417791780self = <Coroutine test_gitlab_heads_filter_updated_after>17811782 def setup(self) -> None:1783 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1784 if runner_fixture_id not in self.fixturenames:1785 self.fixturenames.append(runner_fixture_id)1786 # When loop factories are configured, resolve the loop factory1787 # fixture early so that a factory variant change cascades cache1788 # invalidation before any async fixture checks its cache.1789 hook_caller = self.config.hook.pytest_asyncio_loop_factories1790 if hook_caller.get_hookimpls():1791 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1792> return super().setup()1793 ^^^^^^^^^^^^^^^17941795/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1796_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1797nixbot/tests/conftest.py:33: in postgres_dsn1798 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1799 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1800/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1801 return next(self.gen)1802 ^^^^^^^^^^^^^^1803_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18041805tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1806dbname = 'forge'18071808 @contextlib.contextmanager1809 def ephemeral_postgres(1810 tmp_path_factory: pytest.TempPathFactory, dbname: str1811 ) -> Iterator[str]:1812 """Throwaway Postgres on a unix socket with migrations applied."""1813 datadir = tmp_path_factory.mktemp("pgdata")1814 sockdir = tmp_path_factory.mktemp("pgsock")1815 subprocess.run( # noqa: S6031816 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1817 check=True,1818 capture_output=True,1819 )1820 proc = subprocess.Popen( # noqa: S6031821 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1822 stdout=subprocess.DEVNULL,1823 stderr=subprocess.DEVNULL,1824 )1825 try:1826 deadline = time.monotonic() + 301827 while (1828 subprocess.run( # noqa: S6031829 ["pg_isready", "-h", str(sockdir), "-U", "test"],1830 check=False,1831 capture_output=True,1832 ).returncode1833 != 01834 ):1835 # The socket appears before recovery finishes; createdb would1836 # fail with "the database system is starting up".1837 if time.monotonic() > deadline:1838 msg = "postgres did not start"1839> raise RuntimeError(msg)1840E RuntimeError: postgres did not start18411842nixbot/tests/support.py:319: RuntimeError1843_______________ ERROR at setup of test_reconcile_watermark_store _______________1844[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418451846self = <Coroutine test_reconcile_watermark_store>18471848 def setup(self) -> None:1849 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1850 if runner_fixture_id not in self.fixturenames:1851 self.fixturenames.append(runner_fixture_id)1852 # When loop factories are configured, resolve the loop factory1853 # fixture early so that a factory variant change cascades cache1854 # invalidation before any async fixture checks its cache.1855 hook_caller = self.config.hook.pytest_asyncio_loop_factories1856 if hook_caller.get_hookimpls():1857 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1858> return super().setup()1859 ^^^^^^^^^^^^^^^18601861/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1862_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1863nixbot/tests/conftest.py:33: in postgres_dsn1864 with ephemeral_postgres(tmp_path_factory, dbname) as dsn: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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1872dbname = 'forge'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_register_repo_hook_without_admin_warns _________1910[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419111912self = <Coroutine test_register_repo_hook_without_admin_warns>19131914 def setup(self) -> None:1915 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1916 if runner_fixture_id not in self.fixturenames:1917 self.fixturenames.append(runner_fixture_id)1918 # When loop factories are configured, resolve the loop factory1919 # fixture early so that a factory variant change cascades cache1920 # invalidation before any async fixture checks its cache.1921 hook_caller = self.config.hook.pytest_asyncio_loop_factories1922 if hook_caller.get_hookimpls():1923 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1924> return super().setup()1925 ^^^^^^^^^^^^^^^19261927/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1928_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1929nixbot/tests/conftest.py:33: in postgres_dsn1930 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1931 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1932/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1933 return next(self.gen)1934 ^^^^^^^^^^^^^^1935_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19361937tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1938dbname = 'forge'19391940 @contextlib.contextmanager1941 def ephemeral_postgres(1942 tmp_path_factory: pytest.TempPathFactory, dbname: str1943 ) -> Iterator[str]:1944 """Throwaway Postgres on a unix socket with migrations applied."""1945 datadir = tmp_path_factory.mktemp("pgdata")1946 sockdir = tmp_path_factory.mktemp("pgsock")1947 subprocess.run( # noqa: S6031948 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1949 check=True,1950 capture_output=True,1951 )1952 proc = subprocess.Popen( # noqa: S6031953 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1954 stdout=subprocess.DEVNULL,1955 stderr=subprocess.DEVNULL,1956 )1957 try:1958 deadline = time.monotonic() + 301959 while (1960 subprocess.run( # noqa: S6031961 ["pg_isready", "-h", str(sockdir), "-U", "test"],1962 check=False,1963 capture_output=True,1964 ).returncode1965 != 01966 ):1967 # The socket appears before recovery finishes; createdb would1968 # fail with "the database system is starting up".1969 if time.monotonic() > deadline:1970 msg = "postgres did not start"1971> raise RuntimeError(msg)1972E RuntimeError: postgres did not start19731974nixbot/tests/support.py:319: RuntimeError1975_______________ ERROR at setup of test_gitlab_hook_registration ________________1976[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419771978self = <Coroutine test_gitlab_hook_registration>19791980 def setup(self) -> None:1981 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1982 if runner_fixture_id not in self.fixturenames:1983 self.fixturenames.append(runner_fixture_id)1984 # When loop factories are configured, resolve the loop factory1985 # fixture early so that a factory variant change cascades cache1986 # invalidation before any async fixture checks its cache.1987 hook_caller = self.config.hook.pytest_asyncio_loop_factories1988 if hook_caller.get_hookimpls():1989 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1990> return super().setup()1991 ^^^^^^^^^^^^^^^19921993/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1994_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1995nixbot/tests/conftest.py:33: in postgres_dsn1996 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1997 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1998/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1999 return next(self.gen)2000 ^^^^^^^^^^^^^^loading 18,314 hidden lines…
2031520316 def setup(self) -> None:20317 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20318 if runner_fixture_id not in self.fixturenames:20319 self.fixturenames.append(runner_fixture_id)20320 # When loop factories are configured, resolve the loop factory20321 # fixture early so that a factory variant change cascades cache20322 # invalidation before any async fixture checks its cache.20323 hook_caller = self.config.hook.pytest_asyncio_loop_factories20324 if hook_caller.get_hookimpls():20325 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20326> return super().setup()20327 ^^^^^^^^^^^^^^^2032820329/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20330_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20331nixbot/tests/conftest.py:33: in postgres_dsn20332 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20333 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20334/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20335 return next(self.gen)20336 ^^^^^^^^^^^^^^20337_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2033820339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20340dbname = 'orchestrator'2034120342 @contextlib.contextmanager20343 def ephemeral_postgres(20344 tmp_path_factory: pytest.TempPathFactory, dbname: str20345 ) -> Iterator[str]:20346 """Throwaway Postgres on a unix socket with migrations applied."""20347 datadir = tmp_path_factory.mktemp("pgdata")20348 sockdir = tmp_path_factory.mktemp("pgsock")20349 subprocess.run( # noqa: S60320350 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20351 check=True,20352 capture_output=True,20353 )20354 proc = subprocess.Popen( # noqa: S60320355 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20356 stdout=subprocess.DEVNULL,20357 stderr=subprocess.DEVNULL,20358 )20359 try:20360 deadline = time.monotonic() + 3020361 while (20362 subprocess.run( # noqa: S60320363 ["pg_isready", "-h", str(sockdir), "-U", "test"],20364 check=False,20365 capture_output=True,20366 ).returncode20367 != 020368 ):20369 # The socket appears before recovery finishes; createdb would20370 # fail with "the database system is starting up".20371 if time.monotonic() > deadline:20372 msg = "postgres did not start"20373> raise RuntimeError(msg)20374E RuntimeError: postgres did not start2037520376nixbot/tests/support.py:319: RuntimeError20377_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______20378[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142037920380request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20381tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2038220383 @pytest.fixture(scope="module")20384 def postgres_dsn(20385 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20386 ) -> Iterator[str]:20387 if shutil.which("initdb") is None:20388 pytest.skip("postgresql not available")20389 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20390> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20391 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2039220393nixbot/tests/conftest.py:33: 20394_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20395/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20396 return next(self.gen)20397 ^^^^^^^^^^^^^^20398_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2039920400tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20401dbname = 'web'2040220403 @contextlib.contextmanager20404 def ephemeral_postgres(20405 tmp_path_factory: pytest.TempPathFactory, dbname: str20406 ) -> Iterator[str]:20407 """Throwaway Postgres on a unix socket with migrations applied."""20408 datadir = tmp_path_factory.mktemp("pgdata")20409 sockdir = tmp_path_factory.mktemp("pgsock")20410 subprocess.run( # noqa: S60320411 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20412 check=True,20413 capture_output=True,20414 )20415 proc = subprocess.Popen( # noqa: S60320416 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20417 stdout=subprocess.DEVNULL,20418 stderr=subprocess.DEVNULL,20419 )20420 try:20421 deadline = time.monotonic() + 3020422 while (20423 subprocess.run( # noqa: S60320424 ["pg_isready", "-h", str(sockdir), "-U", "test"],20425 check=False,20426 capture_output=True,20427 ).returncode20428 != 020429 ):20430 # The socket appears before recovery finishes; createdb would20431 # fail with "the database system is starting up".20432 if time.monotonic() > deadline:20433 msg = "postgres did not start"20434> raise RuntimeError(msg)20435E RuntimeError: postgres did not start2043620437nixbot/tests/support.py:319: RuntimeError20438__________ ERROR at setup of test_health_serves_while_startup_blocks ___________20439[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142044020441self = <Coroutine test_health_serves_while_startup_blocks>2044220443 def setup(self) -> None:20444 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20445 if runner_fixture_id not in self.fixturenames:20446 self.fixturenames.append(runner_fixture_id)20447 # When loop factories are configured, resolve the loop factory20448 # fixture early so that a factory variant change cascades cache20449 # invalidation before any async fixture checks its cache.20450 hook_caller = self.config.hook.pytest_asyncio_loop_factories20451 if hook_caller.get_hookimpls():20452 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20453> return super().setup()20454 ^^^^^^^^^^^^^^^2045520456/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20457_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20458nixbot/tests/conftest.py:33: in postgres_dsn20459 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20460 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20461/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20462 return next(self.gen)20463 ^^^^^^^^^^^^^^20464_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2046520466tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')20467dbname = 'service'2046820469 @contextlib.contextmanager20470 def ephemeral_postgres(20471 tmp_path_factory: pytest.TempPathFactory, dbname: str20472 ) -> Iterator[str]:20473 """Throwaway Postgres on a unix socket with migrations applied."""20474 datadir = tmp_path_factory.mktemp("pgdata")20475 sockdir = tmp_path_factory.mktemp("pgsock")20476 subprocess.run( # noqa: S60320477 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20478 check=True,20479 capture_output=True,20480 )20481 proc = subprocess.Popen( # noqa: S60320482 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20483 stdout=subprocess.DEVNULL,20484 stderr=subprocess.DEVNULL,20485 )20486 try:20487 deadline = time.monotonic() + 3020488 while (20489 subprocess.run( # noqa: S60320490 ["pg_isready", "-h", str(sockdir), "-U", "test"],20491 check=False,20492 capture_output=True,20493 ).returncode20494 != 020495 ):20496 # The socket appears before recovery finishes; createdb would20497 # fail with "the database system is starting up".20498 if time.monotonic() > deadline:20499 msg = "postgres did not start"20500> raise RuntimeError(msg)20501E RuntimeError: postgres did not start2050220503nixbot/tests/support.py:319: RuntimeError20504________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________20505[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142050620507request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20508tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2050920510 @pytest.fixture(scope="module")20511 def postgres_dsn(20512 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20513 ) -> Iterator[str]:20514 if shutil.which("initdb") is None:20515 pytest.skip("postgresql not available")20516 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20517> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20518 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2051920520nixbot/tests/conftest.py:33: 20521_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20522/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20523 return next(self.gen)20524 ^^^^^^^^^^^^^^20525_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2052620527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20528dbname = 'web'2052920530 @contextlib.contextmanager20531 def ephemeral_postgres(20532 tmp_path_factory: pytest.TempPathFactory, dbname: str20533 ) -> Iterator[str]:20534 """Throwaway Postgres on a unix socket with migrations applied."""20535 datadir = tmp_path_factory.mktemp("pgdata")20536 sockdir = tmp_path_factory.mktemp("pgsock")20537 subprocess.run( # noqa: S60320538 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20539 check=True,20540 capture_output=True,20541 )20542 proc = subprocess.Popen( # noqa: S60320543 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20544 stdout=subprocess.DEVNULL,20545 stderr=subprocess.DEVNULL,20546 )20547 try:20548 deadline = time.monotonic() + 3020549 while (20550 subprocess.run( # noqa: S60320551 ["pg_isready", "-h", str(sockdir), "-U", "test"],20552 check=False,20553 capture_output=True,20554 ).returncode20555 != 020556 ):20557 # The socket appears before recovery finishes; createdb would20558 # fail with "the database system is starting up".20559 if time.monotonic() > deadline:20560 msg = "postgres did not start"20561> raise RuntimeError(msg)20562E RuntimeError: postgres did not start2056320564nixbot/tests/support.py:319: RuntimeError20565_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______20566[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142056720568self = <Coroutine test_concurrent_effects_use_independent_worktrees>2056920570 def setup(self) -> None:20571 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20572 if runner_fixture_id not in self.fixturenames:20573 self.fixturenames.append(runner_fixture_id)20574 # When loop factories are configured, resolve the loop factory20575 # fixture early so that a factory variant change cascades cache20576 # invalidation before any async fixture checks its cache.20577 hook_caller = self.config.hook.pytest_asyncio_loop_factories20578 if hook_caller.get_hookimpls():20579 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20580> return super().setup()20581 ^^^^^^^^^^^^^^^2058220583/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20584_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20585nixbot/tests/conftest.py:33: in postgres_dsn20586 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20587 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20588/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20589 return next(self.gen)20590 ^^^^^^^^^^^^^^20591_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2059220593tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20594dbname = 'orchestrator'2059520596 @contextlib.contextmanager20597 def ephemeral_postgres(20598 tmp_path_factory: pytest.TempPathFactory, dbname: str20599 ) -> Iterator[str]:20600 """Throwaway Postgres on a unix socket with migrations applied."""20601 datadir = tmp_path_factory.mktemp("pgdata")20602 sockdir = tmp_path_factory.mktemp("pgsock")20603 subprocess.run( # noqa: S60320604 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20605 check=True,20606 capture_output=True,20607 )20608 proc = subprocess.Popen( # noqa: S60320609 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20610 stdout=subprocess.DEVNULL,20611 stderr=subprocess.DEVNULL,20612 )20613 try:20614 deadline = time.monotonic() + 3020615 while (20616 subprocess.run( # noqa: S60320617 ["pg_isready", "-h", str(sockdir), "-U", "test"],20618 check=False,20619 capture_output=True,20620 ).returncode20621 != 020622 ):20623 # The socket appears before recovery finishes; createdb would20624 # fail with "the database system is starting up".20625 if time.monotonic() > deadline:20626 msg = "postgres did not start"20627> raise RuntimeError(msg)20628E RuntimeError: postgres did not start2062920630nixbot/tests/support.py:319: RuntimeError20631_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________20632[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142063320634request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20635tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2063620637 @pytest.fixture(scope="module")20638 def postgres_dsn(20639 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20640 ) -> Iterator[str]:20641 if shutil.which("initdb") is None:20642 pytest.skip("postgresql not available")20643 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20644> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20645 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2064620647nixbot/tests/conftest.py:33: 20648_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20649/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20650 return next(self.gen)20651 ^^^^^^^^^^^^^^20652_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2065320654tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20655dbname = 'web'2065620657 @contextlib.contextmanager20658 def ephemeral_postgres(20659 tmp_path_factory: pytest.TempPathFactory, dbname: str20660 ) -> Iterator[str]:20661 """Throwaway Postgres on a unix socket with migrations applied."""20662 datadir = tmp_path_factory.mktemp("pgdata")20663 sockdir = tmp_path_factory.mktemp("pgsock")20664 subprocess.run( # noqa: S60320665 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20666 check=True,20667 capture_output=True,20668 )20669 proc = subprocess.Popen( # noqa: S60320670 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20671 stdout=subprocess.DEVNULL,20672 stderr=subprocess.DEVNULL,20673 )20674 try:20675 deadline = time.monotonic() + 3020676 while (20677 subprocess.run( # noqa: S60320678 ["pg_isready", "-h", str(sockdir), "-U", "test"],20679 check=False,20680 capture_output=True,20681 ).returncode20682 != 020683 ):20684 # The socket appears before recovery finishes; createdb would20685 # fail with "the database system is starting up".20686 if time.monotonic() > deadline:20687 msg = "postgres did not start"20688> raise RuntimeError(msg)20689E RuntimeError: postgres did not start2069020691nixbot/tests/support.py:319: RuntimeError20692_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __20693[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142069420695request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20696tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2069720698 @pytest.fixture(scope="module")20699 def postgres_dsn(20700 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20701 ) -> Iterator[str]:20702 if shutil.which("initdb") is None:20703 pytest.skip("postgresql not available")20704 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20705> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20706 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2070720708nixbot/tests/conftest.py:33: 20709_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20710/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20711 return next(self.gen)20712 ^^^^^^^^^^^^^^20713_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2071420715tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20716dbname = 'web'2071720718 @contextlib.contextmanager20719 def ephemeral_postgres(20720 tmp_path_factory: pytest.TempPathFactory, dbname: str20721 ) -> Iterator[str]:20722 """Throwaway Postgres on a unix socket with migrations applied."""20723 datadir = tmp_path_factory.mktemp("pgdata")20724 sockdir = tmp_path_factory.mktemp("pgsock")20725 subprocess.run( # noqa: S60320726 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20727 check=True,20728 capture_output=True,20729 )20730 proc = subprocess.Popen( # noqa: S60320731 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20732 stdout=subprocess.DEVNULL,20733 stderr=subprocess.DEVNULL,20734 )20735 try:20736 deadline = time.monotonic() + 3020737 while (20738 subprocess.run( # noqa: S60320739 ["pg_isready", "-h", str(sockdir), "-U", "test"],20740 check=False,20741 capture_output=True,20742 ).returncode20743 != 020744 ):20745 # The socket appears before recovery finishes; createdb would20746 # fail with "the database system is starting up".20747 if time.monotonic() > deadline:20748 msg = "postgres did not start"20749> raise RuntimeError(msg)20750E RuntimeError: postgres did not start2075120752nixbot/tests/support.py:319: RuntimeError20753__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________20754[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142075520756self = <Coroutine test_locked_effect_gets_shared_dedup_key>2075720758 def setup(self) -> None:20759 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20760 if runner_fixture_id not in self.fixturenames:20761 self.fixturenames.append(runner_fixture_id)20762 # When loop factories are configured, resolve the loop factory20763 # fixture early so that a factory variant change cascades cache20764 # invalidation before any async fixture checks its cache.20765 hook_caller = self.config.hook.pytest_asyncio_loop_factories20766 if hook_caller.get_hookimpls():20767 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20768> return super().setup()20769 ^^^^^^^^^^^^^^^2077020771/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20772_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20773nixbot/tests/conftest.py:33: in postgres_dsn20774 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20775 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20776/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20777 return next(self.gen)20778 ^^^^^^^^^^^^^^20779_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2078020781tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20782dbname = 'orchestrator'2078320784 @contextlib.contextmanager20785 def ephemeral_postgres(20786 tmp_path_factory: pytest.TempPathFactory, dbname: str20787 ) -> Iterator[str]:20788 """Throwaway Postgres on a unix socket with migrations applied."""20789 datadir = tmp_path_factory.mktemp("pgdata")20790 sockdir = tmp_path_factory.mktemp("pgsock")20791 subprocess.run( # noqa: S60320792 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20793 check=True,20794 capture_output=True,20795 )20796 proc = subprocess.Popen( # noqa: S60320797 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20798 stdout=subprocess.DEVNULL,20799 stderr=subprocess.DEVNULL,20800 )20801 try:20802 deadline = time.monotonic() + 3020803 while (20804 subprocess.run( # noqa: S60320805 ["pg_isready", "-h", str(sockdir), "-U", "test"],20806 check=False,20807 capture_output=True,20808 ).returncode20809 != 020810 ):20811 # The socket appears before recovery finishes; createdb would20812 # fail with "the database system is starting up".20813 if time.monotonic() > deadline:20814 msg = "postgres did not start"20815> raise RuntimeError(msg)20816E RuntimeError: postgres did not start2081720818nixbot/tests/support.py:319: RuntimeError20819__________ ERROR at setup of test_old_schedule_history_url_redirects ___________20820[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142082120822request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20823tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2082420825 @pytest.fixture(scope="module")20826 def postgres_dsn(20827 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20828 ) -> Iterator[str]:20829 if shutil.which("initdb") is None:20830 pytest.skip("postgresql not available")20831 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20832> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20833 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2083420835nixbot/tests/conftest.py:33: 20836_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20837/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20838 return next(self.gen)20839 ^^^^^^^^^^^^^^20840_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2084120842tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20843dbname = 'web'2084420845 @contextlib.contextmanager20846 def ephemeral_postgres(20847 tmp_path_factory: pytest.TempPathFactory, dbname: str20848 ) -> Iterator[str]:20849 """Throwaway Postgres on a unix socket with migrations applied."""20850 datadir = tmp_path_factory.mktemp("pgdata")20851 sockdir = tmp_path_factory.mktemp("pgsock")20852 subprocess.run( # noqa: S60320853 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20854 check=True,20855 capture_output=True,20856 )20857 proc = subprocess.Popen( # noqa: S60320858 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20859 stdout=subprocess.DEVNULL,20860 stderr=subprocess.DEVNULL,20861 )20862 try:20863 deadline = time.monotonic() + 3020864 while (20865 subprocess.run( # noqa: S60320866 ["pg_isready", "-h", str(sockdir), "-U", "test"],20867 check=False,20868 capture_output=True,20869 ).returncode20870 != 020871 ):20872 # The socket appears before recovery finishes; createdb would20873 # fail with "the database system is starting up".20874 if time.monotonic() > deadline:20875 msg = "postgres did not start"20876> raise RuntimeError(msg)20877E RuntimeError: postgres did not start2087820879nixbot/tests/support.py:319: RuntimeError20880__________ ERROR at setup of test_project_effects_filter_and_paginate __________20881[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142088220883request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20884tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2088520886 @pytest.fixture(scope="module")20887 def postgres_dsn(20888 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20889 ) -> Iterator[str]:20890 if shutil.which("initdb") is None:20891 pytest.skip("postgresql not available")20892 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20893> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20894 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2089520896nixbot/tests/conftest.py:33: 20897_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20898/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20899 return next(self.gen)20900 ^^^^^^^^^^^^^^20901_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2090220903tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20904dbname = 'web'2090520906 @contextlib.contextmanager20907 def ephemeral_postgres(20908 tmp_path_factory: pytest.TempPathFactory, dbname: str20909 ) -> Iterator[str]:20910 """Throwaway Postgres on a unix socket with migrations applied."""20911 datadir = tmp_path_factory.mktemp("pgdata")20912 sockdir = tmp_path_factory.mktemp("pgsock")20913 subprocess.run( # noqa: S60320914 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20915 check=True,20916 capture_output=True,20917 )20918 proc = subprocess.Popen( # noqa: S60320919 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20920 stdout=subprocess.DEVNULL,20921 stderr=subprocess.DEVNULL,20922 )20923 try:20924 deadline = time.monotonic() + 3020925 while (20926 subprocess.run( # noqa: S60320927 ["pg_isready", "-h", str(sockdir), "-U", "test"],20928 check=False,20929 capture_output=True,20930 ).returncode20931 != 020932 ):20933 # The socket appears before recovery finishes; createdb would20934 # fail with "the database system is starting up".20935 if time.monotonic() > deadline:20936 msg = "postgres did not start"20937> raise RuntimeError(msg)20938E RuntimeError: postgres did not start2093920940nixbot/tests/support.py:319: RuntimeError20941______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______20942[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142094320944self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2094520946 def setup(self) -> None:20947 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20948 if runner_fixture_id not in self.fixturenames:20949 self.fixturenames.append(runner_fixture_id)20950 # When loop factories are configured, resolve the loop factory20951 # fixture early so that a factory variant change cascades cache20952 # invalidation before any async fixture checks its cache.20953 hook_caller = self.config.hook.pytest_asyncio_loop_factories20954 if hook_caller.get_hookimpls():20955 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20956> return super().setup()20957 ^^^^^^^^^^^^^^^2095820959/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20960_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20961nixbot/tests/conftest.py:33: in postgres_dsn20962 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20963 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20964/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20965 return next(self.gen)20966 ^^^^^^^^^^^^^^20967_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2096820969tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20970dbname = 'orchestrator'2097120972 @contextlib.contextmanager20973 def ephemeral_postgres(20974 tmp_path_factory: pytest.TempPathFactory, dbname: str20975 ) -> Iterator[str]:20976 """Throwaway Postgres on a unix socket with migrations applied."""20977 datadir = tmp_path_factory.mktemp("pgdata")20978 sockdir = tmp_path_factory.mktemp("pgsock")20979 subprocess.run( # noqa: S60320980 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20981 check=True,20982 capture_output=True,20983 )20984 proc = subprocess.Popen( # noqa: S60320985 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20986 stdout=subprocess.DEVNULL,20987 stderr=subprocess.DEVNULL,20988 )20989 try:20990 deadline = time.monotonic() + 3020991 while (20992 subprocess.run( # noqa: S60320993 ["pg_isready", "-h", str(sockdir), "-U", "test"],20994 check=False,20995 capture_output=True,20996 ).returncode20997 != 020998 ):20999 # The socket appears before recovery finishes; createdb would21000 # fail with "the database system is starting up".21001 if time.monotonic() > deadline:21002 msg = "postgres did not start"21003> raise RuntimeError(msg)21004E RuntimeError: postgres did not start2100521006nixbot/tests/support.py:319: RuntimeError21007_________ ERROR at setup of test_scheduled_run_stream_replays_history __________21008[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142100921010request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21011tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2101221013 @pytest.fixture(scope="module")21014 def postgres_dsn(21015 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21016 ) -> Iterator[str]:21017 if shutil.which("initdb") is None:21018 pytest.skip("postgresql not available")21019 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21020> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21021 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2102221023nixbot/tests/conftest.py:33: 21024_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21025/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21026 return next(self.gen)21027 ^^^^^^^^^^^^^^21028_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2102921030tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21031dbname = 'web'2103221033 @contextlib.contextmanager21034 def ephemeral_postgres(21035 tmp_path_factory: pytest.TempPathFactory, dbname: str21036 ) -> Iterator[str]:21037 """Throwaway Postgres on a unix socket with migrations applied."""21038 datadir = tmp_path_factory.mktemp("pgdata")21039 sockdir = tmp_path_factory.mktemp("pgsock")21040 subprocess.run( # noqa: S60321041 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21042 check=True,21043 capture_output=True,21044 )21045 proc = subprocess.Popen( # noqa: S60321046 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21047 stdout=subprocess.DEVNULL,21048 stderr=subprocess.DEVNULL,21049 )21050 try:21051 deadline = time.monotonic() + 3021052 while (21053 subprocess.run( # noqa: S60321054 ["pg_isready", "-h", str(sockdir), "-U", "test"],21055 check=False,21056 capture_output=True,21057 ).returncode21058 != 021059 ):21060 # The socket appears before recovery finishes; createdb would21061 # fail with "the database system is starting up".21062 if time.monotonic() > deadline:21063 msg = "postgres did not start"21064> raise RuntimeError(msg)21065E RuntimeError: postgres did not start2106621067nixbot/tests/support.py:319: RuntimeError21068___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21069[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142107021071request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21072tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2107321074 @pytest.fixture(scope="module")21075 def postgres_dsn(21076 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21077 ) -> Iterator[str]:21078 if shutil.which("initdb") is None:21079 pytest.skip("postgresql not available")21080 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21081> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21082 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2108321084nixbot/tests/conftest.py:33: 21085_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21086/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21087 return next(self.gen)21088 ^^^^^^^^^^^^^^21089_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2109021091tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21092dbname = 'web'2109321094 @contextlib.contextmanager21095 def ephemeral_postgres(21096 tmp_path_factory: pytest.TempPathFactory, dbname: str21097 ) -> Iterator[str]:21098 """Throwaway Postgres on a unix socket with migrations applied."""21099 datadir = tmp_path_factory.mktemp("pgdata")21100 sockdir = tmp_path_factory.mktemp("pgsock")21101 subprocess.run( # noqa: S60321102 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21103 check=True,21104 capture_output=True,21105 )21106 proc = subprocess.Popen( # noqa: S60321107 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21108 stdout=subprocess.DEVNULL,21109 stderr=subprocess.DEVNULL,21110 )21111 try:21112 deadline = time.monotonic() + 3021113 while (21114 subprocess.run( # noqa: S60321115 ["pg_isready", "-h", str(sockdir), "-U", "test"],21116 check=False,21117 capture_output=True,21118 ).returncode21119 != 021120 ):21121 # The socket appears before recovery finishes; createdb would21122 # fail with "the database system is starting up".21123 if time.monotonic() > deadline:21124 msg = "postgres did not start"21125> raise RuntimeError(msg)21126E RuntimeError: postgres did not start2112721128nixbot/tests/support.py:319: RuntimeError21129__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21130[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142113121132self = <Coroutine test_effect_dep_failure_skips_dependent>2113321134 def setup(self) -> None:21135 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21136 if runner_fixture_id not in self.fixturenames:21137 self.fixturenames.append(runner_fixture_id)21138 # When loop factories are configured, resolve the loop factory21139 # fixture early so that a factory variant change cascades cache21140 # invalidation before any async fixture checks its cache.21141 hook_caller = self.config.hook.pytest_asyncio_loop_factories21142 if hook_caller.get_hookimpls():21143 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21144> return super().setup()21145 ^^^^^^^^^^^^^^^2114621147/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21148_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21149nixbot/tests/conftest.py:33: in postgres_dsn21150 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21151 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21152/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21153 return next(self.gen)21154 ^^^^^^^^^^^^^^21155_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2115621157tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21158dbname = 'orchestrator'2115921160 @contextlib.contextmanager21161 def ephemeral_postgres(21162 tmp_path_factory: pytest.TempPathFactory, dbname: str21163 ) -> Iterator[str]:21164 """Throwaway Postgres on a unix socket with migrations applied."""21165 datadir = tmp_path_factory.mktemp("pgdata")21166 sockdir = tmp_path_factory.mktemp("pgsock")21167 subprocess.run( # noqa: S60321168 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21169 check=True,21170 capture_output=True,21171 )21172 proc = subprocess.Popen( # noqa: S60321173 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21174 stdout=subprocess.DEVNULL,21175 stderr=subprocess.DEVNULL,21176 )21177 try:21178 deadline = time.monotonic() + 3021179 while (21180 subprocess.run( # noqa: S60321181 ["pg_isready", "-h", str(sockdir), "-U", "test"],21182 check=False,21183 capture_output=True,21184 ).returncode21185 != 021186 ):21187 # The socket appears before recovery finishes; createdb would21188 # fail with "the database system is starting up".21189 if time.monotonic() > deadline:21190 msg = "postgres did not start"21191> raise RuntimeError(msg)21192E RuntimeError: postgres did not start2119321194nixbot/tests/support.py:319: RuntimeError21195_________________ ERROR at setup of test_api_log_toc_and_text __________________21196[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142119721198request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21199tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2120021201 @pytest.fixture(scope="module")21202 def postgres_dsn(21203 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21204 ) -> Iterator[str]:21205 if shutil.which("initdb") is None:21206 pytest.skip("postgresql not available")21207 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21208> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2121021211nixbot/tests/conftest.py:33: 21212_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21213/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21214 return next(self.gen)21215 ^^^^^^^^^^^^^^21216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2121721218tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21219dbname = 'web'2122021221 @contextlib.contextmanager21222 def ephemeral_postgres(21223 tmp_path_factory: pytest.TempPathFactory, dbname: str21224 ) -> Iterator[str]:21225 """Throwaway Postgres on a unix socket with migrations applied."""21226 datadir = tmp_path_factory.mktemp("pgdata")21227 sockdir = tmp_path_factory.mktemp("pgsock")21228 subprocess.run( # noqa: S60321229 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21230 check=True,21231 capture_output=True,21232 )21233 proc = subprocess.Popen( # noqa: S60321234 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21235 stdout=subprocess.DEVNULL,21236 stderr=subprocess.DEVNULL,21237 )21238 try:21239 deadline = time.monotonic() + 3021240 while (21241 subprocess.run( # noqa: S60321242 ["pg_isready", "-h", str(sockdir), "-U", "test"],21243 check=False,21244 capture_output=True,21245 ).returncode21246 != 021247 ):21248 # The socket appears before recovery finishes; createdb would21249 # fail with "the database system is starting up".21250 if time.monotonic() > deadline:21251 msg = "postgres did not start"21252> raise RuntimeError(msg)21253E RuntimeError: postgres did not start2125421255nixbot/tests/support.py:319: RuntimeError21256______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21257[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142125821259self = <Coroutine test_lock_serializes_builds_without_interleaving>2126021261 def setup(self) -> None:21262 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21263 if runner_fixture_id not in self.fixturenames:21264 self.fixturenames.append(runner_fixture_id)21265 # When loop factories are configured, resolve the loop factory21266 # fixture early so that a factory variant change cascades cache21267 # invalidation before any async fixture checks its cache.21268 hook_caller = self.config.hook.pytest_asyncio_loop_factories21269 if hook_caller.get_hookimpls():21270 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21271> return super().setup()21272 ^^^^^^^^^^^^^^^2127321274/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21275_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21276nixbot/tests/conftest.py:33: in postgres_dsn21277 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21278 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21279/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21280 return next(self.gen)21281 ^^^^^^^^^^^^^^21282_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2128321284tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21285dbname = 'orchestrator'2128621287 @contextlib.contextmanager21288 def ephemeral_postgres(21289 tmp_path_factory: pytest.TempPathFactory, dbname: str21290 ) -> Iterator[str]:21291 """Throwaway Postgres on a unix socket with migrations applied."""21292 datadir = tmp_path_factory.mktemp("pgdata")21293 sockdir = tmp_path_factory.mktemp("pgsock")21294 subprocess.run( # noqa: S60321295 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21296 check=True,21297 capture_output=True,21298 )21299 proc = subprocess.Popen( # noqa: S60321300 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21301 stdout=subprocess.DEVNULL,21302 stderr=subprocess.DEVNULL,21303 )21304 try:21305 deadline = time.monotonic() + 3021306 while (21307 subprocess.run( # noqa: S60321308 ["pg_isready", "-h", str(sockdir), "-U", "test"],21309 check=False,21310 capture_output=True,21311 ).returncode21312 != 021313 ):21314 # The socket appears before recovery finishes; createdb would21315 # fail with "the database system is starting up".21316 if time.monotonic() > deadline:21317 msg = "postgres did not start"21318> raise RuntimeError(msg)21319E RuntimeError: postgres did not start2132021321nixbot/tests/support.py:319: RuntimeError21322_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21323[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142132421325request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21326tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2132721328 @pytest.fixture(scope="module")21329 def postgres_dsn(21330 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21331 ) -> Iterator[str]:21332 if shutil.which("initdb") is None:21333 pytest.skip("postgresql not available")21334 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21335> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2133721338nixbot/tests/conftest.py:33: 21339_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21340/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21341 return next(self.gen)21342 ^^^^^^^^^^^^^^21343_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2134421345tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21346dbname = 'web'2134721348 @contextlib.contextmanager21349 def ephemeral_postgres(21350 tmp_path_factory: pytest.TempPathFactory, dbname: str21351 ) -> Iterator[str]:21352 """Throwaway Postgres on a unix socket with migrations applied."""21353 datadir = tmp_path_factory.mktemp("pgdata")21354 sockdir = tmp_path_factory.mktemp("pgsock")21355 subprocess.run( # noqa: S60321356 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21357 check=True,21358 capture_output=True,21359 )21360 proc = subprocess.Popen( # noqa: S60321361 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21362 stdout=subprocess.DEVNULL,21363 stderr=subprocess.DEVNULL,21364 )21365 try:21366 deadline = time.monotonic() + 3021367 while (21368 subprocess.run( # noqa: S60321369 ["pg_isready", "-h", str(sockdir), "-U", "test"],21370 check=False,21371 capture_output=True,21372 ).returncode21373 != 021374 ):21375 # The socket appears before recovery finishes; createdb would21376 # fail with "the database system is starting up".21377 if time.monotonic() > deadline:21378 msg = "postgres did not start"21379> raise RuntimeError(msg)21380E RuntimeError: postgres did not start2138121382nixbot/tests/support.py:319: RuntimeError21383__________________ ERROR at setup of test_api_log_stream_json __________________21384[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142138521386request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21387tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2138821389 @pytest.fixture(scope="module")21390 def postgres_dsn(21391 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21392 ) -> Iterator[str]:21393 if shutil.which("initdb") is None:21394 pytest.skip("postgresql not available")21395 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21396> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21397 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2139821399nixbot/tests/conftest.py:33: 21400_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21401/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21402 return next(self.gen)21403 ^^^^^^^^^^^^^^21404_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2140521406tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21407dbname = 'web'2140821409 @contextlib.contextmanager21410 def ephemeral_postgres(21411 tmp_path_factory: pytest.TempPathFactory, dbname: str21412 ) -> Iterator[str]:21413 """Throwaway Postgres on a unix socket with migrations applied."""21414 datadir = tmp_path_factory.mktemp("pgdata")21415 sockdir = tmp_path_factory.mktemp("pgsock")21416 subprocess.run( # noqa: S60321417 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21418 check=True,21419 capture_output=True,21420 )21421 proc = subprocess.Popen( # noqa: S60321422 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21423 stdout=subprocess.DEVNULL,21424 stderr=subprocess.DEVNULL,21425 )21426 try:21427 deadline = time.monotonic() + 3021428 while (21429 subprocess.run( # noqa: S60321430 ["pg_isready", "-h", str(sockdir), "-U", "test"],21431 check=False,21432 capture_output=True,21433 ).returncode21434 != 021435 ):21436 # The socket appears before recovery finishes; createdb would21437 # fail with "the database system is starting up".21438 if time.monotonic() > deadline:21439 msg = "postgres did not start"21440> raise RuntimeError(msg)21441E RuntimeError: postgres did not start2144221443nixbot/tests/support.py:319: RuntimeError21444___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21445[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144621447self = <Coroutine test_effect_dep_cycle_fails_discovery>2144821449 def setup(self) -> None:21450 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21451 if runner_fixture_id not in self.fixturenames:21452 self.fixturenames.append(runner_fixture_id)21453 # When loop factories are configured, resolve the loop factory21454 # fixture early so that a factory variant change cascades cache21455 # invalidation before any async fixture checks its cache.21456 hook_caller = self.config.hook.pytest_asyncio_loop_factories21457 if hook_caller.get_hookimpls():21458 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21459> return super().setup()21460 ^^^^^^^^^^^^^^^2146121462/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21463_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21464nixbot/tests/conftest.py:33: in postgres_dsn21465 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21466 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21467/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21468 return next(self.gen)21469 ^^^^^^^^^^^^^^21470_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2147121472tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21473dbname = 'orchestrator'2147421475 @contextlib.contextmanager21476 def ephemeral_postgres(21477 tmp_path_factory: pytest.TempPathFactory, dbname: str21478 ) -> Iterator[str]:21479 """Throwaway Postgres on a unix socket with migrations applied."""21480 datadir = tmp_path_factory.mktemp("pgdata")21481 sockdir = tmp_path_factory.mktemp("pgsock")21482 subprocess.run( # noqa: S60321483 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21484 check=True,21485 capture_output=True,21486 )21487 proc = subprocess.Popen( # noqa: S60321488 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21489 stdout=subprocess.DEVNULL,21490 stderr=subprocess.DEVNULL,21491 )21492 try:21493 deadline = time.monotonic() + 3021494 while (21495 subprocess.run( # noqa: S60321496 ["pg_isready", "-h", str(sockdir), "-U", "test"],21497 check=False,21498 capture_output=True,21499 ).returncode21500 != 021501 ):21502 # The socket appears before recovery finishes; createdb would21503 # fail with "the database system is starting up".21504 if time.monotonic() > deadline:21505 msg = "postgres did not start"21506> raise RuntimeError(msg)21507E RuntimeError: postgres did not start2150821509nixbot/tests/support.py:319: RuntimeError21510_______________ ERROR at setup of test_build_eval_stats_surface ________________21511[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142151221513request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21514tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2151521516 @pytest.fixture(scope="module")21517 def postgres_dsn(21518 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21519 ) -> Iterator[str]:21520 if shutil.which("initdb") is None:21521 pytest.skip("postgresql not available")21522 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21523> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21524 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2152521526nixbot/tests/conftest.py:33: 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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21534dbname = 'web'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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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/5/scratch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/p...atch/a4c115648c1965ef/build/pytest-of-_tribuchetbld5/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_visibility.py::test_anonymous_sees_public_only - Runt...22959ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import22960ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only22961ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...22962ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows22963ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...22964ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search22965ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge22966ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos22967ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...22968ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...22969ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...22970ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows22971ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos22972ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos22973ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...22974ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...22975ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base22976ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...22977ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names22978ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch22979ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...22980ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...22981ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups22982ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache22983ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...22984ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...22985ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...22986ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns22987ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...22988ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec22989ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...22990ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...22991ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...22992ERROR nixbot/tests/test_schedules.py::test_concurrent_replace_schedules_do_not_collide22993ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...22994ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises22995ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...22996ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...22997ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names22998ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission22999ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23000ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23001ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23002ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23003ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23004ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23005ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23006ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23007ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23008ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23009ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23010ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23011ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23012ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23013ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23014ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23015ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23016ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23017ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23018ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23019ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23020ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23021ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23022ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23023ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23024ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23025ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23026ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23027ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23028ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23029ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23030ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23031ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23032ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23033ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23034ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23035ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23036ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23037ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23038ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23039ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23040ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23041ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23042ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23043ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23044ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23045ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23046ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23047ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23048ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23049ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23050ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23051ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23052ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23053ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23054ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23055ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23056ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23057ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23058ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23059ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23060ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23061ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23062ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23063ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23064ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23065ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23066ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23067ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23068ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23069ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23070ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23071ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23072ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23073ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23074ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23075ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23076ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23077ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23078ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23079ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23080ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23081ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23082ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23083ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23084ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23085ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23086ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23087ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23088ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23089ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23090ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23091ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23092ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23093ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23094ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23095ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23096ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23097ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23098ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23099ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23100ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23101ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23102ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23103ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23104ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23105ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23106ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23107ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23108ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23109ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23110ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23111ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23112ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23113ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23114ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23115ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23116ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23117ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23118ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23119ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23120ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23121ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23122ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23123ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23124ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23125ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23126ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23127ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23128ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23129ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23130ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23131ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23132ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23133ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23134ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23135ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23136ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23137ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23138ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23139ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23140ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23141ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23142ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23143ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23144ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23145ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23146ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23147ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23148ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23149ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23150ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23151ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23152ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23153ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23154ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23155ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23156ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23157ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23158ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23159ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23160ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23161ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23162ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23163ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23164ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23165ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23166ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23167ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23168ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23169ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23170ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23171ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23172ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23173ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23174ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23175ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23176ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23177ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23178ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23179ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23180ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23181ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23182ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23183ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23184ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23185ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23186ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23187ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23188ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23189ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23190ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23191ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23192ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23193ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23194ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23195ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23196ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23197ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23198ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23199ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23200ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23201ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23202ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23203ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23204ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23205ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23206ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23207ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23208ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23209ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23210ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23211ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23212ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23213ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23214ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23215ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23216ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23217ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23218ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23219ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23220ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23221ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23222ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23223ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23224ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23225ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23226ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23227ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23228ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23229ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23230ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23231ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23232ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23233ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23234ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23235ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23236ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23237ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23238ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23239ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23240ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23241ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23242ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23243ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23244ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23245ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23246ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23247ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23248ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23249ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23250ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23251ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23252ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23253ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23254ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23255ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23256ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23257ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23258ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23259ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23260ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23261ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23262ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23263ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23264ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23265ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23266ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23267ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23268ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23269ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23270ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23271ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23272ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423273ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23274ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23275ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23276ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23277ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23278ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23279ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23280ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23281ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23282ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23283ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23284ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23285ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23286ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23287ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23288ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23289ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23290ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23291ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23292ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23293ERROR 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 40.10s =================