def test_retrieve_user_by_id(self, mock_con, mock_user):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.retrieve_user_by_id("0")
     mock_db.cursor.assert_called_once()
     command = "SELECT * FROM Users WHERE id='{}'".format("0")
     mock_cur.execute.assert_called_with(command)
 def test_set_language(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.set_language("test", "fr-ru")
     mock_db.cursor.assert_called_once()
     command: str = "UPDATE Settings SET language = '{}' WHERE user_id=(SELECT id FROM Users WHERE login='******')".\
         format("fr-ru", "test")
     mock_cur.execute.assert_called_with(command)
 def test_insert_card(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.insert_card("test", "test", "test", 'Public deck')
     mock_db.cursor.assert_called_once()
     command: str = "INSERT INTO Card(word,translation,context,deck_id) VALUES('test', 'test', 'test', " \
                    "(SELECT id FROM Deck WHERE name='Public deck'))"
     mock_cur.execute.assert_called_with(command)
 def test_check_if_user_has_deck(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.check_if_user_has_deck("0", "test deck")
     mock_db.cursor.assert_called_once()
     command: str = "SELECT * FROM Deck WHERE name='{}' and user_id='{}'".format(
         "test deck", "0")
     mock_cur.execute.assert_called_with(command)
 def test_get_language_by_id(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.get_language_by_id("0")
     mock_db.cursor.assert_called_once()
     command: str = "SELECT language FROM Settings WHERE user_id='{}'".format(
         "0")
     mock_cur.execute.assert_called_with(command)
 def test_add_deck(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.add_deck("test")
     mock_db.cursor.assert_called_once()
     command: str = "INSERT INTO Deck(name, user_id) VALUES ('{}', (SELECT id FROM USERS WHERE login='******'));".\
         format("test deck", "test")
     mock_cur.execute.assert_called_with(command)
     methods.add_deck("test", "deck 2")
     command: str = "INSERT INTO Deck(name, user_id) VALUES ('{}', (SELECT id FROM USERS WHERE login='******'));". \
         format("deck 2", "test")
     mock_cur.execute.assert_called_with(command)
 def test_add_user(self, mock_con):
     methods = database_methods.DatabaseMethods(settings.DB_USER,
                                                settings.DB_PASSWORD,
                                                "localhost",
                                                settings.DB_NAME)
     mock_db = mock_con.return_value
     mock_cur = mock_db.cursor.return_value
     methods.add_user("test", "test")
     mock_db.cursor.assert_called()
     command_user: str = "INSERT INTO Users(login, password_hash) VALUES ('{}', '{}');". \
         format("test", hashlib.sha512("test".encode('utf-8')).hexdigest())
     command_deck: str = "INSERT INTO Deck(name, user_id) VALUES ('{}', (SELECT id FROM USERS WHERE login='******'));". \
         format("test deck", "test")
     command_lang: str = "INSERT INTO Settings(user_id, language) " \
                         "VALUES((SELECT id FROM Users WHERE login='******'), '{}')".format("test", "en-ru")
     calls = [
         mock.call(command_user),
         mock.call(command_deck),
         mock.call(command_lang)
     ]
     mock_cur.execute.assert_has_calls(calls)
示例#8
0
                           help='Source language cannot be blank')

cardidparser = reqparse.RequestParser()
cardidparser.add_argument('cardId',
                          type=str,
                          required=True,
                          help='Card id cannot be blank')

deckidparser = reqparse.RequestParser()
deckidparser.add_argument('deck',
                          type=str,
                          required=True,
                          help='Deck id cannot be blank')

methods = database_methods.DatabaseMethods(settings.DB_USER,
                                           settings.DB_PASSWORD,
                                           settings.DB_HOST, settings.DB_NAME,
                                           settings.DB_PORT)


def authenticate(username, password):
    user: user_methods.User = methods.retrieve_user(username, password)
    if user:
        return user


def identity(payload):
    user_id = payload['identity']
    user: user_methods.User = methods.retrieve_user_by_id(user_id)
    if user:
        return user