blob: c97c0503b22a126a52e9064982aa2d70a38b1aa0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
"""Test the auth database initialisation migration."""
from contextlib import closing
import pytest
import sqlite3
from gn3.migrations import get_migration, apply_migrations, rollback_migrations
from tests.unit.conftest import (
apply_single_migration, rollback_single_migration)
migration_path = "migrations/auth/20221103_01_js9ub-initialise-the-auth-entic-oris-ation-database.py"
@pytest.mark.unit_test
def test_create_users_table(auth_testdb_path):
"""
GIVEN: A database migration script to create the `users` table
WHEN: The migration is applied
THEN: Ensure that the table is created
"""
with closing(sqlite3.connect(auth_testdb_path)) as conn, closing(conn.cursor()) as cursor:
cursor.execute("SELECT name FROM sqlite_schema WHERE type='table'")
result = cursor.fetchall()
assert "users" not in [row[0] for row in cursor.fetchall()]
apply_single_migration(auth_testdb_path, get_migration(migration_path))
cursor.execute("SELECT name FROM sqlite_schema WHERE type='table'")
assert "users" in [row[0] for row in cursor.fetchall()]
@pytest.mark.unit_test
def test_rollback_create_users_table(auth_testdb_path):
"""
GIVEN: A database migration script to create the `users` table
WHEN: The migration is rolled back
THEN: Ensure that the `users` table no longer exists
"""
with closing(sqlite3.connect(auth_testdb_path)) as conn, closing(conn.cursor()) as cursor:
apply_single_migration(auth_testdb_path, get_migration(migration_path))
rollback_single_migration(auth_testdb_path, get_migration(migration_path))
cursor.execute("SELECT name FROM sqlite_schema WHERE type='table'")
assert "users" not in [row[0] for row in cursor.fetchall()]
|