Added Database tests
This commit is contained in:
8
tests/database/__init__.py
Normal file
8
tests/database/__init__.py
Normal file
@ -0,0 +1,8 @@
|
||||
# Ensure test environment is set before using
|
||||
import os
|
||||
|
||||
# Setup test environment variables
|
||||
os.environ["ENVIRON"] = "test"
|
||||
|
||||
# Runs the database creation scripts
|
||||
import scripts.create_database
|
36
tests/database/test_users.py
Normal file
36
tests/database/test_users.py
Normal file
@ -0,0 +1,36 @@
|
||||
import pytest
|
||||
import sqlite3
|
||||
from controllers.database.user import UserController
|
||||
from models.users.customer import Customer
|
||||
|
||||
customer = Customer(
|
||||
"testuser",
|
||||
"Password1",
|
||||
"firstname",
|
||||
"lastname",
|
||||
"test@test",
|
||||
"123456789"
|
||||
)
|
||||
|
||||
# Tests a new user can be created
|
||||
def test_create_user():
|
||||
db = UserController()
|
||||
db.create(customer)
|
||||
|
||||
# Tests the database maintains integrity when we try and add a user with the same details
|
||||
def test_duplicate_user():
|
||||
db = UserController()
|
||||
with pytest.raises(sqlite3.IntegrityError):
|
||||
db.create(customer)
|
||||
|
||||
# Test we the same user details get returned from the database
|
||||
def test_read_user():
|
||||
db = UserController()
|
||||
|
||||
# Test the same user is returned
|
||||
user = db.read("testuser")
|
||||
assert isinstance(user, Customer)
|
||||
|
||||
# Update the ID on the item as database assigns new id
|
||||
customer.id = user.id
|
||||
assert user.__dict__ == customer.__dict__
|
Reference in New Issue
Block a user