1import sqlite3
2
3import pytest
4
5from flaskr.db import get_db
6
7
8def test_get_close_db(app):
9    with app.app_context():
10        db = get_db()
11        assert db is get_db()
12
13    with pytest.raises(sqlite3.ProgrammingError) as e:
14        db.execute("SELECT 1")
15
16    assert "closed" in str(e.value)
17
18
19def test_init_db_command(runner, monkeypatch):
20    class Recorder:
21        called = False
22
23    def fake_init_db():
24        Recorder.called = True
25
26    monkeypatch.setattr("flaskr.db.init_db", fake_init_db)
27    result = runner.invoke(args=["init-db"])
28    assert "Initialized" in result.output
29    assert Recorder.called
30