37 lines
		
	
	
		
			952 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			952 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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__
 |