python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #438
· 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/76pkmwky09b62zpw2ajs6q32bhdgbhp3-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"configurePhase
20no configure script, doing nothingbuildPhase
21Executing pypaBuildPhase22Creating a wheel...23pypa build flags: --no-isolation --outdir dist/ --wheel24* Getting build dependencies for wheel...25* Building wheel...26Successfully built nixbot-0.0.1-py3-none-any.whl27Finished creating a wheel...28Finished executing pypaBuildPhasepythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheckinstallPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhasepythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhasefixupPhase
37checking for references to /private/var/tb/7/scratch/eddb5c39692427aa/build/ in /nix/store/r8wf840clfmgqxw0q27rq666qxry6v4c-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/r8wf840clfmgqxw0q27rq666qxry6v4c-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/r8wf840clfmgqxw0q27rq666qxry6v4c-python3.14-nixbot-tests/lib /nix/store/r8wf840clfmgqxw0q27rq666qxry6v4c-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/7/scratch/eddb5c39692427aa/build/ in /nix/store/37q2sg4wh2d4v2xmnacf1kc25k01hgzr-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/37q2sg4wh2d4v2xmnacf1kc25k01hgzr-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/r8wf840clfmgqxw0q27rq666qxry6v4c-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDirinstallCheckPhase
46no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
47Executing pythonImportsCheckPhasepytestCheckPhase
48Executing pytestCheckPhase49pytest flags: -m pytest --numprocesses=2450/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.51 warner(PytestBenchmarkWarning(text))52/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.53 warner(PytestBenchmarkWarning(text))54/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.55 warner(PytestBenchmarkWarning(text))56/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.57 warner(PytestBenchmarkWarning(text))58/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.59 warner(PytestBenchmarkWarning(text))60/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.61 warner(PytestBenchmarkWarning(text))62/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.63 warner(PytestBenchmarkWarning(text))64/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.65 warner(PytestBenchmarkWarning(text))66/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.67 warner(PytestBenchmarkWarning(text))68/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.69 warner(PytestBenchmarkWarning(text))70/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.71 warner(PytestBenchmarkWarning(text))72/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.73 warner(PytestBenchmarkWarning(text))74/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.75 warner(PytestBenchmarkWarning(text))76/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.77 warner(PytestBenchmarkWarning(text))78/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.79 warner(PytestBenchmarkWarning(text))80/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.81 warner(PytestBenchmarkWarning(text))82/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.83 warner(PytestBenchmarkWarning(text))84/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.85 warner(PytestBenchmarkWarning(text))86/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.87 warner(PytestBenchmarkWarning(text))88/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.89 warner(PytestBenchmarkWarning(text))90/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.91 warner(PytestBenchmarkWarning(text))92/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.93 warner(PytestBenchmarkWarning(text))94/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.95 warner(PytestBenchmarkWarning(text))96/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.97 warner(PytestBenchmarkWarning(text))98/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.99 warner(PytestBenchmarkWarning(text))100============================= test session starts ==============================101platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0102benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)103rootdir: /private/var/tb/7/scratch/eddb5c39692427aa/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [861 items]112113...........sss.................s........ssssssss........................ [ 8%]114......ssssssss...............................s.......................... [ 16%]115........................................................................ [ 25%]116........................................................................ [ 33%]117................sss..s.....................................s............ [ 41%]118........................................................................ [ 50%]119........................s......EEEEEEE.EEE.EEEEEEEEEEEEEE.EEEEEEEEEEEEEE [ 58%]120EEEEEEEEEEEEEEEEE.EEEEEE..EE.EEEEE.EEEE.EE.E...EE..sEEEEEEEEEEEEEEEEEEE. [ 66%]121EEEEEEE.E.EEEE.EEEEE.E....EEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEsEE.EEE [ 75%]122E.EEE.EEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEE..EEEE........EEEEEEEE [ 83%]123EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]124EEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]125==================================== ERRORS ====================================126______________ ERROR at setup of test_anonymous_sees_public_only _______________127[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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_replace_schedules_preserves_last_run_for_unchanged_spec _200[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14201202self = <Coroutine test_replace_schedules_preserves_last_run_for_unchanged_spec>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')231dbname = 'schedules'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[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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_replace_schedules_tolerates_duplicate_effect_names ___330[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14331332self = <Coroutine test_replace_schedules_tolerates_duplicate_effect_names>333334 def setup(self) -> None:335 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"336 if runner_fixture_id not in self.fixturenames:337 self.fixturenames.append(runner_fixture_id)338 # When loop factories are configured, resolve the loop factory339 # fixture early so that a factory variant change cascades cache340 # invalidation before any async fixture checks its cache.341 hook_caller = self.config.hook.pytest_asyncio_loop_factories342 if hook_caller.get_hookimpls():343 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)344> return super().setup()345 ^^^^^^^^^^^^^^^346347/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 348_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349nixbot/tests/conftest.py:33: in postgres_dsn350 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:351 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^352/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__353 return next(self.gen)354 ^^^^^^^^^^^^^^355_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 356357tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')358dbname = 'schedules'359360 @contextlib.contextmanager361 def ephemeral_postgres(362 tmp_path_factory: pytest.TempPathFactory, dbname: str363 ) -> Iterator[str]:364 """Throwaway Postgres on a unix socket with migrations applied."""365 datadir = tmp_path_factory.mktemp("pgdata")366 sockdir = tmp_path_factory.mktemp("pgsock")367 subprocess.run( # noqa: S603368 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],369 check=True,370 capture_output=True,371 )372 proc = subprocess.Popen( # noqa: S603373 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],374 stdout=subprocess.DEVNULL,375 stderr=subprocess.DEVNULL,376 )377 try:378 deadline = time.monotonic() + 30379 while (380 subprocess.run( # noqa: S603381 ["pg_isready", "-h", str(sockdir), "-U", "test"],382 check=False,383 capture_output=True,384 ).returncode385 != 0386 ):387 # The socket appears before recovery finishes; createdb would388 # fail with "the database system is starting up".389 if time.monotonic() > deadline:390 msg = "postgres did not start"391> raise RuntimeError(msg)392E RuntimeError: postgres did not start393394nixbot/tests/support.py:319: RuntimeError395_____________ ERROR at setup of test_authorized_user_sees_private ______________396[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14397398request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>399tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')400401 @pytest.fixture(scope="module")402 def postgres_dsn(403 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory404 ) -> Iterator[str]:405 if shutil.which("initdb") is None:406 pytest.skip("postgresql not available")407 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")408> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:409 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^410411nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')419dbname = 'visibility'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[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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_store_roundtrip_and_due ________________518[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14519520self = <Coroutine test_store_roundtrip_and_due>521522 def setup(self) -> None:523 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"524 if runner_fixture_id not in self.fixturenames:525 self.fixturenames.append(runner_fixture_id)526 # When loop factories are configured, resolve the loop factory527 # fixture early so that a factory variant change cascades cache528 # invalidation before any async fixture checks its cache.529 hook_caller = self.config.hook.pytest_asyncio_loop_factories530 if hook_caller.get_hookimpls():531 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)532> return super().setup()533 ^^^^^^^^^^^^^^^534535/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 536_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 537nixbot/tests/conftest.py:33: in postgres_dsn538 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:539 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^540/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__541 return next(self.gen)542 ^^^^^^^^^^^^^^543_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 544545tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')546dbname = 'schedules'547548 @contextlib.contextmanager549 def ephemeral_postgres(550 tmp_path_factory: pytest.TempPathFactory, dbname: str551 ) -> Iterator[str]:552 """Throwaway Postgres on a unix socket with migrations applied."""553 datadir = tmp_path_factory.mktemp("pgdata")554 sockdir = tmp_path_factory.mktemp("pgsock")555 subprocess.run( # noqa: S603556 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],557 check=True,558 capture_output=True,559 )560 proc = subprocess.Popen( # noqa: S603561 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],562 stdout=subprocess.DEVNULL,563 stderr=subprocess.DEVNULL,564 )565 try:566 deadline = time.monotonic() + 30567 while (568 subprocess.run( # noqa: S603569 ["pg_isready", "-h", str(sockdir), "-U", "test"],570 check=False,571 capture_output=True,572 ).returncode573 != 0574 ):575 # The socket appears before recovery finishes; createdb would576 # fail with "the database system is starting up".577 if time.monotonic() > deadline:578 msg = "postgres did not start"579> raise RuntimeError(msg)580E RuntimeError: postgres did not start581582nixbot/tests/support.py:319: RuntimeError583_______ ERROR at setup of test_admin_sees_disabled_repos_without_search ________584[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14585586request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>587tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')588589 @pytest.fixture(scope="module")590 def postgres_dsn(591 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory592 ) -> Iterator[str]:593 if shutil.which("initdb") is None:594 pytest.skip("postgresql not available")595 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")596> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:597 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^598599nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')607dbname = 'visibility'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[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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_due_effects_window_and_bad_spec ____________706[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14707708self = <Coroutine test_due_effects_window_and_bad_spec>709710 def setup(self) -> None:711 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"712 if runner_fixture_id not in self.fixturenames:713 self.fixturenames.append(runner_fixture_id)714 # When loop factories are configured, resolve the loop factory715 # fixture early so that a factory variant change cascades cache716 # invalidation before any async fixture checks its cache.717 hook_caller = self.config.hook.pytest_asyncio_loop_factories718 if hook_caller.get_hookimpls():719 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)720> return super().setup()721 ^^^^^^^^^^^^^^^722723/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 724_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 725nixbot/tests/conftest.py:33: in postgres_dsn726 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:727 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^728/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__729 return next(self.gen)730 ^^^^^^^^^^^^^^731_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 732733tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')734dbname = 'schedules'735736 @contextlib.contextmanager737 def ephemeral_postgres(738 tmp_path_factory: pytest.TempPathFactory, dbname: str739 ) -> Iterator[str]:740 """Throwaway Postgres on a unix socket with migrations applied."""741 datadir = tmp_path_factory.mktemp("pgdata")742 sockdir = tmp_path_factory.mktemp("pgsock")743 subprocess.run( # noqa: S603744 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],745 check=True,746 capture_output=True,747 )748 proc = subprocess.Popen( # noqa: S603749 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],750 stdout=subprocess.DEVNULL,751 stderr=subprocess.DEVNULL,752 )753 try:754 deadline = time.monotonic() + 30755 while (756 subprocess.run( # noqa: S603757 ["pg_isready", "-h", str(sockdir), "-U", "test"],758 check=False,759 capture_output=True,760 ).returncode761 != 0762 ):763 # The socket appears before recovery finishes; createdb would764 # fail with "the database system is starting up".765 if time.monotonic() > deadline:766 msg = "postgres did not start"767> raise RuntimeError(msg)768E RuntimeError: postgres did not start769770nixbot/tests/support.py:319: RuntimeError771________________ ERROR at setup of test_api_token_sees_private _________________772[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14773774request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>775tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')776777 @pytest.fixture(scope="module")778 def postgres_dsn(779 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory780 ) -> Iterator[str]:781 if shutil.which("initdb") is None:782 pytest.skip("postgresql not available")783 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")784> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:785 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^786787nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')795dbname = 'visibility'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_run_recording_and_overview _______________833[gw22] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14834835self = <Coroutine test_run_recording_and_overview>836837 def setup(self) -> None:838 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"839 if runner_fixture_id not in self.fixturenames:840 self.fixturenames.append(runner_fixture_id)841 # When loop factories are configured, resolve the loop factory842 # fixture early so that a factory variant change cascades cache843 # invalidation before any async fixture checks its cache.844 hook_caller = self.config.hook.pytest_asyncio_loop_factories845 if hook_caller.get_hookimpls():846 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)847> return super().setup()848 ^^^^^^^^^^^^^^^849850/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 851_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 852nixbot/tests/conftest.py:33: in postgres_dsn853 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:854 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^855/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__856 return next(self.gen)857 ^^^^^^^^^^^^^^858_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 859860tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw22'), _retention_count=3, _retention_policy='all')861dbname = 'schedules'862863 @contextlib.contextmanager864 def ephemeral_postgres(865 tmp_path_factory: pytest.TempPathFactory, dbname: str866 ) -> Iterator[str]:867 """Throwaway Postgres on a unix socket with migrations applied."""868 datadir = tmp_path_factory.mktemp("pgdata")869 sockdir = tmp_path_factory.mktemp("pgsock")870 subprocess.run( # noqa: S603871 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],872 check=True,873 capture_output=True,874 )875 proc = subprocess.Popen( # noqa: S603876 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],877 stdout=subprocess.DEVNULL,878 stderr=subprocess.DEVNULL,879 )880 try:881 deadline = time.monotonic() + 30882 while (883 subprocess.run( # noqa: S603884 ["pg_isready", "-h", str(sockdir), "-U", "test"],885 check=False,886 capture_output=True,887 ).returncode888 != 0889 ):890 # The socket appears before recovery finishes; createdb would891 # fail with "the database system is starting up".892 if time.monotonic() > deadline:893 msg = "postgres did not start"894> raise RuntimeError(msg)895E RuntimeError: postgres did not start896897nixbot/tests/support.py:319: RuntimeError898_____________ ERROR at setup of test_admin_api_token_sees_private ______________899[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14900901request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>902tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')903904 @pytest.fixture(scope="module")905 def postgres_dsn(906 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory907 ) -> Iterator[str]:908 if shutil.which("initdb") is None:909 pytest.skip("postgresql not available")910 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")911> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:912 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^913914nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')922dbname = 'visibility'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[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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[gw13] 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _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_fetch_errors_are_not_cached ______________1082[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410831084request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1085tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')10861087 @pytest.fixture(scope="module")1088 def postgres_dsn(1089 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1090 ) -> Iterator[str]:1091 if shutil.which("initdb") is None:1092 pytest.skip("postgresql not available")1093 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1094> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1095 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10961097nixbot/tests/conftest.py:33: 1098_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1099/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1100 return next(self.gen)1101 ^^^^^^^^^^^^^^1102_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11031104tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1105dbname = 'visibility'11061107 @contextlib.contextmanager1108 def ephemeral_postgres(1109 tmp_path_factory: pytest.TempPathFactory, dbname: str1110 ) -> Iterator[str]:1111 """Throwaway Postgres on a unix socket with migrations applied."""1112 datadir = tmp_path_factory.mktemp("pgdata")1113 sockdir = tmp_path_factory.mktemp("pgsock")1114 subprocess.run( # noqa: S6031115 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1116 check=True,1117 capture_output=True,1118 )1119 proc = subprocess.Popen( # noqa: S6031120 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1121 stdout=subprocess.DEVNULL,1122 stderr=subprocess.DEVNULL,1123 )1124 try:1125 deadline = time.monotonic() + 301126 while (1127 subprocess.run( # noqa: S6031128 ["pg_isready", "-h", str(sockdir), "-U", "test"],1129 check=False,1130 capture_output=True,1131 ).returncode1132 != 01133 ):1134 # The socket appears before recovery finishes; createdb would1135 # fail with "the database system is starting up".1136 if time.monotonic() > deadline:1137 msg = "postgres did not start"1138> raise RuntimeError(msg)1139E RuntimeError: postgres did not start11401141nixbot/tests/support.py:319: RuntimeError1142_________ ERROR at setup of test_project_store_sync_and_legacy_import __________1143[gw6] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411441145self = <Coroutine test_project_store_sync_and_legacy_import>11461147 def setup(self) -> None:1148 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1149 if runner_fixture_id not in self.fixturenames:1150 self.fixturenames.append(runner_fixture_id)1151 # When loop factories are configured, resolve the loop factory1152 # fixture early so that a factory variant change cascades cache1153 # invalidation before any async fixture checks its cache.1154 hook_caller = self.config.hook.pytest_asyncio_loop_factories1155 if hook_caller.get_hookimpls():1156 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1157> return super().setup()1158 ^^^^^^^^^^^^^^^11591160/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1161_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1162/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1163 return (yield)1164 ^^^^^1165nixbot/tests/conftest.py:33: in postgres_dsn1166 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1167 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1168/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1169 return next(self.gen)1170 ^^^^^^^^^^^^^^1171_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11721173tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw6'), _retention_count=3, _retention_policy='all')1174dbname = 'forge'11751176 @contextlib.contextmanager1177 def ephemeral_postgres(1178 tmp_path_factory: pytest.TempPathFactory, dbname: str1179 ) -> Iterator[str]:1180 """Throwaway Postgres on a unix socket with migrations applied."""1181 datadir = tmp_path_factory.mktemp("pgdata")1182 sockdir = tmp_path_factory.mktemp("pgsock")1183 subprocess.run( # noqa: S6031184 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1185 check=True,1186 capture_output=True,1187 )1188 proc = subprocess.Popen( # noqa: S6031189 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1190 stdout=subprocess.DEVNULL,1191 stderr=subprocess.DEVNULL,1192 )1193 try:1194 deadline = time.monotonic() + 301195 while (1196 subprocess.run( # noqa: S6031197 ["pg_isready", "-h", str(sockdir), "-U", "test"],1198 check=False,1199 capture_output=True,1200 ).returncode1201 != 01202 ):1203 # The socket appears before recovery finishes; createdb would1204 # fail with "the database system is starting up".1205 if time.monotonic() > deadline:1206 msg = "postgres did not start"1207> raise RuntimeError(msg)1208E RuntimeError: postgres did not start12091210nixbot/tests/support.py:319: RuntimeError1211____________________ ERROR at setup of test_full_lifecycle _____________________1212[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412131214self = <Coroutine test_full_lifecycle>12151216 def setup(self) -> None:1217 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1218 if runner_fixture_id not in self.fixturenames:1219 self.fixturenames.append(runner_fixture_id)1220 # When loop factories are configured, resolve the loop factory1221 # fixture early so that a factory variant change cascades cache1222 # invalidation before any async fixture checks its cache.1223 hook_caller = self.config.hook.pytest_asyncio_loop_factories1224 if hook_caller.get_hookimpls():1225 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1226> return super().setup()1227 ^^^^^^^^^^^^^^^12281229/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1230_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1231/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1232 return (yield)1233 ^^^^^1234nixbot/tests/conftest.py:33: in postgres_dsn1235 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1236 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1237/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1238 return next(self.gen)1239 ^^^^^^^^^^^^^^1240_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12411242tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1243dbname = 'orchestrator'12441245 @contextlib.contextmanager1246 def ephemeral_postgres(1247 tmp_path_factory: pytest.TempPathFactory, dbname: str1248 ) -> Iterator[str]:1249 """Throwaway Postgres on a unix socket with migrations applied."""1250 datadir = tmp_path_factory.mktemp("pgdata")1251 sockdir = tmp_path_factory.mktemp("pgsock")1252 subprocess.run( # noqa: S6031253 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1254 check=True,1255 capture_output=True,1256 )1257 proc = subprocess.Popen( # noqa: S6031258 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1259 stdout=subprocess.DEVNULL,1260 stderr=subprocess.DEVNULL,1261 )1262 try:1263 deadline = time.monotonic() + 301264 while (1265 subprocess.run( # noqa: S6031266 ["pg_isready", "-h", str(sockdir), "-U", "test"],1267 check=False,1268 capture_output=True,1269 ).returncode1270 != 01271 ):1272 # The socket appears before recovery finishes; createdb would1273 # fail with "the database system is starting up".1274 if time.monotonic() > deadline:1275 msg = "postgres did not start"1276> raise RuntimeError(msg)1277E RuntimeError: postgres did not start12781279nixbot/tests/support.py:319: RuntimeError1280________________ ERROR at setup of test_enqueue_dedupes_pending ________________1281[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412821283self = <Coroutine test_enqueue_dedupes_pending>12841285 def setup(self) -> None:1286 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1287 if runner_fixture_id not in self.fixturenames:1288 self.fixturenames.append(runner_fixture_id)1289 # When loop factories are configured, resolve the loop factory1290 # fixture early so that a factory variant change cascades cache1291 # invalidation before any async fixture checks its cache.1292 hook_caller = self.config.hook.pytest_asyncio_loop_factories1293 if hook_caller.get_hookimpls():1294 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1295> return super().setup()1296 ^^^^^^^^^^^^^^^12971298/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1299_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1300/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1301 return (yield)1302 ^^^^^1303nixbot/tests/conftest.py:33: in postgres_dsn1304 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1305 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1306/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1307 return next(self.gen)1308 ^^^^^^^^^^^^^^1309_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13101311tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1312dbname = 'work_queue'13131314 @contextlib.contextmanager1315 def ephemeral_postgres(1316 tmp_path_factory: pytest.TempPathFactory, dbname: str1317 ) -> Iterator[str]:1318 """Throwaway Postgres on a unix socket with migrations applied."""1319 datadir = tmp_path_factory.mktemp("pgdata")1320 sockdir = tmp_path_factory.mktemp("pgsock")1321 subprocess.run( # noqa: S6031322 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1323 check=True,1324 capture_output=True,1325 )1326 proc = subprocess.Popen( # noqa: S6031327 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1328 stdout=subprocess.DEVNULL,1329 stderr=subprocess.DEVNULL,1330 )1331 try:1332 deadline = time.monotonic() + 301333 while (1334 subprocess.run( # noqa: S6031335 ["pg_isready", "-h", str(sockdir), "-U", "test"],1336 check=False,1337 capture_output=True,1338 ).returncode1339 != 01340 ):1341 # The socket appears before recovery finishes; createdb would1342 # fail with "the database system is starting up".1343 if time.monotonic() > deadline:1344 msg = "postgres did not start"1345> raise RuntimeError(msg)1346E RuntimeError: postgres did not start13471348nixbot/tests/support.py:319: RuntimeError1349___________________ ERROR at setup of test_repos_and_builds ____________________1350[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413511352fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1353request = <SubRequest 'postgres_dsn' for <Function test_repos_and_builds>>13541355 @pytest.hookimpl(wrapper=True)1356 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1357 if (1358 fixturedef.argname == "event_loop_policy"1359 and fixturedef.func.__module__ != __name__1360 ):1361 warnings.warn(1362 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1363 )1364 asyncio_mode = _get_asyncio_mode(request.config)1365 if not _is_asyncio_fixture_function(fixturedef.func):1366 if asyncio_mode == Mode.STRICT:1367 # Ignore async fixtures without explicit asyncio mark in strict mode1368 # This applies to pytest_trio fixtures, for example1369 return (yield)1370 if not _is_coroutine_or_asyncgen(fixturedef.func):1371> return (yield)1372 ^^^^^13731374/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1375_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1376nixbot/tests/conftest.py:33: in postgres_dsn1377 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1378 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1379/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1380 return next(self.gen)1381 ^^^^^^^^^^^^^^1382_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13831384tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1385dbname = 'cli_api'13861387 @contextlib.contextmanager1388 def ephemeral_postgres(1389 tmp_path_factory: pytest.TempPathFactory, dbname: str1390 ) -> Iterator[str]:1391 """Throwaway Postgres on a unix socket with migrations applied."""1392 datadir = tmp_path_factory.mktemp("pgdata")1393 sockdir = tmp_path_factory.mktemp("pgsock")1394 subprocess.run( # noqa: S6031395 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1396 check=True,1397 capture_output=True,1398 )1399 proc = subprocess.Popen( # noqa: S6031400 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1401 stdout=subprocess.DEVNULL,1402 stderr=subprocess.DEVNULL,1403 )1404 try:1405 deadline = time.monotonic() + 301406 while (1407 subprocess.run( # noqa: S6031408 ["pg_isready", "-h", str(sockdir), "-U", "test"],1409 check=False,1410 capture_output=True,1411 ).returncode1412 != 01413 ):1414 # The socket appears before recovery finishes; createdb would1415 # fail with "the database system is starting up".1416 if time.monotonic() > deadline:1417 msg = "postgres did not start"1418> raise RuntimeError(msg)1419E RuntimeError: postgres did not start14201421nixbot/tests/support.py:319: RuntimeError1422_______ ERROR at setup of test_control_buttons_hidden_without_permission _______1423[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414241425fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1426request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>14271428 @pytest.hookimpl(wrapper=True)1429 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1430 if (1431 fixturedef.argname == "event_loop_policy"1432 and fixturedef.func.__module__ != __name__1433 ):1434 warnings.warn(1435 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1436 )1437 asyncio_mode = _get_asyncio_mode(request.config)1438 if not _is_asyncio_fixture_function(fixturedef.func):1439 if asyncio_mode == Mode.STRICT:1440 # Ignore async fixtures without explicit asyncio mark in strict mode1441 # This applies to pytest_trio fixtures, for example1442 return (yield)1443 if not _is_coroutine_or_asyncgen(fixturedef.func):1444> return (yield)1445 ^^^^^14461447/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1448_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1449nixbot/tests/conftest.py:33: in postgres_dsn1450 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1451 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1452/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1453 return next(self.gen)1454 ^^^^^^^^^^^^^^1455_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14561457tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1458dbname = 'control'14591460 @contextlib.contextmanager1461 def ephemeral_postgres(1462 tmp_path_factory: pytest.TempPathFactory, dbname: str1463 ) -> Iterator[str]:1464 """Throwaway Postgres on a unix socket with migrations applied."""1465 datadir = tmp_path_factory.mktemp("pgdata")1466 sockdir = tmp_path_factory.mktemp("pgsock")1467 subprocess.run( # noqa: S6031468 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1469 check=True,1470 capture_output=True,1471 )1472 proc = subprocess.Popen( # noqa: S6031473 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1474 stdout=subprocess.DEVNULL,1475 stderr=subprocess.DEVNULL,1476 )1477 try:1478 deadline = time.monotonic() + 301479 while (1480 subprocess.run( # noqa: S6031481 ["pg_isready", "-h", str(sockdir), "-U", "test"],1482 check=False,1483 capture_output=True,1484 ).returncode1485 != 01486 ):1487 # The socket appears before recovery finishes; createdb would1488 # fail with "the database system is starting up".1489 if time.monotonic() > deadline:1490 msg = "postgres did not start"1491> raise RuntimeError(msg)1492E RuntimeError: postgres did not start14931494nixbot/tests/support.py:319: RuntimeError1495_________________ ERROR at setup of test_migrations_idempotent _________________1496[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414971498self = <Coroutine test_migrations_idempotent>14991500 def setup(self) -> None:1501 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1502 if runner_fixture_id not in self.fixturenames:1503 self.fixturenames.append(runner_fixture_id)1504 # When loop factories are configured, resolve the loop factory1505 # fixture early so that a factory variant change cascades cache1506 # invalidation before any async fixture checks its cache.1507 hook_caller = self.config.hook.pytest_asyncio_loop_factories1508 if hook_caller.get_hookimpls():1509 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1510> return super().setup()1511 ^^^^^^^^^^^^^^^15121513/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1514_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1515/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1516 return (yield)1517 ^^^^^1518nixbot/tests/conftest.py:33: in postgres_dsn1519 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1520 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1521/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1522 return next(self.gen)1523 ^^^^^^^^^^^^^^1524_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15251526tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1527dbname = 'db'15281529 @contextlib.contextmanager1530 def ephemeral_postgres(1531 tmp_path_factory: pytest.TempPathFactory, dbname: str1532 ) -> Iterator[str]:1533 """Throwaway Postgres on a unix socket with migrations applied."""1534 datadir = tmp_path_factory.mktemp("pgdata")1535 sockdir = tmp_path_factory.mktemp("pgsock")1536 subprocess.run( # noqa: S6031537 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1538 check=True,1539 capture_output=True,1540 )1541 proc = subprocess.Popen( # noqa: S6031542 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1543 stdout=subprocess.DEVNULL,1544 stderr=subprocess.DEVNULL,1545 )1546 try:1547 deadline = time.monotonic() + 301548 while (1549 subprocess.run( # noqa: S6031550 ["pg_isready", "-h", str(sockdir), "-U", "test"],1551 check=False,1552 capture_output=True,1553 ).returncode1554 != 01555 ):1556 # The socket appears before recovery finishes; createdb would1557 # fail with "the database system is starting up".1558 if time.monotonic() > deadline:1559 msg = "postgres did not start"1560> raise RuntimeError(msg)1561E RuntimeError: postgres did not start15621563nixbot/tests/support.py:319: RuntimeError1564___________ ERROR at setup of test_resume_skips_terminal_attributes ____________1565[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415661567self = <Coroutine test_resume_skips_terminal_attributes>15681569 def setup(self) -> None:1570 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1571 if runner_fixture_id not in self.fixturenames:1572 self.fixturenames.append(runner_fixture_id)1573 # When loop factories are configured, resolve the loop factory1574 # fixture early so that a factory variant change cascades cache1575 # invalidation before any async fixture checks its cache.1576 hook_caller = self.config.hook.pytest_asyncio_loop_factories1577 if hook_caller.get_hookimpls():1578 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1579> return super().setup()1580 ^^^^^^^^^^^^^^^15811582/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1583_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1584/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1585 return (yield)1586 ^^^^^1587nixbot/tests/conftest.py:33: in postgres_dsn1588 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1589 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1590/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1591 return next(self.gen)1592 ^^^^^^^^^^^^^^1593_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15941595tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1596dbname = 'recovery'15971598 @contextlib.contextmanager1599 def ephemeral_postgres(1600 tmp_path_factory: pytest.TempPathFactory, dbname: str1601 ) -> Iterator[str]:1602 """Throwaway Postgres on a unix socket with migrations applied."""1603 datadir = tmp_path_factory.mktemp("pgdata")1604 sockdir = tmp_path_factory.mktemp("pgsock")1605 subprocess.run( # noqa: S6031606 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1607 check=True,1608 capture_output=True,1609 )1610 proc = subprocess.Popen( # noqa: S6031611 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1612 stdout=subprocess.DEVNULL,1613 stderr=subprocess.DEVNULL,1614 )1615 try:1616 deadline = time.monotonic() + 301617 while (1618 subprocess.run( # noqa: S6031619 ["pg_isready", "-h", str(sockdir), "-U", "test"],1620 check=False,1621 capture_output=True,1622 ).returncode1623 != 01624 ):1625 # The socket appears before recovery finishes; createdb would1626 # fail with "the database system is starting up".1627 if time.monotonic() > deadline:1628 msg = "postgres did not start"1629> raise RuntimeError(msg)1630E RuntimeError: postgres did not start16311632nixbot/tests/support.py:319: RuntimeError1633___________________ ERROR at setup of test_access_cache_used ___________________1634[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416351636request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1637tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')16381639 @pytest.fixture(scope="module")1640 def postgres_dsn(1641 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1642 ) -> Iterator[str]:1643 if shutil.which("initdb") is None:1644 pytest.skip("postgresql not available")1645 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1646> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1647 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16481649nixbot/tests/conftest.py:33: 1650_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1651/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1652 return next(self.gen)1653 ^^^^^^^^^^^^^^1654_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16551656tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')1657dbname = 'visibility'16581659 @contextlib.contextmanager1660 def ephemeral_postgres(1661 tmp_path_factory: pytest.TempPathFactory, dbname: str1662 ) -> Iterator[str]:1663 """Throwaway Postgres on a unix socket with migrations applied."""1664 datadir = tmp_path_factory.mktemp("pgdata")1665 sockdir = tmp_path_factory.mktemp("pgsock")1666 subprocess.run( # noqa: S6031667 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1668 check=True,1669 capture_output=True,1670 )1671 proc = subprocess.Popen( # noqa: S6031672 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1673 stdout=subprocess.DEVNULL,1674 stderr=subprocess.DEVNULL,1675 )1676 try:1677 deadline = time.monotonic() + 301678 while (1679 subprocess.run( # noqa: S6031680 ["pg_isready", "-h", str(sockdir), "-U", "test"],1681 check=False,1682 capture_output=True,1683 ).returncode1684 != 01685 ):1686 # The socket appears before recovery finishes; createdb would1687 # fail with "the database system is starting up".1688 if time.monotonic() > deadline:1689 msg = "postgres did not start"1690> raise RuntimeError(msg)1691E RuntimeError: postgres did not start16921693nixbot/tests/support.py:319: RuntimeError1694___________________ ERROR at setup of test_html_error_pages ____________________1695[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416961697fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1698request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>16991700 @pytest.hookimpl(wrapper=True)1701 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1702 if (1703 fixturedef.argname == "event_loop_policy"1704 and fixturedef.func.__module__ != __name__1705 ):1706 warnings.warn(1707 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1708 )1709 asyncio_mode = _get_asyncio_mode(request.config)1710 if not _is_asyncio_fixture_function(fixturedef.func):1711 if asyncio_mode == Mode.STRICT:1712 # Ignore async fixtures without explicit asyncio mark in strict mode1713 # This applies to pytest_trio fixtures, for example1714 return (yield)1715 if not _is_coroutine_or_asyncgen(fixturedef.func):1716> return (yield)1717 ^^^^^17181719/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1720_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1721nixbot/tests/conftest.py:33: in postgres_dsn1722 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1723 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1724/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1725 return next(self.gen)1726 ^^^^^^^^^^^^^^1727_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17281729tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1730dbname = 'web'17311732 @contextlib.contextmanager1733 def ephemeral_postgres(1734 tmp_path_factory: pytest.TempPathFactory, dbname: str1735 ) -> Iterator[str]:1736 """Throwaway Postgres on a unix socket with migrations applied."""1737 datadir = tmp_path_factory.mktemp("pgdata")1738 sockdir = tmp_path_factory.mktemp("pgsock")1739 subprocess.run( # noqa: S6031740 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1741 check=True,1742 capture_output=True,1743 )1744 proc = subprocess.Popen( # noqa: S6031745 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1746 stdout=subprocess.DEVNULL,1747 stderr=subprocess.DEVNULL,1748 )1749 try:1750 deadline = time.monotonic() + 301751 while (1752 subprocess.run( # noqa: S6031753 ["pg_isready", "-h", str(sockdir), "-U", "test"],1754 check=False,1755 capture_output=True,1756 ).returncode1757 != 01758 ):1759 # The socket appears before recovery finishes; createdb would1760 # fail with "the database system is starting up".1761 if time.monotonic() > deadline:1762 msg = "postgres did not start"1763> raise RuntimeError(msg)1764E RuntimeError: postgres did not start17651766nixbot/tests/support.py:319: RuntimeError1767_______ ERROR at setup of test_scheduled_worktree_id_distinct_per_effect _______1768[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417691770fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1771request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>17721773 @pytest.hookimpl(wrapper=True)1774 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1775 if (1776 fixturedef.argname == "event_loop_policy"1777 and fixturedef.func.__module__ != __name__1778 ):1779 warnings.warn(1780 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1781 )1782 asyncio_mode = _get_asyncio_mode(request.config)1783 if not _is_asyncio_fixture_function(fixturedef.func):1784 if asyncio_mode == Mode.STRICT:1785 # Ignore async fixtures without explicit asyncio mark in strict mode1786 # This applies to pytest_trio fixtures, for example1787 return (yield)1788 if not _is_coroutine_or_asyncgen(fixturedef.func):1789> return (yield)1790 ^^^^^17911792/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1793_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1794nixbot/tests/conftest.py:33: in postgres_dsn1795 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1796 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1797/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1798 return next(self.gen)1799 ^^^^^^^^^^^^^^1800_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18011802tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1803dbname = 'service'18041805 @contextlib.contextmanager1806 def ephemeral_postgres(1807 tmp_path_factory: pytest.TempPathFactory, dbname: str1808 ) -> Iterator[str]:1809 """Throwaway Postgres on a unix socket with migrations applied."""1810 datadir = tmp_path_factory.mktemp("pgdata")1811 sockdir = tmp_path_factory.mktemp("pgsock")1812 subprocess.run( # noqa: S6031813 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1814 check=True,1815 capture_output=True,1816 )1817 proc = subprocess.Popen( # noqa: S6031818 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1819 stdout=subprocess.DEVNULL,1820 stderr=subprocess.DEVNULL,1821 )1822 try:1823 deadline = time.monotonic() + 301824 while (1825 subprocess.run( # noqa: S6031826 ["pg_isready", "-h", str(sockdir), "-U", "test"],1827 check=False,1828 capture_output=True,1829 ).returncode1830 != 01831 ):1832 # The socket appears before recovery finishes; createdb would1833 # fail with "the database system is starting up".1834 if time.monotonic() > deadline:1835 msg = "postgres did not start"1836> raise RuntimeError(msg)1837E RuntimeError: postgres did not start18381839nixbot/tests/support.py:319: RuntimeError1840__________________ ERROR at setup of test_match_skip_and_run ___________________1841[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418421843self = <Coroutine test_match_skip_and_run>18441845 def setup(self) -> None:1846 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1847 if runner_fixture_id not in self.fixturenames:1848 self.fixturenames.append(runner_fixture_id)1849 # When loop factories are configured, resolve the loop factory1850 # fixture early so that a factory variant change cascades cache1851 # invalidation before any async fixture checks its cache.1852 hook_caller = self.config.hook.pytest_asyncio_loop_factories1853 if hook_caller.get_hookimpls():1854 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1855> return super().setup()1856 ^^^^^^^^^^^^^^^18571858/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1859_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1860/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1861 return (yield)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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1872dbname = 'deliver'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_repo_list_and_toggle __________________1910[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419111912fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1913request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>19141915 @pytest.hookimpl(wrapper=True)1916 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1917 if (1918 fixturedef.argname == "event_loop_policy"1919 and fixturedef.func.__module__ != __name__1920 ):1921 warnings.warn(1922 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1923 )1924 asyncio_mode = _get_asyncio_mode(request.config)1925 if not _is_asyncio_fixture_function(fixturedef.func):1926 if asyncio_mode == Mode.STRICT:1927 # Ignore async fixtures without explicit asyncio mark in strict mode1928 # This applies to pytest_trio fixtures, for example1929 return (yield)1930 if not _is_coroutine_or_asyncgen(fixturedef.func):1931> return (yield)1932 ^^^^^19331934/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1935_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1936nixbot/tests/conftest.py:33: in postgres_dsn1937 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1938 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1939/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1940 return next(self.gen)1941 ^^^^^^^^^^^^^^1942_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19431944tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...tch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1945dbname = 'cli'19461947 @contextlib.contextmanager1948 def ephemeral_postgres(1949 tmp_path_factory: pytest.TempPathFactory, dbname: str1950 ) -> Iterator[str]:1951 """Throwaway Postgres on a unix socket with migrations applied."""1952 datadir = tmp_path_factory.mktemp("pgdata")1953 sockdir = tmp_path_factory.mktemp("pgsock")1954 subprocess.run( # noqa: S6031955 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1956 check=True,1957 capture_output=True,1958 )1959 proc = subprocess.Popen( # noqa: S6031960 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1961 stdout=subprocess.DEVNULL,1962 stderr=subprocess.DEVNULL,1963 )1964 try:1965 deadline = time.monotonic() + 301966 while (1967 subprocess.run( # noqa: S6031968 ["pg_isready", "-h", str(sockdir), "-U", "test"],1969 check=False,1970 capture_output=True,1971 ).returncode1972 != 01973 ):1974 # The socket appears before recovery finishes; createdb would1975 # fail with "the database system is starting up".1976 if time.monotonic() > deadline:1977 msg = "postgres did not start"1978> raise RuntimeError(msg)1979E RuntimeError: postgres did not start19801981nixbot/tests/support.py:319: RuntimeError1982______________ ERROR at setup of test_api_strips_ansi_from_errors ______________1983[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419841985request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1986tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')19871988 @pytest.fixture(scope="module")1989 def postgres_dsn(1990 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1991 ) -> Iterator[str]:1992 if shutil.which("initdb") is None:1993 pytest.skip("postgresql not available")1994 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1995> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1996 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19971998nixbot/tests/conftest.py:33: 1999_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2000/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__loading 18,247 hidden lines…
20248 # fail with "the database system is starting up".20249 if time.monotonic() > deadline:20250 msg = "postgres did not start"20251> raise RuntimeError(msg)20252E RuntimeError: postgres did not start2025320254nixbot/tests/support.py:319: RuntimeError20255___________ ERROR at setup of test_scheduled_run_viewer_renders_ansi ___________20256[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142025720258request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20259tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2026020261 @pytest.fixture(scope="module")20262 def postgres_dsn(20263 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20264 ) -> Iterator[str]:20265 if shutil.which("initdb") is None:20266 pytest.skip("postgresql not available")20267 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20268> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20269 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2027020271nixbot/tests/conftest.py:33: 20272_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20273/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20274 return next(self.gen)20275 ^^^^^^^^^^^^^^20276_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2027720278tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20279dbname = 'web'2028020281 @contextlib.contextmanager20282 def ephemeral_postgres(20283 tmp_path_factory: pytest.TempPathFactory, dbname: str20284 ) -> Iterator[str]:20285 """Throwaway Postgres on a unix socket with migrations applied."""20286 datadir = tmp_path_factory.mktemp("pgdata")20287 sockdir = tmp_path_factory.mktemp("pgsock")20288 subprocess.run( # noqa: S60320289 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20290 check=True,20291 capture_output=True,20292 )20293 proc = subprocess.Popen( # noqa: S60320294 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20295 stdout=subprocess.DEVNULL,20296 stderr=subprocess.DEVNULL,20297 )20298 try:20299 deadline = time.monotonic() + 3020300 while (20301 subprocess.run( # noqa: S60320302 ["pg_isready", "-h", str(sockdir), "-U", "test"],20303 check=False,20304 capture_output=True,20305 ).returncode20306 != 020307 ):20308 # The socket appears before recovery finishes; createdb would20309 # fail with "the database system is starting up".20310 if time.monotonic() > deadline:20311 msg = "postgres did not start"20312> raise RuntimeError(msg)20313E RuntimeError: postgres did not start2031420315nixbot/tests/support.py:319: RuntimeError20316________ ERROR at setup of test_scheduled_run_viewer_cross_project_404 _________20317[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142031820319request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20320tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2032120322 @pytest.fixture(scope="module")20323 def postgres_dsn(20324 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20325 ) -> Iterator[str]:20326 if shutil.which("initdb") is None:20327 pytest.skip("postgresql not available")20328 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20329> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20330 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2033120332nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20340dbname = 'web'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_concurrent_effects_use_independent_worktrees ______20378[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142037920380self = <Coroutine test_concurrent_effects_use_independent_worktrees>2038120382 def setup(self) -> None:20383 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20384 if runner_fixture_id not in self.fixturenames:20385 self.fixturenames.append(runner_fixture_id)20386 # When loop factories are configured, resolve the loop factory20387 # fixture early so that a factory variant change cascades cache20388 # invalidation before any async fixture checks its cache.20389 hook_caller = self.config.hook.pytest_asyncio_loop_factories20390 if hook_caller.get_hookimpls():20391 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20392> return super().setup()20393 ^^^^^^^^^^^^^^^2039420395/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20396_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20397nixbot/tests/conftest.py:33: in postgres_dsn20398 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20399 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20400/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20401 return next(self.gen)20402 ^^^^^^^^^^^^^^20403_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2040420405tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20406dbname = 'orchestrator'2040720408 @contextlib.contextmanager20409 def ephemeral_postgres(20410 tmp_path_factory: pytest.TempPathFactory, dbname: str20411 ) -> Iterator[str]:20412 """Throwaway Postgres on a unix socket with migrations applied."""20413 datadir = tmp_path_factory.mktemp("pgdata")20414 sockdir = tmp_path_factory.mktemp("pgsock")20415 subprocess.run( # noqa: S60320416 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20417 check=True,20418 capture_output=True,20419 )20420 proc = subprocess.Popen( # noqa: S60320421 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20422 stdout=subprocess.DEVNULL,20423 stderr=subprocess.DEVNULL,20424 )20425 try:20426 deadline = time.monotonic() + 3020427 while (20428 subprocess.run( # noqa: S60320429 ["pg_isready", "-h", str(sockdir), "-U", "test"],20430 check=False,20431 capture_output=True,20432 ).returncode20433 != 020434 ):20435 # The socket appears before recovery finishes; createdb would20436 # fail with "the database system is starting up".20437 if time.monotonic() > deadline:20438 msg = "postgres did not start"20439> raise RuntimeError(msg)20440E RuntimeError: postgres did not start2044120442nixbot/tests/support.py:319: RuntimeError20443_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______20444[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142044520446request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20447tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2044820449 @pytest.fixture(scope="module")20450 def postgres_dsn(20451 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20452 ) -> Iterator[str]:20453 if shutil.which("initdb") is None:20454 pytest.skip("postgresql not available")20455 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20456> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20457 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2045820459nixbot/tests/conftest.py:33: 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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20467dbname = 'web'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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_locked_effect_gets_shared_dedup_key __________20566[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142056720568self = <Coroutine test_locked_effect_gets_shared_dedup_key>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_effect_item_not_claimable_until_dep_settles ______20754[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142075520756self = <Coroutine test_effect_item_not_claimable_until_dep_settles>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_scheduled_run_stream_replays_history __________20942[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142094320944request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20945tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2094620947 @pytest.fixture(scope="module")20948 def postgres_dsn(20949 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20950 ) -> Iterator[str]:20951 if shutil.which("initdb") is None:20952 pytest.skip("postgresql not available")20953 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20954> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20955 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2095620957nixbot/tests/conftest.py:33: 20958_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20959/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20960 return next(self.gen)20961 ^^^^^^^^^^^^^^20962_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2096320964tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20965dbname = 'web'2096620967 @contextlib.contextmanager20968 def ephemeral_postgres(20969 tmp_path_factory: pytest.TempPathFactory, dbname: str20970 ) -> Iterator[str]:20971 """Throwaway Postgres on a unix socket with migrations applied."""20972 datadir = tmp_path_factory.mktemp("pgdata")20973 sockdir = tmp_path_factory.mktemp("pgsock")20974 subprocess.run( # noqa: S60320975 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20976 check=True,20977 capture_output=True,20978 )20979 proc = subprocess.Popen( # noqa: S60320980 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20981 stdout=subprocess.DEVNULL,20982 stderr=subprocess.DEVNULL,20983 )20984 try:20985 deadline = time.monotonic() + 3020986 while (20987 subprocess.run( # noqa: S60320988 ["pg_isready", "-h", str(sockdir), "-U", "test"],20989 check=False,20990 capture_output=True,20991 ).returncode20992 != 020993 ):20994 # The socket appears before recovery finishes; createdb would20995 # fail with "the database system is starting up".20996 if time.monotonic() > deadline:20997 msg = "postgres did not start"20998> raise RuntimeError(msg)20999E RuntimeError: postgres did not start2100021001nixbot/tests/support.py:319: RuntimeError21002__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21003[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142100421005self = <Coroutine test_effect_dep_failure_skips_dependent>2100621007 def setup(self) -> None:21008 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21009 if runner_fixture_id not in self.fixturenames:21010 self.fixturenames.append(runner_fixture_id)21011 # When loop factories are configured, resolve the loop factory21012 # fixture early so that a factory variant change cascades cache21013 # invalidation before any async fixture checks its cache.21014 hook_caller = self.config.hook.pytest_asyncio_loop_factories21015 if hook_caller.get_hookimpls():21016 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21017> return super().setup()21018 ^^^^^^^^^^^^^^^2101921020/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21021_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21022nixbot/tests/conftest.py:33: in postgres_dsn21023 with ephemeral_postgres(tmp_path_factory, dbname) as dsn: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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21031dbname = 'orchestrator'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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_lock_serializes_builds_without_interleaving ______21130[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142113121132self = <Coroutine test_lock_serializes_builds_without_interleaving>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_api_log_toc_flat_log_fallback _____________21257[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142125821259request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21260tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2126121262 @pytest.fixture(scope="module")21263 def postgres_dsn(21264 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21265 ) -> Iterator[str]:21266 if shutil.which("initdb") is None:21267 pytest.skip("postgresql not available")21268 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21269> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21270 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2127121272nixbot/tests/conftest.py:33: 21273_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21274/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21275 return next(self.gen)21276 ^^^^^^^^^^^^^^21277_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2127821279tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21280dbname = 'web'2128121282 @contextlib.contextmanager21283 def ephemeral_postgres(21284 tmp_path_factory: pytest.TempPathFactory, dbname: str21285 ) -> Iterator[str]:21286 """Throwaway Postgres on a unix socket with migrations applied."""21287 datadir = tmp_path_factory.mktemp("pgdata")21288 sockdir = tmp_path_factory.mktemp("pgsock")21289 subprocess.run( # noqa: S60321290 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21291 check=True,21292 capture_output=True,21293 )21294 proc = subprocess.Popen( # noqa: S60321295 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21296 stdout=subprocess.DEVNULL,21297 stderr=subprocess.DEVNULL,21298 )21299 try:21300 deadline = time.monotonic() + 3021301 while (21302 subprocess.run( # noqa: S60321303 ["pg_isready", "-h", str(sockdir), "-U", "test"],21304 check=False,21305 capture_output=True,21306 ).returncode21307 != 021308 ):21309 # The socket appears before recovery finishes; createdb would21310 # fail with "the database system is starting up".21311 if time.monotonic() > deadline:21312 msg = "postgres did not start"21313> raise RuntimeError(msg)21314E RuntimeError: postgres did not start2131521316nixbot/tests/support.py:319: RuntimeError21317___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21318[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142131921320self = <Coroutine test_effect_dep_cycle_fails_discovery>2132121322 def setup(self) -> None:21323 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21324 if runner_fixture_id not in self.fixturenames:21325 self.fixturenames.append(runner_fixture_id)21326 # When loop factories are configured, resolve the loop factory21327 # fixture early so that a factory variant change cascades cache21328 # invalidation before any async fixture checks its cache.21329 hook_caller = self.config.hook.pytest_asyncio_loop_factories21330 if hook_caller.get_hookimpls():21331 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21332> return super().setup()21333 ^^^^^^^^^^^^^^^2133421335/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21336_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21337nixbot/tests/conftest.py:33: in postgres_dsn21338 with ephemeral_postgres(tmp_path_factory, dbname) as dsn: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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21346dbname = 'orchestrator'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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_failed_effect_reports_failure_status __________21445[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144621447self = <Coroutine test_failed_effect_reports_failure_status>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_post_process_error_does_not_wedge_build ________21572[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157321574self = <Coroutine test_post_process_error_does_not_wedge_build>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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_unexpected_eval_path_error_settles_build ________21638[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142163921640self = <Coroutine test_unexpected_eval_path_error_settles_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/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/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_reuse_empty_succeeded_build_posts_eval_success _____21704[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170521706self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2170721708 def setup(self) -> None:21709 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21710 if runner_fixture_id not in self.fixturenames:21711 self.fixturenames.append(runner_fixture_id)21712 # When loop factories are configured, resolve the loop factory21713 # fixture early so that a factory variant change cascades cache21714 # invalidation before any async fixture checks its cache.21715 hook_caller = self.config.hook.pytest_asyncio_loop_factories21716 if hook_caller.get_hookimpls():21717 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21718> return super().setup()21719 ^^^^^^^^^^^^^^^2172021721/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21722_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21723nixbot/tests/conftest.py:33: in postgres_dsn21724 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21725 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21726/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21727 return next(self.gen)21728 ^^^^^^^^^^^^^^21729_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173021731tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21732dbname = 'orchestrator'2173321734 @contextlib.contextmanager21735 def ephemeral_postgres(21736 tmp_path_factory: pytest.TempPathFactory, dbname: str21737 ) -> Iterator[str]:21738 """Throwaway Postgres on a unix socket with migrations applied."""21739 datadir = tmp_path_factory.mktemp("pgdata")21740 sockdir = tmp_path_factory.mktemp("pgsock")21741 subprocess.run( # noqa: S60321742 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21743 check=True,21744 capture_output=True,21745 )21746 proc = subprocess.Popen( # noqa: S60321747 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21748 stdout=subprocess.DEVNULL,21749 stderr=subprocess.DEVNULL,21750 )21751 try:21752 deadline = time.monotonic() + 3021753 while (21754 subprocess.run( # noqa: S60321755 ["pg_isready", "-h", str(sockdir), "-U", "test"],21756 check=False,21757 capture_output=True,21758 ).returncode21759 != 021760 ):21761 # The socket appears before recovery finishes; createdb would21762 # fail with "the database system is starting up".21763 if time.monotonic() > deadline:21764 msg = "postgres did not start"21765> raise RuntimeError(msg)21766E RuntimeError: postgres did not start2176721768nixbot/tests/support.py:319: RuntimeError21769__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __21770[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177121772self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2177321774 def setup(self) -> None:21775 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21776 if runner_fixture_id not in self.fixturenames:21777 self.fixturenames.append(runner_fixture_id)21778 # When loop factories are configured, resolve the loop factory21779 # fixture early so that a factory variant change cascades cache21780 # invalidation before any async fixture checks its cache.21781 hook_caller = self.config.hook.pytest_asyncio_loop_factories21782 if hook_caller.get_hookimpls():21783 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21784> return super().setup()21785 ^^^^^^^^^^^^^^^2178621787/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21788_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21789nixbot/tests/conftest.py:33: in postgres_dsn21790 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21791 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21792/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21793 return next(self.gen)21794 ^^^^^^^^^^^^^^21795_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2179621797tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21798dbname = 'orchestrator'2179921800 @contextlib.contextmanager21801 def ephemeral_postgres(21802 tmp_path_factory: pytest.TempPathFactory, dbname: str21803 ) -> Iterator[str]:21804 """Throwaway Postgres on a unix socket with migrations applied."""21805 datadir = tmp_path_factory.mktemp("pgdata")21806 sockdir = tmp_path_factory.mktemp("pgsock")21807 subprocess.run( # noqa: S60321808 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21809 check=True,21810 capture_output=True,21811 )21812 proc = subprocess.Popen( # noqa: S60321813 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21814 stdout=subprocess.DEVNULL,21815 stderr=subprocess.DEVNULL,21816 )21817 try:21818 deadline = time.monotonic() + 3021819 while (21820 subprocess.run( # noqa: S60321821 ["pg_isready", "-h", str(sockdir), "-U", "test"],21822 check=False,21823 capture_output=True,21824 ).returncode21825 != 021826 ):21827 # The socket appears before recovery finishes; createdb would21828 # fail with "the database system is starting up".21829 if time.monotonic() > deadline:21830 msg = "postgres did not start"21831> raise RuntimeError(msg)21832E RuntimeError: postgres did not start2183321834nixbot/tests/support.py:319: RuntimeError21835______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______21836[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142183721838self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2183921840 def setup(self) -> None:21841 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21842 if runner_fixture_id not in self.fixturenames:21843 self.fixturenames.append(runner_fixture_id)21844 # When loop factories are configured, resolve the loop factory21845 # fixture early so that a factory variant change cascades cache21846 # invalidation before any async fixture checks its cache.21847 hook_caller = self.config.hook.pytest_asyncio_loop_factories21848 if hook_caller.get_hookimpls():21849 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21850> return super().setup()21851 ^^^^^^^^^^^^^^^2185221853/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21854_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21855nixbot/tests/conftest.py:33: in postgres_dsn21856 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21857 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21858/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21859 return next(self.gen)21860 ^^^^^^^^^^^^^^21861_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186221863tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21864dbname = 'orchestrator'2186521866 @contextlib.contextmanager21867 def ephemeral_postgres(21868 tmp_path_factory: pytest.TempPathFactory, dbname: str21869 ) -> Iterator[str]:21870 """Throwaway Postgres on a unix socket with migrations applied."""21871 datadir = tmp_path_factory.mktemp("pgdata")21872 sockdir = tmp_path_factory.mktemp("pgsock")21873 subprocess.run( # noqa: S60321874 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21875 check=True,21876 capture_output=True,21877 )21878 proc = subprocess.Popen( # noqa: S60321879 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21880 stdout=subprocess.DEVNULL,21881 stderr=subprocess.DEVNULL,21882 )21883 try:21884 deadline = time.monotonic() + 3021885 while (21886 subprocess.run( # noqa: S60321887 ["pg_isready", "-h", str(sockdir), "-U", "test"],21888 check=False,21889 capture_output=True,21890 ).returncode21891 != 021892 ):21893 # The socket appears before recovery finishes; createdb would21894 # fail with "the database system is starting up".21895 if time.monotonic() > deadline:21896 msg = "postgres did not start"21897> raise RuntimeError(msg)21898E RuntimeError: postgres did not start2189921900nixbot/tests/support.py:319: RuntimeError21901__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __21902[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190321904self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2190521906 def setup(self) -> None:21907 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21908 if runner_fixture_id not in self.fixturenames:21909 self.fixturenames.append(runner_fixture_id)21910 # When loop factories are configured, resolve the loop factory21911 # fixture early so that a factory variant change cascades cache21912 # invalidation before any async fixture checks its cache.21913 hook_caller = self.config.hook.pytest_asyncio_loop_factories21914 if hook_caller.get_hookimpls():21915 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21916> return super().setup()21917 ^^^^^^^^^^^^^^^2191821919/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21920_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21921nixbot/tests/conftest.py:33: in postgres_dsn21922 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21923 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21924/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21925 return next(self.gen)21926 ^^^^^^^^^^^^^^21927_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2192821929tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21930dbname = 'orchestrator'2193121932 @contextlib.contextmanager21933 def ephemeral_postgres(21934 tmp_path_factory: pytest.TempPathFactory, dbname: str21935 ) -> Iterator[str]:21936 """Throwaway Postgres on a unix socket with migrations applied."""21937 datadir = tmp_path_factory.mktemp("pgdata")21938 sockdir = tmp_path_factory.mktemp("pgsock")21939 subprocess.run( # noqa: S60321940 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21941 check=True,21942 capture_output=True,21943 )21944 proc = subprocess.Popen( # noqa: S60321945 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21946 stdout=subprocess.DEVNULL,21947 stderr=subprocess.DEVNULL,21948 )21949 try:21950 deadline = time.monotonic() + 3021951 while (21952 subprocess.run( # noqa: S60321953 ["pg_isready", "-h", str(sockdir), "-U", "test"],21954 check=False,21955 capture_output=True,21956 ).returncode21957 != 021958 ):21959 # The socket appears before recovery finishes; createdb would21960 # fail with "the database system is starting up".21961 if time.monotonic() > deadline:21962 msg = "postgres did not start"21963> raise RuntimeError(msg)21964E RuntimeError: postgres did not start2196521966nixbot/tests/support.py:319: RuntimeError21967__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __21968[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142196921970self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2197121972 def setup(self) -> None:21973 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21974 if runner_fixture_id not in self.fixturenames:21975 self.fixturenames.append(runner_fixture_id)21976 # When loop factories are configured, resolve the loop factory21977 # fixture early so that a factory variant change cascades cache21978 # invalidation before any async fixture checks its cache.21979 hook_caller = self.config.hook.pytest_asyncio_loop_factories21980 if hook_caller.get_hookimpls():21981 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21982> return super().setup()21983 ^^^^^^^^^^^^^^^2198421985/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21986_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21987nixbot/tests/conftest.py:33: in postgres_dsn21988 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21989 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21990/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21991 return next(self.gen)21992 ^^^^^^^^^^^^^^21993_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199421995tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21996dbname = 'orchestrator'2199721998 @contextlib.contextmanager21999 def ephemeral_postgres(22000 tmp_path_factory: pytest.TempPathFactory, dbname: str22001 ) -> Iterator[str]:22002 """Throwaway Postgres on a unix socket with migrations applied."""22003 datadir = tmp_path_factory.mktemp("pgdata")22004 sockdir = tmp_path_factory.mktemp("pgsock")22005 subprocess.run( # noqa: S60322006 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22007 check=True,22008 capture_output=True,22009 )22010 proc = subprocess.Popen( # noqa: S60322011 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22012 stdout=subprocess.DEVNULL,22013 stderr=subprocess.DEVNULL,22014 )22015 try:22016 deadline = time.monotonic() + 3022017 while (22018 subprocess.run( # noqa: S60322019 ["pg_isready", "-h", str(sockdir), "-U", "test"],22020 check=False,22021 capture_output=True,22022 ).returncode22023 != 022024 ):22025 # The socket appears before recovery finishes; createdb would22026 # fail with "the database system is starting up".22027 if time.monotonic() > deadline:22028 msg = "postgres did not start"22029> raise RuntimeError(msg)22030E RuntimeError: postgres did not start2203122032nixbot/tests/support.py:319: RuntimeError22033______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22034[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203522036self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2203722038 def setup(self) -> None:22039 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22040 if runner_fixture_id not in self.fixturenames:22041 self.fixturenames.append(runner_fixture_id)22042 # When loop factories are configured, resolve the loop factory22043 # fixture early so that a factory variant change cascades cache22044 # invalidation before any async fixture checks its cache.22045 hook_caller = self.config.hook.pytest_asyncio_loop_factories22046 if hook_caller.get_hookimpls():22047 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22048> return super().setup()22049 ^^^^^^^^^^^^^^^2205022051/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22052_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22053nixbot/tests/conftest.py:33: in postgres_dsn22054 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22055 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22056/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22057 return next(self.gen)22058 ^^^^^^^^^^^^^^22059_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206022061tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22062dbname = 'orchestrator'2206322064 @contextlib.contextmanager22065 def ephemeral_postgres(22066 tmp_path_factory: pytest.TempPathFactory, dbname: str22067 ) -> Iterator[str]:22068 """Throwaway Postgres on a unix socket with migrations applied."""22069 datadir = tmp_path_factory.mktemp("pgdata")22070 sockdir = tmp_path_factory.mktemp("pgsock")22071 subprocess.run( # noqa: S60322072 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22073 check=True,22074 capture_output=True,22075 )22076 proc = subprocess.Popen( # noqa: S60322077 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22078 stdout=subprocess.DEVNULL,22079 stderr=subprocess.DEVNULL,22080 )22081 try:22082 deadline = time.monotonic() + 3022083 while (22084 subprocess.run( # noqa: S60322085 ["pg_isready", "-h", str(sockdir), "-U", "test"],22086 check=False,22087 capture_output=True,22088 ).returncode22089 != 022090 ):22091 # The socket appears before recovery finishes; createdb would22092 # fail with "the database system is starting up".22093 if time.monotonic() > deadline:22094 msg = "postgres did not start"22095> raise RuntimeError(msg)22096E RuntimeError: postgres did not start2209722098nixbot/tests/support.py:319: RuntimeError22099________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22100[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210122102self = <Coroutine test_restart_build_drops_queued_effect_items>2210322104 def setup(self) -> None:22105 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22106 if runner_fixture_id not in self.fixturenames:22107 self.fixturenames.append(runner_fixture_id)22108 # When loop factories are configured, resolve the loop factory22109 # fixture early so that a factory variant change cascades cache22110 # invalidation before any async fixture checks its cache.22111 hook_caller = self.config.hook.pytest_asyncio_loop_factories22112 if hook_caller.get_hookimpls():22113 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22114> return super().setup()22115 ^^^^^^^^^^^^^^^2211622117/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22118_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22119nixbot/tests/conftest.py:33: in postgres_dsn22120 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22121 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22122/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22123 return next(self.gen)22124 ^^^^^^^^^^^^^^22125_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2212622127tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22128dbname = 'orchestrator'2212922130 @contextlib.contextmanager22131 def ephemeral_postgres(22132 tmp_path_factory: pytest.TempPathFactory, dbname: str22133 ) -> Iterator[str]:22134 """Throwaway Postgres on a unix socket with migrations applied."""22135 datadir = tmp_path_factory.mktemp("pgdata")22136 sockdir = tmp_path_factory.mktemp("pgsock")22137 subprocess.run( # noqa: S60322138 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22139 check=True,22140 capture_output=True,22141 )22142 proc = subprocess.Popen( # noqa: S60322143 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22144 stdout=subprocess.DEVNULL,22145 stderr=subprocess.DEVNULL,22146 )22147 try:22148 deadline = time.monotonic() + 3022149 while (22150 subprocess.run( # noqa: S60322151 ["pg_isready", "-h", str(sockdir), "-U", "test"],22152 check=False,22153 capture_output=True,22154 ).returncode22155 != 022156 ):22157 # The socket appears before recovery finishes; createdb would22158 # fail with "the database system is starting up".22159 if time.monotonic() > deadline:22160 msg = "postgres did not start"22161> raise RuntimeError(msg)22162E RuntimeError: postgres did not start2216322164nixbot/tests/support.py:319: RuntimeError22165___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22166[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142216722168self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2216922170 def setup(self) -> None:22171 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22172 if runner_fixture_id not in self.fixturenames:22173 self.fixturenames.append(runner_fixture_id)22174 # When loop factories are configured, resolve the loop factory22175 # fixture early so that a factory variant change cascades cache22176 # invalidation before any async fixture checks its cache.22177 hook_caller = self.config.hook.pytest_asyncio_loop_factories22178 if hook_caller.get_hookimpls():22179 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22180> return super().setup()22181 ^^^^^^^^^^^^^^^2218222183/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22184_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22185nixbot/tests/conftest.py:33: in postgres_dsn22186 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22187 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22188/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22189 return next(self.gen)22190 ^^^^^^^^^^^^^^22191_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219222193tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22194dbname = 'orchestrator'2219522196 @contextlib.contextmanager22197 def ephemeral_postgres(22198 tmp_path_factory: pytest.TempPathFactory, dbname: str22199 ) -> Iterator[str]:22200 """Throwaway Postgres on a unix socket with migrations applied."""22201 datadir = tmp_path_factory.mktemp("pgdata")22202 sockdir = tmp_path_factory.mktemp("pgsock")22203 subprocess.run( # noqa: S60322204 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22205 check=True,22206 capture_output=True,22207 )22208 proc = subprocess.Popen( # noqa: S60322209 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22210 stdout=subprocess.DEVNULL,22211 stderr=subprocess.DEVNULL,22212 )22213 try:22214 deadline = time.monotonic() + 3022215 while (22216 subprocess.run( # noqa: S60322217 ["pg_isready", "-h", str(sockdir), "-U", "test"],22218 check=False,22219 capture_output=True,22220 ).returncode22221 != 022222 ):22223 # The socket appears before recovery finishes; createdb would22224 # fail with "the database system is starting up".22225 if time.monotonic() > deadline:22226 msg = "postgres did not start"22227> raise RuntimeError(msg)22228E RuntimeError: postgres did not start2222922230nixbot/tests/support.py:319: RuntimeError22231_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22232[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223322234self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2223522236 def setup(self) -> None:22237 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22238 if runner_fixture_id not in self.fixturenames:22239 self.fixturenames.append(runner_fixture_id)22240 # When loop factories are configured, resolve the loop factory22241 # fixture early so that a factory variant change cascades cache22242 # invalidation before any async fixture checks its cache.22243 hook_caller = self.config.hook.pytest_asyncio_loop_factories22244 if hook_caller.get_hookimpls():22245 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22246> return super().setup()22247 ^^^^^^^^^^^^^^^2224822249/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22250_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22251nixbot/tests/conftest.py:33: in postgres_dsn22252 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22253 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22254/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22255 return next(self.gen)22256 ^^^^^^^^^^^^^^22257_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2225822259tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22260dbname = 'orchestrator'2226122262 @contextlib.contextmanager22263 def ephemeral_postgres(22264 tmp_path_factory: pytest.TempPathFactory, dbname: str22265 ) -> Iterator[str]:22266 """Throwaway Postgres on a unix socket with migrations applied."""22267 datadir = tmp_path_factory.mktemp("pgdata")22268 sockdir = tmp_path_factory.mktemp("pgsock")22269 subprocess.run( # noqa: S60322270 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22271 check=True,22272 capture_output=True,22273 )22274 proc = subprocess.Popen( # noqa: S60322275 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22276 stdout=subprocess.DEVNULL,22277 stderr=subprocess.DEVNULL,22278 )22279 try:22280 deadline = time.monotonic() + 3022281 while (22282 subprocess.run( # noqa: S60322283 ["pg_isready", "-h", str(sockdir), "-U", "test"],22284 check=False,22285 capture_output=True,22286 ).returncode22287 != 022288 ):22289 # The socket appears before recovery finishes; createdb would22290 # fail with "the database system is starting up".22291 if time.monotonic() > deadline:22292 msg = "postgres did not start"22293> raise RuntimeError(msg)22294E RuntimeError: postgres did not start2229522296nixbot/tests/support.py:319: RuntimeError22297_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22298[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142229922300self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2230122302 def setup(self) -> None:22303 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22304 if runner_fixture_id not in self.fixturenames:22305 self.fixturenames.append(runner_fixture_id)22306 # When loop factories are configured, resolve the loop factory22307 # fixture early so that a factory variant change cascades cache22308 # invalidation before any async fixture checks its cache.22309 hook_caller = self.config.hook.pytest_asyncio_loop_factories22310 if hook_caller.get_hookimpls():22311 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22312> return super().setup()22313 ^^^^^^^^^^^^^^^2231422315/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22316_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22317nixbot/tests/conftest.py:33: in postgres_dsn22318 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22320/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22321 return next(self.gen)22322 ^^^^^^^^^^^^^^22323_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232422325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22326dbname = 'orchestrator'2232722328 @contextlib.contextmanager22329 def ephemeral_postgres(22330 tmp_path_factory: pytest.TempPathFactory, dbname: str22331 ) -> Iterator[str]:22332 """Throwaway Postgres on a unix socket with migrations applied."""22333 datadir = tmp_path_factory.mktemp("pgdata")22334 sockdir = tmp_path_factory.mktemp("pgsock")22335 subprocess.run( # noqa: S60322336 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22337 check=True,22338 capture_output=True,22339 )22340 proc = subprocess.Popen( # noqa: S60322341 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22342 stdout=subprocess.DEVNULL,22343 stderr=subprocess.DEVNULL,22344 )22345 try:22346 deadline = time.monotonic() + 3022347 while (22348 subprocess.run( # noqa: S60322349 ["pg_isready", "-h", str(sockdir), "-U", "test"],22350 check=False,22351 capture_output=True,22352 ).returncode22353 != 022354 ):22355 # The socket appears before recovery finishes; createdb would22356 # fail with "the database system is starting up".22357 if time.monotonic() > deadline:22358 msg = "postgres did not start"22359> raise RuntimeError(msg)22360E RuntimeError: postgres did not start2236122362nixbot/tests/support.py:319: RuntimeError22363______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22364[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236522366self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2236722368 def setup(self) -> None:22369 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22370 if runner_fixture_id not in self.fixturenames:22371 self.fixturenames.append(runner_fixture_id)22372 # When loop factories are configured, resolve the loop factory22373 # fixture early so that a factory variant change cascades cache22374 # invalidation before any async fixture checks its cache.22375 hook_caller = self.config.hook.pytest_asyncio_loop_factories22376 if hook_caller.get_hookimpls():22377 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22378> return super().setup()22379 ^^^^^^^^^^^^^^^2238022381/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22382_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22383nixbot/tests/conftest.py:33: in postgres_dsn22384 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22385 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22386/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22387 return next(self.gen)22388 ^^^^^^^^^^^^^^22389_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239022391tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22392dbname = 'orchestrator'2239322394 @contextlib.contextmanager22395 def ephemeral_postgres(22396 tmp_path_factory: pytest.TempPathFactory, dbname: str22397 ) -> Iterator[str]:22398 """Throwaway Postgres on a unix socket with migrations applied."""22399 datadir = tmp_path_factory.mktemp("pgdata")22400 sockdir = tmp_path_factory.mktemp("pgsock")22401 subprocess.run( # noqa: S60322402 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22403 check=True,22404 capture_output=True,22405 )22406 proc = subprocess.Popen( # noqa: S60322407 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22408 stdout=subprocess.DEVNULL,22409 stderr=subprocess.DEVNULL,22410 )22411 try:22412 deadline = time.monotonic() + 3022413 while (22414 subprocess.run( # noqa: S60322415 ["pg_isready", "-h", str(sockdir), "-U", "test"],22416 check=False,22417 capture_output=True,22418 ).returncode22419 != 022420 ):22421 # The socket appears before recovery finishes; createdb would22422 # fail with "the database system is starting up".22423 if time.monotonic() > deadline:22424 msg = "postgres did not start"22425> raise RuntimeError(msg)22426E RuntimeError: postgres did not start2242722428nixbot/tests/support.py:319: RuntimeError22429____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22430[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243122432self = <Coroutine test_attach_to_already_terminal_build_replays_status>2243322434 def setup(self) -> None:22435 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22436 if runner_fixture_id not in self.fixturenames:22437 self.fixturenames.append(runner_fixture_id)22438 # When loop factories are configured, resolve the loop factory22439 # fixture early so that a factory variant change cascades cache22440 # invalidation before any async fixture checks its cache.22441 hook_caller = self.config.hook.pytest_asyncio_loop_factories22442 if hook_caller.get_hookimpls():22443 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22444> return super().setup()22445 ^^^^^^^^^^^^^^^2244622447/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22448_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22449nixbot/tests/conftest.py:33: in postgres_dsn22450 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22451 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22452/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22453 return next(self.gen)22454 ^^^^^^^^^^^^^^22455_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2245622457tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22458dbname = 'orchestrator'2245922460 @contextlib.contextmanager22461 def ephemeral_postgres(22462 tmp_path_factory: pytest.TempPathFactory, dbname: str22463 ) -> Iterator[str]:22464 """Throwaway Postgres on a unix socket with migrations applied."""22465 datadir = tmp_path_factory.mktemp("pgdata")22466 sockdir = tmp_path_factory.mktemp("pgsock")22467 subprocess.run( # noqa: S60322468 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22469 check=True,22470 capture_output=True,22471 )22472 proc = subprocess.Popen( # noqa: S60322473 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22474 stdout=subprocess.DEVNULL,22475 stderr=subprocess.DEVNULL,22476 )22477 try:22478 deadline = time.monotonic() + 3022479 while (22480 subprocess.run( # noqa: S60322481 ["pg_isready", "-h", str(sockdir), "-U", "test"],22482 check=False,22483 capture_output=True,22484 ).returncode22485 != 022486 ):22487 # The socket appears before recovery finishes; createdb would22488 # fail with "the database system is starting up".22489 if time.monotonic() > deadline:22490 msg = "postgres did not start"22491> raise RuntimeError(msg)22492E RuntimeError: postgres did not start2249322494nixbot/tests/support.py:319: RuntimeError22495___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____22496[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142249722498self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2249922500 def setup(self) -> None:22501 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22502 if runner_fixture_id not in self.fixturenames:22503 self.fixturenames.append(runner_fixture_id)22504 # When loop factories are configured, resolve the loop factory22505 # fixture early so that a factory variant change cascades cache22506 # invalidation before any async fixture checks its cache.22507 hook_caller = self.config.hook.pytest_asyncio_loop_factories22508 if hook_caller.get_hookimpls():22509 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22510> return super().setup()22511 ^^^^^^^^^^^^^^^2251222513/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22514_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22515nixbot/tests/conftest.py:33: in postgres_dsn22516 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22517 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22518/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22519 return next(self.gen)22520 ^^^^^^^^^^^^^^22521_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252222523tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22524dbname = 'orchestrator'2252522526 @contextlib.contextmanager22527 def ephemeral_postgres(22528 tmp_path_factory: pytest.TempPathFactory, dbname: str22529 ) -> Iterator[str]:22530 """Throwaway Postgres on a unix socket with migrations applied."""22531 datadir = tmp_path_factory.mktemp("pgdata")22532 sockdir = tmp_path_factory.mktemp("pgsock")22533 subprocess.run( # noqa: S60322534 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22535 check=True,22536 capture_output=True,22537 )22538 proc = subprocess.Popen( # noqa: S60322539 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22540 stdout=subprocess.DEVNULL,22541 stderr=subprocess.DEVNULL,22542 )22543 try:22544 deadline = time.monotonic() + 3022545 while (22546 subprocess.run( # noqa: S60322547 ["pg_isready", "-h", str(sockdir), "-U", "test"],22548 check=False,22549 capture_output=True,22550 ).returncode22551 != 022552 ):22553 # The socket appears before recovery finishes; createdb would22554 # fail with "the database system is starting up".22555 if time.monotonic() > deadline:22556 msg = "postgres did not start"22557> raise RuntimeError(msg)22558E RuntimeError: postgres did not start2255922560nixbot/tests/support.py:319: RuntimeError22561____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____22562[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256322564self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2256522566 def setup(self) -> None:22567 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22568 if runner_fixture_id not in self.fixturenames:22569 self.fixturenames.append(runner_fixture_id)22570 # When loop factories are configured, resolve the loop factory22571 # fixture early so that a factory variant change cascades cache22572 # invalidation before any async fixture checks its cache.22573 hook_caller = self.config.hook.pytest_asyncio_loop_factories22574 if hook_caller.get_hookimpls():22575 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22576> return super().setup()22577 ^^^^^^^^^^^^^^^2257822579/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22580_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22581nixbot/tests/conftest.py:33: in postgres_dsn22582 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22583 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22584/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22585 return next(self.gen)22586 ^^^^^^^^^^^^^^22587_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2258822589tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22590dbname = 'orchestrator'2259122592 @contextlib.contextmanager22593 def ephemeral_postgres(22594 tmp_path_factory: pytest.TempPathFactory, dbname: str22595 ) -> Iterator[str]:22596 """Throwaway Postgres on a unix socket with migrations applied."""22597 datadir = tmp_path_factory.mktemp("pgdata")22598 sockdir = tmp_path_factory.mktemp("pgsock")22599 subprocess.run( # noqa: S60322600 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22601 check=True,22602 capture_output=True,22603 )22604 proc = subprocess.Popen( # noqa: S60322605 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22606 stdout=subprocess.DEVNULL,22607 stderr=subprocess.DEVNULL,22608 )22609 try:22610 deadline = time.monotonic() + 3022611 while (22612 subprocess.run( # noqa: S60322613 ["pg_isready", "-h", str(sockdir), "-U", "test"],22614 check=False,22615 capture_output=True,22616 ).returncode22617 != 022618 ):22619 # The socket appears before recovery finishes; createdb would22620 # fail with "the database system is starting up".22621 if time.monotonic() > deadline:22622 msg = "postgres did not start"22623> raise RuntimeError(msg)22624E RuntimeError: postgres did not start2262522626nixbot/tests/support.py:319: RuntimeError22627__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________22628[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142262922630self = <Coroutine test_post_process_paths_are_forge_scoped>2263122632 def setup(self) -> None:22633 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22634 if runner_fixture_id not in self.fixturenames:22635 self.fixturenames.append(runner_fixture_id)22636 # When loop factories are configured, resolve the loop factory22637 # fixture early so that a factory variant change cascades cache22638 # invalidation before any async fixture checks its cache.22639 hook_caller = self.config.hook.pytest_asyncio_loop_factories22640 if hook_caller.get_hookimpls():22641 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22642> return super().setup()22643 ^^^^^^^^^^^^^^^2264422645/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22646_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22647nixbot/tests/conftest.py:33: in postgres_dsn22648 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22649 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22650/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22651 return next(self.gen)22652 ^^^^^^^^^^^^^^22653_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265422655tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22656dbname = 'orchestrator'2265722658 @contextlib.contextmanager22659 def ephemeral_postgres(22660 tmp_path_factory: pytest.TempPathFactory, dbname: str22661 ) -> Iterator[str]:22662 """Throwaway Postgres on a unix socket with migrations applied."""22663 datadir = tmp_path_factory.mktemp("pgdata")22664 sockdir = tmp_path_factory.mktemp("pgsock")22665 subprocess.run( # noqa: S60322666 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22667 check=True,22668 capture_output=True,22669 )22670 proc = subprocess.Popen( # noqa: S60322671 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22672 stdout=subprocess.DEVNULL,22673 stderr=subprocess.DEVNULL,22674 )22675 try:22676 deadline = time.monotonic() + 3022677 while (22678 subprocess.run( # noqa: S60322679 ["pg_isready", "-h", str(sockdir), "-U", "test"],22680 check=False,22681 capture_output=True,22682 ).returncode22683 != 022684 ):22685 # The socket appears before recovery finishes; createdb would22686 # fail with "the database system is starting up".22687 if time.monotonic() > deadline:22688 msg = "postgres did not start"22689> raise RuntimeError(msg)22690E RuntimeError: postgres did not start2269122692nixbot/tests/support.py:319: RuntimeError22693_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______22694[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269522696self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2269722698 def setup(self) -> None:22699 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22700 if runner_fixture_id not in self.fixturenames:22701 self.fixturenames.append(runner_fixture_id)22702 # When loop factories are configured, resolve the loop factory22703 # fixture early so that a factory variant change cascades cache22704 # invalidation before any async fixture checks its cache.22705 hook_caller = self.config.hook.pytest_asyncio_loop_factories22706 if hook_caller.get_hookimpls():22707 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22708> return super().setup()22709 ^^^^^^^^^^^^^^^2271022711/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22712_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22713nixbot/tests/conftest.py:33: in postgres_dsn22714 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22715 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22716/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22717 return next(self.gen)22718 ^^^^^^^^^^^^^^22719_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272022721tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22722dbname = 'orchestrator'2272322724 @contextlib.contextmanager22725 def ephemeral_postgres(22726 tmp_path_factory: pytest.TempPathFactory, dbname: str22727 ) -> Iterator[str]:22728 """Throwaway Postgres on a unix socket with migrations applied."""22729 datadir = tmp_path_factory.mktemp("pgdata")22730 sockdir = tmp_path_factory.mktemp("pgsock")22731 subprocess.run( # noqa: S60322732 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22733 check=True,22734 capture_output=True,22735 )22736 proc = subprocess.Popen( # noqa: S60322737 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22738 stdout=subprocess.DEVNULL,22739 stderr=subprocess.DEVNULL,22740 )22741 try:22742 deadline = time.monotonic() + 3022743 while (22744 subprocess.run( # noqa: S60322745 ["pg_isready", "-h", str(sockdir), "-U", "test"],22746 check=False,22747 capture_output=True,22748 ).returncode22749 != 022750 ):22751 # The socket appears before recovery finishes; createdb would22752 # fail with "the database system is starting up".22753 if time.monotonic() > deadline:22754 msg = "postgres did not start"22755> raise RuntimeError(msg)22756E RuntimeError: postgres did not start2275722758nixbot/tests/support.py:319: RuntimeError22759_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____22760[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276122762self = <Coroutine test_reuse_post_process_error_still_reports_status>2276322764 def setup(self) -> None:22765 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22766 if runner_fixture_id not in self.fixturenames:22767 self.fixturenames.append(runner_fixture_id)22768 # When loop factories are configured, resolve the loop factory22769 # fixture early so that a factory variant change cascades cache22770 # invalidation before any async fixture checks its cache.22771 hook_caller = self.config.hook.pytest_asyncio_loop_factories22772 if hook_caller.get_hookimpls():22773 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22774> return super().setup()22775 ^^^^^^^^^^^^^^^2277622777/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22778_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22779nixbot/tests/conftest.py:33: in postgres_dsn22780 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22781 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22782/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22783 return next(self.gen)22784 ^^^^^^^^^^^^^^22785_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2278622787tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22788dbname = 'orchestrator'2278922790 @contextlib.contextmanager22791 def ephemeral_postgres(22792 tmp_path_factory: pytest.TempPathFactory, dbname: str22793 ) -> Iterator[str]:22794 """Throwaway Postgres on a unix socket with migrations applied."""22795 datadir = tmp_path_factory.mktemp("pgdata")22796 sockdir = tmp_path_factory.mktemp("pgsock")22797 subprocess.run( # noqa: S60322798 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22799 check=True,22800 capture_output=True,22801 )22802 proc = subprocess.Popen( # noqa: S60322803 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22804 stdout=subprocess.DEVNULL,22805 stderr=subprocess.DEVNULL,22806 )22807 try:22808 deadline = time.monotonic() + 3022809 while (22810 subprocess.run( # noqa: S60322811 ["pg_isready", "-h", str(sockdir), "-U", "test"],22812 check=False,22813 capture_output=True,22814 ).returncode22815 != 022816 ):22817 # The socket appears before recovery finishes; createdb would22818 # fail with "the database system is starting up".22819 if time.monotonic() > deadline:22820 msg = "postgres did not start"22821> raise RuntimeError(msg)22822E RuntimeError: postgres did not start2282322824nixbot/tests/support.py:319: RuntimeError22825____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____22826[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142282722828self = <Coroutine test_reuse_with_missing_output_still_post_processes>2282922830 def setup(self) -> None:22831 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22832 if runner_fixture_id not in self.fixturenames:22833 self.fixturenames.append(runner_fixture_id)22834 # When loop factories are configured, resolve the loop factory22835 # fixture early so that a factory variant change cascades cache22836 # invalidation before any async fixture checks its cache.22837 hook_caller = self.config.hook.pytest_asyncio_loop_factories22838 if hook_caller.get_hookimpls():22839 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22840> return super().setup()22841 ^^^^^^^^^^^^^^^2284222843/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22844_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22845nixbot/tests/conftest.py:33: in postgres_dsn22846 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22847 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22848/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22849 return next(self.gen)22850 ^^^^^^^^^^^^^^22851_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285222853tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/p...atch/eddb5c39692427aa/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22854dbname = 'orchestrator'2285522856 @contextlib.contextmanager22857 def ephemeral_postgres(22858 tmp_path_factory: pytest.TempPathFactory, dbname: str22859 ) -> Iterator[str]:22860 """Throwaway Postgres on a unix socket with migrations applied."""22861 datadir = tmp_path_factory.mktemp("pgdata")22862 sockdir = tmp_path_factory.mktemp("pgsock")22863 subprocess.run( # noqa: S60322864 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22865 check=True,22866 capture_output=True,22867 )22868 proc = subprocess.Popen( # noqa: S60322869 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22870 stdout=subprocess.DEVNULL,22871 stderr=subprocess.DEVNULL,22872 )22873 try:22874 deadline = time.monotonic() + 3022875 while (22876 subprocess.run( # noqa: S60322877 ["pg_isready", "-h", str(sockdir), "-U", "test"],22878 check=False,22879 capture_output=True,22880 ).returncode22881 != 022882 ):22883 # The socket appears before recovery finishes; createdb would22884 # fail with "the database system is starting up".22885 if time.monotonic() > deadline:22886 msg = "postgres did not start"22887> raise RuntimeError(msg)22888E RuntimeError: postgres did not start2288922890nixbot/tests/support.py:319: RuntimeError22891=========================== short test summary info ============================22892ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...22893ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec22894ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only22895ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names22896ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...22897ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...22898ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...22899ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search22900ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos22901ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...22902ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...22903ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...22904ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...22905ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos22906ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos22907ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...22908ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import22909ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...22910ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...22911ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...22912ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission22913ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...22914ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...22915ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...22916ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...22917ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect22918ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...22919ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...22920ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...22921ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...22922ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows22923ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...22924ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names22925ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...22926ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...22927ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...22928ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...22929ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...22930ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal22931ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge22932ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...22933ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...22934ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...22935ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...22936ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...22937ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...22938ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...22939ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...22940ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...22941ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...22942ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...22943ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue22944ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...22945ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...22946ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups22947ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship22948ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...22949ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...22950ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...22951ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...22952ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...22953ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...22954ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...22955ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...22956ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...22957ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...22958ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes22959ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...22960ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache22961ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid22962ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author22963ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build22964ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...22965ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...22966ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...22967ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema22968ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...22969ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...22970ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows22971ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...22972ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds22973ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone22974ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired22975ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...22976ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...22977ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...22978ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...22979ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...22980ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build22981ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger22982ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...22983ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings22984ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...22985ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...22986ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...22987ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...22988ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession22989ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base22990ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...22991ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...22992ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...22993ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...22994ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...22995ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...22996ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...22997ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue22998ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch22999ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23000ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23001ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23002ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23003ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23004ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23005ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23006ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23007ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23008ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23009ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23010ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23011ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23012ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23013ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23014ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23015ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23016ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23017ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23018ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23019ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23020ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23021ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23022ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23023ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23024ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23025ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23026ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23027ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23028ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23029ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23030ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23031ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23032ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23033ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23034ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23035ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23036ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23037ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23038ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23039ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23040ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23041ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23042ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23043ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23044ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23045ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23046ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23047ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23048ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23049ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23050ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23051ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23052ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23053ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23054ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23055ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23056ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23057ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23058ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23059ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23060ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23061ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23062ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23063ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23064ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23065ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23066ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23067ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23068ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23069ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23070ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23071ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23072ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23073ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23074ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23075ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23076ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23077ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23078ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23079ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23080ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23081ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23082ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23083ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23084ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23085ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23086ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23087ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23088ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23089ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23090ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23091ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23092ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23093ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23094ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23095ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23096ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23097ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23098ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23099ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23100ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23101ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23102ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23103ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23104ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23105ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23106ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23107ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23108ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23109ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23110ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23111ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23112ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23113ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23114ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23115ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23116ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23117ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23118ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23119ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23120ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23121ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23122ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23123ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23124ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23125ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23126ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23127ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23128ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23129ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23130ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23131ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23132ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23133ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23134ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23135ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23136ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23137ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23138ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23139ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23140ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23141ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23142ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23143ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23144ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23145ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23146ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23147ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23148ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23149ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23150ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23151ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23152ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23153ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23154ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23155ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23156ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23157ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23158ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23159ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23160ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23161ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23162ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23163ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23164ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23165ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23166ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23167ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23168ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23169ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23170ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23171ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23172ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23173ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23174ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23175ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23176ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23177ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23178ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23179ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23180ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23181ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23182ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23183ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23184ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23185ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23186ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23187ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23188ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23189ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23190ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23191ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23192ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23193ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23194ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23195ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23196ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23197ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23198ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23199ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23200ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23201ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23202ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23203ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23204ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23205ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23206ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23207ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423208ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23209ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23210ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23211ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23212ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23213ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23214ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23215ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23216ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23217ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23218ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23219ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23220ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23221ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23222ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23223ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23224ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23225ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23226ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23227ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23228ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23229ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23230ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23231ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23232ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23233ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23234ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23235ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23236ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23237ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23238ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23239ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23240ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23241ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23242ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23243ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23244ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23245ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23246ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23247================= 477 passed, 29 skipped, 355 errors in 55.85s =================