Untitled

 avatar
unknown
plain_text
5 months ago
2.1 kB
2
Indexable
from fastapi import FastAPI, Query, HTTPException
from fastapi.testclient import TestClient
from typing import List
import pytest
from pytest import MonkeyPatch
from src.database.models.Analytics import AnalyticsModel
from src.database.dbutils import *
from src.dependables import auth, db
from sqlalchemy.orm import Session
from unittest.mock import Mock, MagicMock, create_autospec


def test_is_db_locked(mock_db_session):
    db_session = MagicMock()
    mock_db_session.scalar.return_value = db_session
    db_session.is_db_locked = True
    result = is_db_locked(mock_db_session)
    assert result == True


def test_is_db_locked_metadata_none(mock_db_session):
    db_session = MagicMock()
    mock_db_session.scalar.return_value = None
    db_session.is_db_locked = True
    result = is_db_locked(mock_db_session)
    assert result == False


def test_is_db_locked_with_exception(mock_db_session):
    mock_db_session.scalar.side_effect = Exception
    result = is_db_locked(mock_db_session)
    assert result == False


def test_lock_db(mock_db_session):
    db_session = MagicMock()
    mock_db_session.scalar.return_value = db_session
    lock_db(mock_db_session)
    mock_db_session.commit.assert_called_once()
    assert db_session.is_db_locked == True


def test_lock_db_with_exception(mock_db_session):
    db_session = MagicMock()
    mock_db_session.scalar.side_effect = Exception
    lock_db(mock_db_session)
    mock_db_session.commit.assert_not_called()
    assert db_session.is_db_locked != True


def test_unlock_db(mock_db_session):
    db_session = MagicMock()
    mock_db_session.scalar.return_value = db_session
    unlock_db(mock_db_session)
    mock_db_session.commit.assert_called_once()
    assert db_session.is_db_locked == False


def test_unlock_db_with_exception(mock_db_session):
    mp = MonkeyPatch()
    mp.setenv("ENV", "local")
    db_session = MagicMock()
    mock_db_session.scalar.side_effect = Exception
    unlock_db(mock_db_session)
    mock_db_session.commit.assert_not_called()
    assert db_session.is_db_locked != False
Editor is loading...
Leave a Comment