Ejemplo n.º 1
0
async def update_password(gebruiker: GebruikerResponseModel, token: str):
    if auth.check_if_token_in_cache(token):
        gebruiker.gebruikersnaam = auth.get_user_by_token(token)
        gebruiker.wachtwoord = auth.hash_wachtwoord(gebruiker.wachtwoord)
        controller.update_wachtwoord(gebruiker)
    else:
        raise HTTPException(status_code=401,
                            detail="Uw token is ongeldig of verlopen")
Ejemplo n.º 2
0
class TestGebruikerJSONParser(TestCase):
    return_object = GebruikerResponseModel()
    return_object.id = 1
    return_object.gebruikersnaam = "gebruikersnaam"
    return_object.wachtwoord = "wachtwoord"
    return_object.rol = 1
    return_object.tijdelijk_wachtwoord = 0

    return_object2 = GebruikerResponseModel()
    return_object2.id = 2
    return_object2.gebruikersnaam = "gebruikersnaam"
    return_object2.wachtwoord = "wachtwoord"
    return_object2.rol = 1
    return_object2.tijdelijk_wachtwoord = 0

    return_list = [return_object, return_object2]
    """test_get_gebruikers_returns_empty_list test of het aanroepen van get gebruikers een lege lijst teruggeeft"""
    @mock.patch.object(GebruikerJSONParser, '_data_handler', return_value=[])
    def test_get_gebruikers_returns_empty_list(self, mocked_handler):
        parser = GebruikerJSONParser()

        result = parser.get_gebruikers()

        assert result == []

    """test_get_gebruikers_gets_list_of_gebruikers test of get gebruikers een lijst met gebruikers teruggeeft"""

    @mock.patch.object(GebruikerJSONParser,
                       '_data_handler',
                       return_value=return_list)
    def test_get_gebruikers_gets_list_of_gebruikers(self, mocked_handler):
        parser = GebruikerJSONParser()

        result = parser.get_gebruikers()

        assert result[0].gebruikersnaam == self.return_object2.gebruikersnaam

    """test_get_gebruiker_returns_one_gebruiker test of get gebruikers een enkele gebruiker teruggeeft"""

    @mock.patch.object(GebruikerJSONParser,
                       '_data_handler',
                       return_value=return_list)
    def test_get_gebruiker_returns_one_gebruiker(self, mocked_handler):
        parser = GebruikerJSONParser()

        result = parser.get_gebruikers(1)

        assert result.gebruikersnaam == self.return_object.gebruikersnaam
Ejemplo n.º 3
0
async def post_gebruiker(model: GebruikerResponseModel, token: str):
    if auth.can_user_access(token) and auth.check_of_user_is_beheerder(token):
        model.wachtwoord = auth.hash_wachtwoord(model.wachtwoord)
        return controller.create_gebruiker(model)
    raise HTTPException(
        status_code=405,
        detail="Om deze actie uit te voeren heeft u beheerdersrechten nodig")
Ejemplo n.º 4
0
    def test_update_user_calls_handler(self, mock_get_gebruikers,
                                       mock_handler):
        gebruiker = GebruikerResponseModel()
        gebruiker.id = 1
        gebruiker.gebruikersnaam = "Gebruiker"
        gebruiker.tijdelijk_wachtwoord = 1
        gebruiker.rol = 1
        gebruiker.wachtwoord = "changeme"

        self.mapper.update_user(gebruiker)

        mock_handler.assert_called_with(
            "UPDATE gebruiker SET gebruikersnaam = %s, wachtwoord = %s, rol = %s, tijdelijk_wachtwoord = %s WHERE id = %s",
            (gebruiker.gebruikersnaam, gebruiker.wachtwoord, gebruiker.rol,
             gebruiker.tijdelijk_wachtwoord, gebruiker.id), False)
Ejemplo n.º 5
0
    def test_add_user_calls_mapper(self, mock_get_gebruikers, mock_handler):
        gebruiker = GebruikerResponseModel()
        gebruiker.gebruikersnaam = "Gebruiker"
        gebruiker.tijdelijk_wachtwoord = 1
        gebruiker.rol = 1
        gebruiker.wachtwoord = "changeme"

        self.mapper.add_user(gebruiker)

        mock_handler.assert_called_with(
            "INSERT INTO gebruiker (gebruikersnaam, wachtwoord, rol, tijdelijk_wachtwoord) VALUES " \
            "(%s, %s, %s, %s)",
            (gebruiker.gebruikersnaam, gebruiker.wachtwoord, gebruiker.rol, gebruiker.tijdelijk_wachtwoord), False)
Ejemplo n.º 6
0
async def login(gebruiker: GebruikerResponseModel):
    print(gebruiker.json() + "\n\n\n")
    if auth.authenticate_user(gebruiker.gebruikersnaam, gebruiker.wachtwoord):
        return auth.generate_token(gebruiker.gebruikersnaam)
class TestAuthenticationService(TestCase):
    auth = AuthenticationService()

    token_model = TokenModel(token='test', verloop=-1)
    """test_add_token_adds_token test of er een token toegevoegd kan worden aan de cache"""
    def test_add_token_adds_token(self):

        self.auth._add_token(self.token_model)

        includes = self.auth.token_cache.__contains__(self.token_model)

        self.auth._delete_token(self.token_model)

        assert includes

    """test_delete_token_deletes_token test of het verwijderen van een token uit de cache werkt"""

    def test_delete_token_deletes_token(self):
        self.auth._add_token(self.token_model)
        self.auth._delete_token(self.token_model)

        includes = self.auth.token_cache.__contains__(self.token_model)

        assert not includes

    """test_check_expirations_removes_token checkt of _check_expirations de verlopen tokens verwijdert """

    def test_check_expirations_removes_token(self):
        self.auth._check_expirations()

        includes = self.auth.token_cache.__contains__(self.token_model)

        assert not includes

    """test_check_expirations_calls_remove_token test of de methode de _delete_token methode aanroept"""

    @mock.patch.object(AuthenticationService, '_delete_token', return_value=[])
    def test_check_expirations_calls_remove_token(self, mock_delete_token):
        self.auth._add_token(self.token_model)

        self.auth._check_expirations()

        mock_delete_token.assert_called_with(self.token_model)

    """test_check_wachtwoord_returns_false checkt of check_wachtwoord geen foutieve wachtwoorden doorlaat"""

    def test_check_wachtwoord_returns_false(self):
        foutieve_hash = self.auth.hash_wachtwoord('foutieve_hash')

        assert not self.auth._check_wachtwoord('string', foutieve_hash)

    """test_check_wachtwoord_returns_true checkt of een juist wachtwoord door de hash komt"""

    def test_check_wachtwoord_returns_true(self):
        goede_hash = self.auth.hash_wachtwoord('string')

        assert self.auth._check_wachtwoord('string', goede_hash)

    """test_generate_token_returns_token test of er een token wordt gegenereerd door generate_token"""

    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    def test_generate_token_returns_token(self, mocked_gebruikers):
        gebruikersnaam = 'Daniel'

        token = self.auth.generate_token(gebruikersnaam)

        assert self.auth.check_if_token_in_cache(token.token)

    """test_check_if_token_in_cache_returns_true checkt of de token gevonden kan worden in de cache"""

    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    def test_check_if_token_in_cache_returns_true(self, mocked_gebruikers):
        gebruikersnaam = "Daniel"

        token = self.auth.generate_token(gebruikersnaam)

        assert self.auth.check_if_token_in_cache(token.token)

    """test_check_if_token_in_cache_returns_false checkt of een onjuist token niet kan worden gevonden in de cache"""

    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    def test_check_if_token_in_cache_returns_false(self, mocked_gebruiker):
        gebruikersnaam = "Daniel"

        self.auth.generate_token(gebruikersnaam)

        token = self.auth.hash_wachtwoord('fake_token')

        assert not self.auth.check_if_token_in_cache(token)

    """test_can_user_access_returns_true test of de gebruiker gevalideerd kan worden vanuit de cache"""

    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    def test_can_user_access_returns_true(self, mocked_gebruikers):
        token = self.auth.generate_token('Daniel')

        assert self.auth.can_user_access(token.token)

    """test_can_user_access_throws_exception test of de functie een exception teruggeeft als de token niet bestaat"""

    def test_can_user_access_throws_exception(self):
        self.assertRaises(HTTPException, self.auth.can_user_access, 'no_token')

    """test_authticate_throws_exception_if_no_users test of de functie een exceptie geeft als er geen gebruikers in 
    de database staan """

    @mock.patch.object(GebruikerController,
                       'get_gebruikers',
                       return_value=None)
    def test_authticate_throws_exception_if_no_users(self, mocked_result):
        gebruikersnaam = "Daniel"
        wachtwoord = 'onjuist_wachtwoord'

        self.assertRaises(HTTPException, self.auth.authenticate_user,
                          gebruikersnaam, wachtwoord)

    """test_check_if_authenticate_returns_true checkt of een gebruiker in kan loggen loggen met juiste gegevens"""

    @mock.patch.object(
        GebruikerController,
        "get_gebruikers",
        return_value=[
            GebruikerResponseModel(
                id=1,
                gebruikersnaam='test',
                wachtwoord=
                '$2y$12$qjdhqWU1ORp.7GUnkqjT4.g0Nzh//GhvyM6afMsGAj9vt.Rh.zSQC',
                rol=0,
                tijdelijk_wachtwoord=0)
        ])
    def test_check_if_authenticate_returns_true(self,
                                                mocked_gebruiker_response):
        gebruikersnaam = 'test'
        wachtwoord = 'wachtwoord'

        assert self.auth.authenticate_user(gebruikersnaam, wachtwoord)

    """test_check_if_user_has_token_returns_exception checkt of de functie een exception teruggeeft als het 
    wachtwoord onjuist is """

    @mock.patch.object(
        GebruikerController,
        "get_gebruikers",
        return_value=[
            GebruikerResponseModel(
                id=1,
                gebruikersnaam='test',
                wachtwoord=
                '$2y$12$qjdhqWU1ORp.7GUnkqjT4.g0Nzh//GhvyM6afMsGAj9vt.Rh.zSQC',
                rol=0,
                tijdelijk_wachtwoord=0)
        ])
    def test_check_if_user_has_token_returns_exception(
            self, mocked_gebruiker_response):
        gebruikersnaam = "test"
        wachtwoord = 'onjuist_wachtwoord'

        self.assertRaises(HTTPException, self.auth.authenticate_user,
                          gebruikersnaam, wachtwoord)

    """test_hash_wachtwoord_returns_hashed_wachtwoord test of er een wachtwoord gehasht kan worden"""

    def test_hash_wachtwoord_returns_hashed_wachtwoord(self):
        wachtwoord = 'test'

        result = self.auth.hash_wachtwoord(wachtwoord)

        assert self.auth._check_wachtwoord(wachtwoord, result)

    @mock.patch.object(auth, 'get_user_by_token', return_value="naam")
    @mock.patch.object(GebruikerController,
                       'check_is_beheerder',
                       return_value=True)
    def test_check_of_user_is_beheerder_calls_check_is_beheerder(
            self, mocked_check_of_user_is_beheerder, mocked_get_user_by_token):
        self.auth.check_of_user_is_beheerder("token")
        mocked_check_of_user_is_beheerder.assert_called_with("naam")

    @mock.patch.object(auth, 'get_user_by_token', return_value="naam")
    @mock.patch.object(GebruikerController,
                       'check_is_beheerder',
                       return_value=True)
    def test_check_of_user_is_beheerder_calls_check_is_beheerder(
            self, mocked_check_of_user_is_beheerder, mocked_get_user_by_token):
        self.auth.check_of_user_is_beheerder("token")
        mocked_get_user_by_token.assert_called_with("token")

    @mock.patch.object(auth, 'get_user_by_token', return_value="naam")
    @mock.patch.object(GebruikerController,
                       'check_is_beheerder',
                       return_value=True)
    def test_check_of_user_is_beheerder_returns_True(
            self, mocked_check_of_user_is_beheerder, mocked_get_user_by_token):
        result = self.auth.check_of_user_is_beheerder("token")

        assert result == True

    @mock.patch.object(auth, 'get_user_by_token', return_value="naam")
    @mock.patch.object(GebruikerController,
                       'check_is_beheerder',
                       return_value=False)
    def test_check_of_user_is_beheerder_returns_False(
            self, mocked_check_of_user_is_beheerder, mocked_get_user_by_token):
        result = self.auth.check_of_user_is_beheerder("token")

        assert result == False
Ejemplo n.º 8
0
 def setUp(self):
     self.sut = TestClient(app)
     self.gebruiker = GebruikerResponseModel()
     self.token = "1234-1234-1234-1234"
Ejemplo n.º 9
0
class TestGebruikerView(TestCase):
    """test_get_gebruikers test of get_gebruikers de correcte status code teruggeeft"""
    def setUp(self):
        self.sut = TestClient(app)
        self.gebruiker = GebruikerResponseModel()
        self.token = "1234-1234-1234-1234"

    @mock.patch.object(GebruikerMapper, 'get_gebruikers', return_value=[])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    def test_get_gebruikers(self, mocked_auth, mocked_get_gebruikers):
        response = self.sut.get("/?token=" + self.token)
        assert response.status_code == 200

    """test_get_gebruikers_json test of get_gebruikers een json lijst teruggeeft"""

    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(GebruikerMapper, 'get_gebruikers', return_value=[])
    def test_get_gebruikers_json(self, mocked_get_gebruikers, mocked_auth):
        response = self.sut.get("/?token=" + self.token)
        assert response.json() == []

    """test_post_gebruiker test of post_gebruiker de correcte status code teruggeeft"""

    @mock.patch.object(GebruikerMapper,
                       'add_user',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_post_gebruiker(self, mocked_auth, mocked_add_user,
                            mocked_check_of_user_is_beheerder):
        response = self.sut.post("/?token=" + self.token,
                                 json={
                                     'id': 1,
                                     'gebruikersnaam': 'nieuwe_gebruiker',
                                     'wachtwoord': 'wachtwoord',
                                     'rol': 0,
                                     'tijdelijk_wachtwoord': 0
                                 })
        assert response.status_code == 201

    """test_post_gebruiker_json test of post_gebruiker een json lijst teruggeeft"""

    @mock.patch.object(GebruikerMapper,
                       'add_user',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_post_gebruiker_json(self, mocked_auth, mocked_add_user,
                                 mocked_check_of_user_is_beheerder):
        response = self.sut.post("/?token=" + self.token, json={
            "id": "1",
        })
        assert response.status_code == 201

    """test_update_gebruiker test of update_gebruiker de correcte status code teruggeeft"""

    @mock.patch.object(GebruikerMapper,
                       'update_user',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_update_gebruiker(self, mocked_auth, mocked_update_user,
                              mocked_check_of_user_is_beheerder):
        response = self.sut.put("/?token=" + self.token, json={
            "id": "1",
        })
        assert response.status_code == 200

    """test_update_gebruiker tes of update_gebruiker een json lijst teruggeeft"""

    @mock.patch.object(GebruikerMapper,
                       'update_user',
                       return_value=[
                           GebruikerResponseModel(id=1,
                                                  gebruikersnaam='Daniel',
                                                  wachtwoord='wachtwoord',
                                                  rol=0,
                                                  tijdelijk_wachtwoord=0)
                       ])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_update_gebruiker_json(self, mocked_auth, mocked_update_user,
                                   mocked_check_of_user_is_beheerder):
        response = self.sut.put("/?token=" + self.token, json={
            "id": "1",
        })
        assert response.status_code == 200

    """test_delete_gebruiker test of delete_gebruiker de juiste status code teruggeeft"""

    @mock.patch.object(DataMapper,
                       '_stored_procedure',
                       return_value="return_value")
    @mock.patch.object(GebruikerMapper, 'delete_user', return_value=[])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_delete_gebruiker(self, mocked_auth, mocked_gebruikers,
                              mocked_data_mapper,
                              mocked_check_of_user_is_beheerder):
        response = self.sut.delete("/1/?token=" + self.token)
        assert response.status_code == 200

    """test_delete_gebruiker_json test od delete_gebruiker een json lijst teruggeeft"""

    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    @mock.patch.object(GebruikerMapper, 'get_gebruikers', return_value=[])
    @mock.patch.object(GebruikerMapper, 'delete_user', return_value=[])
    def test_delete_gebruiker_json(self, mocked_delete, mocked_gebruikers,
                                   mocked_auth,
                                   mocked_check_of_user_is_beheerder):
        response = self.sut.delete("/1/?token=" + self.token)
        assert response.json() == []

    """Test of login() een status code 200 terug geeft"""

    @mock.patch.object(
        GebruikerMapper,
        'get_gebruikers',
        return_value=[
            GebruikerResponseModel(
                id=1,
                gebruikersnaam='Daniel',
                wachtwoord=
                '$2y$12$qjdhqWU1ORp.7GUnkqjT4.g0Nzh//GhvyM6afMsGAj9vt.Rh.zSQC',
                rol=0,
                tijdelijk_wachtwoord=0)
        ])
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    def test_login_geeft_een_200_status_code(self, mocked_auth,
                                             mocked_get_gebruikers):
        response = self.sut.post("/login",
                                 json={
                                     'id': 1,
                                     'gebruikersnaam': 'Daniel',
                                     'wachtwoord': 'wachtwoord',
                                     'rol': 0,
                                     'tijdelijk_wachtwoord': 0
                                 })
        assert response.status_code == 200

    """Test of login() de juiste token terug stuurt"""

    @mock.patch.object(AuthenticationService,
                       'authenticate_user',
                       return_value=True)
    @mock.patch.object(AuthenticationService,
                       'generate_token',
                       return_value='1234-1234-1234-1234')
    @mock.patch.object(AuthenticationService,
                       'can_user_access',
                       return_value=True)
    def test_login_geeft_een_token(self, mocked_access, mocked_token,
                                   mocked_auth):
        response = self.sut.post("/login",
                                 json={
                                     'id': 1,
                                     'gebruikersnaam': 'Daniel',
                                     'wachtwoord': 'wachtwoord',
                                     'rol': 0,
                                     'tijdelijk_wachtwoord': 0
                                 })
        print(response)
        assert response.json() == self.token

    """Test of verify() de juiste boolean terug stuurt"""

    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=True)
    def test_verify_retourneerd_true(self, mocked_auth):
        response = self.sut.get("/verify?token=" + self.token)
        assert response

    """Test of update_wachtwoord() check_if_token_in_cache() aanroept"""

    @mock.patch.object(GebruikerController,
                       'update_wachtwoord',
                       return_value=None)
    @mock.patch.object(AuthenticationService,
                       'hash_wachtwoord',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'get_user_by_token',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=True)
    def test_update_wachtwoord_called_auth_check_if_token_in_cache(
            self, mock_check_if_token_in_cache, mock_get_user_by_token,
            mock_hash_password, mock_update_wachtwoord):
        # Arrange

        # Act
        self.sut.put("/update_password?token=" + self.token,
                     self.gebruiker.json())

        # Assert
        mock_check_if_token_in_cache.assert_called()

    """Test of update_wachtwoord() get_user_by_token() aanroept"""

    @mock.patch.object(GebruikerController,
                       'update_wachtwoord',
                       return_value=None)
    @mock.patch.object(AuthenticationService,
                       'hash_wachtwoord',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'get_user_by_token',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=True)
    def test_update_wachtwoord_called_auth_get_user_by_token(
            self, mock_check_if_token_in_cache, mock_get_user_by_token,
            mock_hash_password, mock_update_wachtwoord):
        # Arrange

        # Act
        self.sut.put("/update_password?token=" + self.token,
                     self.gebruiker.json())

        # Assert
        mock_get_user_by_token.assert_called()

    """Test of update_wachtwoord() hash_wachtwoord aanroept"""

    @mock.patch.object(GebruikerController,
                       'update_wachtwoord',
                       return_value=None)
    @mock.patch.object(AuthenticationService,
                       'hash_wachtwoord',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'get_user_by_token',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=True)
    def test_update_wachtwoord_called_auth_hash_password(
            self, mock_check_if_token_in_cache, mock_get_user_by_token,
            mock_hash_password, mock_update_wachtwoord):
        # Arrange

        # Act
        self.sut.put("/update_password?token=" + self.token,
                     self.gebruiker.json())

        # Assert
        mock_hash_password.assert_called()

    """Test of update_wachtwoord() update_wachtwoord() aanroept"""

    @mock.patch.object(GebruikerController,
                       'update_wachtwoord',
                       return_value=None)
    @mock.patch.object(AuthenticationService,
                       'hash_wachtwoord',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'get_user_by_token',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=True)
    def test_update_wachtwoord_called_controller_update_password(
            self, mock_check_if_token_in_cache, mock_get_user_by_token,
            mock_hash_password, mock_update_wachtwoord):
        # Arrange

        # Act
        self.sut.put("/update_password?token=" + self.token,
                     self.gebruiker.json())

        # Assert
        mock_update_wachtwoord.assert_called()

    @mock.patch.object(GebruikerController,
                       'update_wachtwoord',
                       return_value=None)
    @mock.patch.object(AuthenticationService,
                       'hash_wachtwoord',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'get_user_by_token',
                       return_value="string")
    @mock.patch.object(AuthenticationService,
                       'check_if_token_in_cache',
                       return_value=False)
    def test_update_wachtwoord_raises_HTTPException(
            self, mock_check_if_token_in_cache, mock_get_user_by_token,
            mock_hash_password, mock_update_wachtwoord):
        # Arrange

        # Act
        try:
            self.sut.put("/update_password?token=" + self.token,
                         self.gebruiker.json())
        # Assert
        except HTTPException as err:
            assert err.detail == 'Uw token is ongeldig of verlopen'

    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    def test_is_beheerder_calls_correct_method(
            self, mock_check_of_user_is_beheerder):
        self.sut.get('/is_beheerder?token=' + self.token)
        mock_check_of_user_is_beheerder.assert_called_with(self.token)

    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=True)
    @mock.patch.object(GebruikerController, 'get_rollen', return_value=[])
    def test_get_rollen_calls_correct_methods_when_user_is_beheerder(
            self, mock_get_rollen, mock_check_of_user_is_beheerder):
        # Act
        self.sut.get('/rollen?token=' + self.token)

        # Assert
        mock_get_rollen.assert_called()
        mock_check_of_user_is_beheerder.assert_called()

    @mock.patch.object(AuthenticationService,
                       'check_of_user_is_beheerder',
                       return_value=False)
    @mock.patch.object(GebruikerController, 'get_rollen', return_value=[])
    def test_get_rollen_thows_exception_when_not_beheerder(
            self, mock_get_rollen, mock_check_of_user_is_beheerder):
        # Act
        try:
            self.sut.get("/rollen?token=" + self.token)
        # Assert
        except HTTPException as err:
            assert err.detail == 'U bent geen beheerder'
Ejemplo n.º 10
0
    def get_gebruikers(self, id: int = None):
        query = None
        value = None
        if id is None:  # als er geen id is meegegeven
            query = "SELECT * FROM gebruiker"  # selecteren we alles uit de database
        else:
            query = "SELECT * FROM gebruiker WHERE id = %s"  # anders geven we dat id mee
            value = (id, )

        result = self._data_handler(query, value, True)

        gebruiker_lijst = []
        for row in result:  # voor iedere gebruiker die meegegeven wordt
            gebruiker = GebruikerResponseModel(
            )  # maken we een nieuw model aan
            if type(row) == GebruikerResponseModel:
                gebruiker.id = row.id
                gebruiker.gebruikersnaam = row.gebruikersnaam
                gebruiker.wachtwoord = row.wachtwoord
                gebruiker.rol = row.rol
                gebruiker.tijdelijk_wachtwoord = row.tijdelijk_wachtwoord
            if type(row) == tuple:
                gebruiker.id = row[0]
                gebruiker.gebruikersnaam = row[1]
                gebruiker.wachtwoord = row[2]
                gebruiker.rol = row[3]
                gebruiker.tijdelijk_wachtwoord = row[4]

            gebruiker_lijst.append(
                gebruiker)  # Voeg deze gebruiker toe aan de lijst

        if id is not None:
            return gebruiker_lijst[
                0]  # als er geen id is meegegeven, geven we het eerste (en enige) resultaat terug
        else:
            return gebruiker_lijst  # anders geven we de hele lijst terug
Ejemplo n.º 11
0
 def setUp(self):
     self.gebruiker_controller = GebruikerController()
     self.gebruiker_model = GebruikerResponseModel()
Ejemplo n.º 12
0
class TestGebruikerRepo(TestCase):
    mapper = GebruikerMapper()

    return_object = GebruikerResponseModel()
    return_object.id = 1
    return_object.gebruikersnaam = "gebruikersnaam"
    return_object.wachtwoord = "wachtwoord"
    return_object.rol = 1
    return_object.tijdelijk_wachtwoord = 0

    return_list = [return_object, return_object]
    """test_db_connection test of de db de connector aanroept"""
    @mock.patch.object(mysql.connector, 'connect', return_value=[])
    def test_db_connection(self, mock_connect):
        self.mapper._db_connection()

        mock_connect.assert_called()

    """test_get_gebruikers_returns_lijst test of 'get gebruikers' een lijst returnt"""

    @mock.patch.object(GebruikerJSONParser,
                       'get_gebruikers',
                       return_value=return_object)
    def test_get_gebruikers_returns_lijst(self, mock_parser):
        result = self.mapper.get_gebruikers(1)

        assert result.gebruikersnaam == self.return_object.gebruikersnaam

    """test_add_user_calls_mapper test of 'add_user' de mapper aanroept"""

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[])
    @mock.patch.object(GebruikerMapper, 'get_gebruikers', return_value=[])
    def test_add_user_calls_mapper(self, mock_get_gebruikers, mock_handler):
        gebruiker = GebruikerResponseModel()
        gebruiker.gebruikersnaam = "Gebruiker"
        gebruiker.tijdelijk_wachtwoord = 1
        gebruiker.rol = 1
        gebruiker.wachtwoord = "changeme"

        self.mapper.add_user(gebruiker)

        mock_handler.assert_called_with(
            "INSERT INTO gebruiker (gebruikersnaam, wachtwoord, rol, tijdelijk_wachtwoord) VALUES " \
            "(%s, %s, %s, %s)",
            (gebruiker.gebruikersnaam, gebruiker.wachtwoord, gebruiker.rol, gebruiker.tijdelijk_wachtwoord), False)

    """test_update_user_calls_handler test of de update functie de handler aanroept"""

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[])
    @mock.patch.object(GebruikerMapper, 'get_gebruikers', return_value=[])
    def test_update_user_calls_handler(self, mock_get_gebruikers,
                                       mock_handler):
        gebruiker = GebruikerResponseModel()
        gebruiker.id = 1
        gebruiker.gebruikersnaam = "Gebruiker"
        gebruiker.tijdelijk_wachtwoord = 1
        gebruiker.rol = 1
        gebruiker.wachtwoord = "changeme"

        self.mapper.update_user(gebruiker)

        mock_handler.assert_called_with(
            "UPDATE gebruiker SET gebruikersnaam = %s, wachtwoord = %s, rol = %s, tijdelijk_wachtwoord = %s WHERE id = %s",
            (gebruiker.gebruikersnaam, gebruiker.wachtwoord, gebruiker.rol,
             gebruiker.tijdelijk_wachtwoord, gebruiker.id), False)

    """test_delete_user_returns_list_of_users test of het verwijderen van een gebruiker een lijst met gebruikers 
    teruggeeft """

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[])
    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=return_list)
    def test_delete_user_returns_list_of_users(self, get_mock, mock_handler):
        result = self.mapper.delete_user(1)

        assert result[0].gebruikersnaam == self.return_list[0].gebruikersnaam

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[])
    @mock.patch.object(GebruikerMapper,
                       'get_gebruikers',
                       return_value=return_list)
    def test_get_tijdelijk_wachtwoord_returns_int(self, get_mock,
                                                  mock_handler):
        result = self.mapper.is_wachtwoord_tijdelijk(
            self.return_object.gebruikersnaam)

        assert result == self.return_list[0].tijdelijk_wachtwoord

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[])
    def test_update_wachtwoord_calls__data_handler(self, mock__data_handler):
        # Act
        self.mapper.update_wachtwoord(self.return_object)

        # Assert
        mock__data_handler.assert_called()

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[(1, )])
    def test_check_is_beheerder_calls__data_handler(self, mock__data_handler):
        # Act
        self.mapper.check_is_beheerder("test")

        # Assert
        mock__data_handler.assert_called()

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[(1, )])
    def test_check_is_beheerder_returns_True(self, mock__data_handler):
        # Act
        result = self.mapper.check_is_beheerder("test")

        # Assert
        assert result == True

    @mock.patch.object(GebruikerMapper, '_data_handler', return_value=[(0, )])
    def test_check_is_beheerder_returns_False(self, mock__data_handler):
        # Act
        result = self.mapper.check_is_beheerder("test")

        # Assert
        assert result == False

    @mock.patch.object(GebruikerMapper,
                       '_data_handler',
                       return_value=[(1, 'stuff')])
    def test_get_rollen_returns_array_with_the_correct_length(
            self, mock__data_handler):
        # Arrange
        expected_length = 1

        # Act
        result = self.mapper.get_rollen()

        # Assert
        mock__data_handler.assert_called()
        assert len(result) == expected_length