мой файл rout.py
Я хочу проверить api своего поста, что, независимо от функции, которую он вызывает, и избегая добавления данных, добавляемых в базу данных, я сделал несколько насмешек (попытка реализовать это в первый раз) дело в том, что я не получаю ошибок, просто каждый раз, когда я запускаю тест, он добавляет в мою базу данных данные, которые мне не нужны. что я делаю неправильно ???
from Login_app import app, db
from flask import request, jsonify
from Login_app.routes_Util import check_credentials_post, check_credentials_put, check_json_post, check_json_put
import http
################################################################################
@app.route('/register/', methods=['POST'])
def post():
db.create_all()
data_received = request.get_json()
if check_json_post(data_received) is False:
return jsonify(status="Bad Entries"), http.HTTPStatus.BAD_REQUEST
else:
username = (data_received["username"])
password = (data_received["password"])
email = (data_received["email"])
result = check_credentials_post(username, password, email)
if result == 208:
return jsonify(status="Already Exists"), http.HTTPStatus.ALREADY_REPORTED
elif result == 503:
return jsonify(status="Database Error"), http.HTTPStatus.SERVICE_UNAVAILABLE
elif result == 202:
return jsonify(status="Added New User"), http.HTTPStatus.ACCEPTED
################################################################################
@app.route('/login/', methods=['PUT'])
def valid():
data_received = request.get_json()
if check_json_put(data_received) is False:
return jsonify(status="Bad Entries"), http.HTTPStatus.BAD_REQUEST
else:
username = (data_received["username"])
password = (data_received["password"])
result = check_credentials_put(username, password)
if result == "401_user_not_found":
return jsonify(status="User does not exist"), http.HTTPStatus.UNAUTHORIZED
elif result == "401_password_not_matching":
return jsonify(status="Password does not match"), http.HTTPStatus.UNAUTHORIZED
elif result == 503:
return jsonify(status="Database Error"), http.HTTPStatus.SERVICE_UNAVAILABLE
elif result == 202:
return jsonify(status="Login successful"), http.HTTPStatus.ACCEPTED
################################################################################
структура каталога
Login Portal
.....\Login_app
.........\tests
..........test_routes_mock.py
.....routes.py
.....__init__.py
.....config.py
.....routes.Util.py
.....
.....
venv
main.py
мой тестовый файл test_routes_mock.py внутри тестовой папки
import json
from unittest import mock
import unittest
from Login_app import app
class FlaskTest(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
@mock.patch('Login_app.api_util.check_credentials_post')
@mock.patch('Login_app.api_util.check_json_post')
def test_register(self, mock_check_credentials_post, mock_check_json_post):
mock_check_credentials_post.return_value = 202
mock_check_json_post.return_value = True
result = self.app.post('/register/',
data=json.dumps({'username': 'user1', 'password': 'pass1', 'email': 'user@gmail.com'}),
content_type='application/json')
self.assertEqual(result.status_code, 202)
if __name__ == '__main__':
unittest.main()