@@ -135,58 +135,58 @@
135 135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
136 136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ── CICDReporter — JSON output ────────────────────────────────────────────────
137 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
139 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
class TestJSONOutput:
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def _emit_to_str(self, reporter, data=None, monkeypatch=None) -> dict:
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def _emit_to_str(self, reporter, monkeypatch, data=None) -> dict:
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
141 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
buf = StringIO()
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if monkeypatch:
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- _clear_ci_env(monkeypatch)
144 143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
reporter.emit(data=data, file=buf)
145 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return json.loads(buf.getvalue())
146 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_status_success(self):
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_status_success(self, monkeypatch):
148 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
150 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["status"] == "success"
151 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_status_error(self):
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_status_error(self, monkeypatch):
153 152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
154 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_error("boom")
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
156 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["status"] == "error"
157 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_status_warning(self):
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_status_warning(self, monkeypatch):
159 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
160 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_warning("careful")
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
162 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["status"] == "warning"
163 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_errors_list_in_payload(self):
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_errors_list_in_payload(self, monkeypatch):
165 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
166 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_error("err1")
167 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_error("err2")
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
169 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["errors"] == ["err1", "err2"]
170 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_warnings_list_in_payload(self):
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_warnings_list_in_payload(self, monkeypatch):
172 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
173 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_warning("w1")
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
175 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["warnings"] == ["w1"]
176 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_data_included_when_provided(self):
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_data_included_when_provided(self, monkeypatch):
178 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r, data={"files": 5, "functions": 20})
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch, data={"files": 5, "functions": 20})
180 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert out["data"] == {"files": 5, "functions": 20}
181 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_data_absent_when_not_provided(self):
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_data_absent_when_not_provided(self, monkeypatch):
183 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- out = self._emit_to_str(r)
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ out = self._emit_to_str(r, monkeypatch)
185 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert "data" not in out
186 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_output_is_valid_json(self):
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_output_is_valid_json(self, monkeypatch):
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
188 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = CICDReporter()
189 189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_error("oops")
190 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.add_warning("watch out")
191 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
buf = StringIO()
192 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r.emit(data={"key": "value"}, file=buf)
@@ -332,11 +332,12 @@
332 332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
333 333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ── CLI: navegador ci ingest ──────────────────────────────────────────────────
334 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
335 335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
336 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
class TestCIIngestCommand:
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_success_outputs_json(self):
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_success_outputs_json(self, monkeypatch):
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
338 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
339 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with runner.isolated_filesystem():
340 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Path("src").mkdir()
341 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=_mock_store()), \
342 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
patch("navegador.ingestion.RepoIngester") as MockRI:
@@ -345,11 +346,12 @@
345 346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 0
346 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
347 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "success"
348 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["data"]["files"] == 5
349 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_warning_when_no_files_ingested(self):
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_warning_when_no_files_ingested(self, monkeypatch):
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
351 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
352 354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with runner.isolated_filesystem():
353 355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Path("src").mkdir()
354 356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=_mock_store()), \
355 357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
patch("navegador.ingestion.RepoIngester") as MockRI:
@@ -358,11 +360,12 @@
358 360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 2
359 361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
360 362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "warning"
361 363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["warnings"]
362 364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_error_on_ingest_exception(self):
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_error_on_ingest_exception(self, monkeypatch):
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
364 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
365 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with runner.isolated_filesystem():
366 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Path("src").mkdir()
367 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=_mock_store()), \
368 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
patch("navegador.ingestion.RepoIngester") as MockRI:
@@ -371,11 +374,12 @@
371 374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 1
372 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
373 376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "error"
374 377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert "DB unavailable" in payload["errors"][0]
375 378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_output_is_valid_json(self):
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_output_is_valid_json(self, monkeypatch):
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
377 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
378 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with runner.isolated_filesystem():
379 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Path("src").mkdir()
380 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=_mock_store()), \
381 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
patch("navegador.ingestion.RepoIngester") as MockRI:
@@ -401,11 +405,12 @@
401 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return result
402 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
403 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store.query.side_effect = _query
404 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return store
405 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_outputs_json_stats(self):
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_outputs_json_stats(self, monkeypatch):
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
407 412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
408 413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=self._store_with_counts()):
409 414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
result = runner.invoke(main, ["ci", "stats"])
410 415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 0
411 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
@@ -412,11 +417,12 @@
412 417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "success"
413 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert "data" in payload
414 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert "total_nodes" in payload["data"]
415 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert "total_edges" in payload["data"]
416 421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_error_on_store_failure(self):
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_error_on_store_failure(self, monkeypatch):
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
418 424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
419 425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", side_effect=RuntimeError("no db")):
420 426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
result = runner.invoke(main, ["ci", "stats"])
421 427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 1
422 428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
@@ -425,11 +431,12 @@
425 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
426 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ── CLI: navegador ci check ───────────────────────────────────────────────────
427 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
428 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
429 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
class TestCICheckCommand:
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_success_when_schema_current(self):
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_success_when_schema_current(self, monkeypatch):
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
431 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
from navegador.graph.migrations import CURRENT_SCHEMA_VERSION
432 439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
433 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store = MagicMock()
434 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store.query.return_value = MagicMock(result_set=[[CURRENT_SCHEMA_VERSION]])
435 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -439,13 +446,13 @@
439 446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 0
440 447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
441 448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "success"
442 449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["data"]["schema_version"] == CURRENT_SCHEMA_VERSION
443 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_warning_when_migration_needed(self):
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_warning_when_migration_needed(self, monkeypatch):
452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
445 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store = MagicMock()
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Return version 0 so migration is needed
447 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store.query.return_value = MagicMock(result_set=[[0]])
448 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
449 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
450 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", return_value=store):
451 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
result = runner.invoke(main, ["ci", "check"])
@@ -452,19 +459,21 @@
452 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 2
453 460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
454 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "warning"
455 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["warnings"]
456 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_error_on_store_failure(self):
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_error_on_store_failure(self, monkeypatch):
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
458 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runner = CliRunner()
459 467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with patch("navegador.cli.commands._get_store", side_effect=RuntimeError("no db")):
460 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
result = runner.invoke(main, ["ci", "check"])
461 469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert result.exit_code == 1
462 470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json.loads(result.output)
463 471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert payload["status"] == "error"
464 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- def test_payload_includes_version_info(self):
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def test_payload_includes_version_info(self, monkeypatch):
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _clear_ci_env(monkeypatch)
466 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
from navegador.graph.migrations import CURRENT_SCHEMA_VERSION
467 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
468 477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store = MagicMock()
469 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
store.query.return_value = MagicMock(result_set=[[CURRENT_SCHEMA_VERSION]])
470 479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
471 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!