about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gn3/auth/authorisation/groups.py1
-rw-r--r--gn3/auth/db.py18
-rw-r--r--main.py7
-rw-r--r--tests/unit/conftest.py3
4 files changed, 20 insertions, 9 deletions
diff --git a/gn3/auth/authorisation/groups.py b/gn3/auth/authorisation/groups.py
index ad30763..5290196 100644
--- a/gn3/auth/authorisation/groups.py
+++ b/gn3/auth/authorisation/groups.py
@@ -8,6 +8,7 @@ from . import authorised_p
     ("create-group",), success_message="Successfully created group.",
     error_message="Failed to create group.")
 def create_group(conn, group_name):
+    """Create a group"""
     with db.cursor(conn) as cursor:
         group_id = uuid.uuid4()
         cursor.execute(
diff --git a/gn3/auth/db.py b/gn3/auth/db.py
index c0d0415..e732a03 100644
--- a/gn3/auth/db.py
+++ b/gn3/auth/db.py
@@ -4,16 +4,24 @@ import contextlib
 
 @contextlib.contextmanager
 def connection(db_path: str):
-    connection = sqlite3.connect(db_path)
+    """Create the connection to the auth database."""
+    conn = sqlite3.connect(db_path)
     try:
-        yield connection
+        yield conn
+    except: # pylint: disable=bare-except
+        conn.rollback()
     finally:
-        connection.close()
+        conn.commit()
+        conn.close()
 
 @contextlib.contextmanager
-def cursor(connection):
-    cur = connection.cursor()
+def cursor(conn):
+    """Get a cursor from the given connection to the auth database."""
+    cur = conn.cursor()
     try:
         yield cur
+    except: # pylint: disable=bare-except
+        conn.rollback()
     finally:
+        conn.commit()
         cur.close()
diff --git a/main.py b/main.py
index aaa51da..8d03148 100644
--- a/main.py
+++ b/main.py
@@ -1,5 +1,7 @@
 """Main entry point for project"""
+from yoyo import get_backend, read_migrations
 
+from gn3 import migrations
 from gn3.app import create_app
 
 app = create_app()
@@ -8,9 +10,8 @@ app = create_app()
 
 @app.cli.command()
 def apply_migrations():
-    from yoyo import get_backend, read_migrations
-    from gn3.migrations import apply_migrations
-    apply_migrations(
+    """Apply the dabasase migrations."""
+    migrations.apply_migrations(
         get_backend(f'sqlite:///{app.config["AUTH_DB"]}'),
         read_migrations(app.config["AUTH_MIGRATIONS"]))
 
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
index 9660c32..e5d941d 100644
--- a/tests/unit/conftest.py
+++ b/tests/unit/conftest.py
@@ -9,6 +9,7 @@ from gn3.app import create_app
 
 @pytest.fixture(scope="session")
 def test_app():
+    """Fixture: setup the test app"""
     # Do some setup
     with TemporaryDirectory() as testdir:
         testdb = Path(testdir).joinpath(
@@ -21,7 +22,7 @@ def test_app():
         testdb.unlink(missing_ok=True)
 
 @pytest.fixture(scope="session")
-def client(test_app):
+def client(test_app): # pylint: disable=redefined-outer-name
     """Create a test client fixture for tests"""
     with test_app.app_context():
         yield test_app.test_client()