import pytest
from unittest.mock import patch
from app.models.user import User
from app.config.extensions import bcrypt

class TestUser:
    def test_user_string_represetation(self,client,user_model_factory):
        user = user_model_factory
        assert str(user) == user["username"]

    # @patch.object(bcrypt,"generate_password_hash")
    # def test_set_password(self,mocker,client,user_model_factory):
    #     user_factory = user_model_factory
    #     user = User()
    #     result = user.set_password(password=user_factory['password'])
    #     mocker.assert_called_once()
    #     mocker.assert_called_once_with(user_factory['password'])
        
    # @patch.object(bcrypt,"check_password_hash")
    # def test_check_password(self,mocker,client,user_model_factory):
    #     user_factory = user_model_factory
    #     user = User()
    #     print(user_factory['password'])
    #     result = user.check_password(password=user_factory['password'])
    #     mocker.assert_called_once()
        
    # def test_add_role(self,client,user_model_factory):
    #     user_factory = user_model_factory.add_role("AdCreator")
    #     print(user_model_factory['roles'])