Beispiel #1
0
async def test_get_not_found():
    app.mongodb = MongoDBMock(find_one_result=None)
    from fastapi_contrib.db.client import MongoDBClient
    MongoDBClient.__instance = None
    MongoDBClient._MongoDBClient__instance = None
    instance = await Model.get(id=1)
    assert instance is None
Beispiel #2
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pytest

from fastapi import FastAPI
from starlette.requests import Request

from fastapi_contrib.db.models import MongoDBTimeStampedModel
from fastapi_contrib.serializers.common import ModelSerializer
from fastapi_contrib.pagination import Pagination

from tests.mock import MongoDBMock
from tests.utils import override_settings

app = FastAPI()
app.mongodb = MongoDBMock()


class Model(MongoDBTimeStampedModel):
    class Meta:
        collection = "collection"


class TestSerializer(ModelSerializer):
    class Meta:
        model = Model


@pytest.mark.asyncio
@override_settings(fastapi_app="tests.db.test_serializers.app")
async def test_paginate_no_filters():
from motor.motor_asyncio import AsyncIOMotorDatabase

from fastapi_contrib.auth.models import User, Token
from fastapi_contrib.db.utils import (
    default_id_generator,
    get_next_id,
    setup_mongodb,
    get_models,
    create_indexes,
)
from fastapi_contrib.common.utils import get_now
from tests.mock import MongoDBMock
from tests.utils import override_settings

app = FastAPI()
app.mongodb = MongoDBMock(collection_name="tokens",
                          create_indexes_result="tokens")


def test_default_id_generator():
    _id = default_id_generator()
    assert _id.bit_length() <= 32


def test_get_now():
    _now = get_now()
    # import pdb;pdb.set_trace()
    assert datetime.now(tz=pytz.UTC) >= _now


def custom_get_now():
    return datetime.now()
from fastapi import FastAPI

from pydantic import BaseModel, ValidationError
from starlette.testclient import TestClient

from fastapi_contrib.db.models import MongoDBTimeStampedModel
from fastapi_contrib.serializers import openapi
from fastapi_contrib.serializers.common import Serializer, ModelSerializer
from tests.mock import MongoDBMock
from tests.utils import override_settings
from unittest.mock import patch
from tests.utils import AsyncMock

app = FastAPI()

app.mongodb = MongoDBMock(inserted_id=3)


class RouteTestModel(MongoDBTimeStampedModel):
    c: str

    class Meta:
        collection = "collection"


@openapi.patch
class RouteTestSerializer(ModelSerializer):
    a: int = 1
    d: int = None

    class Meta: