Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

conftest.py 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import os
  2. from unittest.mock import MagicMock, patch
  3. import pytest
  4. from flask import Flask
  5. # Getting the absolute path of the current file's directory
  6. ABS_PATH = os.path.dirname(os.path.abspath(__file__))
  7. # Getting the absolute path of the project's root directory
  8. PROJECT_DIR = os.path.abspath(os.path.join(ABS_PATH, os.pardir, os.pardir))
  9. CACHED_APP = Flask(__name__)
  10. # set global mock for Redis client
  11. redis_mock = MagicMock()
  12. redis_mock.get = MagicMock(return_value=None)
  13. redis_mock.setex = MagicMock()
  14. redis_mock.setnx = MagicMock()
  15. redis_mock.delete = MagicMock()
  16. redis_mock.lock = MagicMock()
  17. redis_mock.exists = MagicMock(return_value=False)
  18. redis_mock.set = MagicMock()
  19. redis_mock.expire = MagicMock()
  20. redis_mock.hgetall = MagicMock(return_value={})
  21. redis_mock.hdel = MagicMock()
  22. redis_mock.incr = MagicMock(return_value=1)
  23. # apply the mock to the Redis client in the Flask app
  24. redis_patcher = patch("extensions.ext_redis.redis_client", redis_mock)
  25. redis_patcher.start()
  26. @pytest.fixture
  27. def app() -> Flask:
  28. return CACHED_APP
  29. @pytest.fixture(autouse=True)
  30. def _provide_app_context(app: Flask):
  31. with app.app_context():
  32. yield
  33. @pytest.fixture(autouse=True)
  34. def reset_redis_mock():
  35. """reset the Redis mock before each test"""
  36. redis_mock.reset_mock()
  37. redis_mock.get.return_value = None
  38. redis_mock.setex.return_value = None
  39. redis_mock.setnx.return_value = None
  40. redis_mock.delete.return_value = None
  41. redis_mock.exists.return_value = False
  42. redis_mock.set.return_value = None
  43. redis_mock.expire.return_value = None
  44. redis_mock.hgetall.return_value = {}
  45. redis_mock.hdel.return_value = None
  46. redis_mock.incr.return_value = 1