2020-05-02 09:02:04 -07:00
|
|
|
import pytest
|
|
|
|
|
from sqlite_utils.utils import OperationalError
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view(fresh_db):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 1")
|
2020-09-07 14:56:59 -07:00
|
|
|
rows = fresh_db.execute("select * from bar").fetchall()
|
2020-05-02 09:02:04 -07:00
|
|
|
assert [(2,)] == rows
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view_error(fresh_db):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 1")
|
|
|
|
|
with pytest.raises(OperationalError):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 2")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view_only_arrow_one_param(fresh_db):
|
|
|
|
|
with pytest.raises(AssertionError):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 2", ignore=True, replace=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view_ignore(fresh_db):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 1").create_view(
|
|
|
|
|
"bar", "select 1 + 2", ignore=True
|
|
|
|
|
)
|
2020-09-07 14:56:59 -07:00
|
|
|
rows = fresh_db.execute("select * from bar").fetchall()
|
2020-05-02 09:02:04 -07:00
|
|
|
assert [(2,)] == rows
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view_replace(fresh_db):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 1").create_view(
|
|
|
|
|
"bar", "select 1 + 2", replace=True
|
|
|
|
|
)
|
2020-09-07 14:56:59 -07:00
|
|
|
rows = fresh_db.execute("select * from bar").fetchall()
|
2020-05-02 09:02:04 -07:00
|
|
|
assert [(3,)] == rows
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_create_view_replace_with_same_does_nothing(fresh_db):
|
|
|
|
|
fresh_db.create_view("bar", "select 1 + 1")
|
2020-09-07 14:56:59 -07:00
|
|
|
initial_version = fresh_db.execute("PRAGMA schema_version").fetchone()[0]
|
2020-05-02 09:02:04 -07:00
|
|
|
fresh_db.create_view("bar", "select 1 + 1", replace=True)
|
2020-09-07 14:56:59 -07:00
|
|
|
after_version = fresh_db.execute("PRAGMA schema_version").fetchone()[0]
|
2020-05-02 09:02:04 -07:00
|
|
|
assert after_version == initial_version
|