Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix DeprecationWarning '@pytest.fixture' #225

Merged
merged 2 commits into from
May 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ clean:
rm -rf build
rm -rf dist
rm -rf redis_om
rm -rf tests_sync
docker-compose down


Expand Down
1 change: 1 addition & 0 deletions aredis_om/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import aioredis


URL = os.environ.get("REDIS_OM_URL", None)


Expand Down
2 changes: 2 additions & 0 deletions make_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"aredis_om": "redis_om",
"aioredis": "redis",
":tests.": ":tests_sync.",
"pytest_asyncio": "pytest",
"py_test_mark_asyncio": "py_test_mark_sync",
}


Expand Down
2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[pytest]
asyncio_mode = strict
8 changes: 8 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@
TEST_PREFIX = "redis-om:testing"


py_test_mark_asyncio = pytest.mark.asyncio


# "pytest_mark_sync" causes problem in pytest
def py_test_mark_sync(f):
return f # no-op decorator


@pytest.fixture(scope="session")
def event_loop(request):
loop = asyncio.get_event_loop_policy().new_event_loop()
Expand Down
47 changes: 26 additions & 21 deletions tests/test_hash_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from unittest import mock

import pytest
import pytest_asyncio
from pydantic import ValidationError

from aredis_om import (
Expand All @@ -22,15 +23,15 @@
# We need to run this check as sync code (during tests) even in async mode
# because we call it in the top-level module scope.
from redis_om import has_redisearch

from tests.conftest import py_test_mark_asyncio

if not has_redisearch():
pytestmark = pytest.mark.skip

today = datetime.date.today()


@pytest.fixture
@pytest_asyncio.fixture
async def m(key_prefix, redis):
class BaseHashModel(HashModel, abc.ABC):
class Meta:
Expand Down Expand Up @@ -60,7 +61,7 @@ class Meta:
)


@pytest.fixture
@pytest_asyncio.fixture
async def members(m):
member1 = m.Member(
first_name="Andrew",
Expand Down Expand Up @@ -95,7 +96,7 @@ async def members(m):
yield member1, member2, member3


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_exact_match_queries(members, m):
member1, member2, member3 = members

Expand Down Expand Up @@ -129,7 +130,7 @@ async def test_exact_match_queries(members, m):
assert actual == [member2]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_full_text_search_queries(members, m):
member1, member2, member3 = members

Expand All @@ -142,7 +143,7 @@ async def test_full_text_search_queries(members, m):
assert actual == [member1, member3]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_recursive_query_resolution(members, m):
member1, member2, member3 = members

Expand All @@ -157,7 +158,7 @@ async def test_recursive_query_resolution(members, m):
assert actual == [member2, member1, member3]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_tag_queries_boolean_logic(members, m):
member1, member2, member3 = members

Expand All @@ -172,7 +173,7 @@ async def test_tag_queries_boolean_logic(members, m):
assert actual == [member1, member3]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_tag_queries_punctuation(m):
member1 = m.Member(
first_name="Andrew, the Michael",
Expand Down Expand Up @@ -210,7 +211,7 @@ async def test_tag_queries_punctuation(m):
assert results == [member2]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_tag_queries_negation(members, m):
member1, member2, member3 = members

Expand Down Expand Up @@ -282,7 +283,7 @@ async def test_tag_queries_negation(members, m):
assert actual == [member3]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_numeric_queries(members, m):
member1, member2, member3 = members

Expand Down Expand Up @@ -313,7 +314,7 @@ async def test_numeric_queries(members, m):
assert actual == [member2, member1]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_sorting(members, m):
member1, member2, member3 = members

Expand Down Expand Up @@ -357,7 +358,8 @@ def test_validation_passes(m):
)
assert member.first_name == "Andrew"

@pytest.mark.asyncio

@py_test_mark_asyncio
async def test_retrieve_first(m):
member = m.Member(
first_name="Simon",
Expand Down Expand Up @@ -395,7 +397,8 @@ async def test_retrieve_first(m):
first_one = await m.Member.find().sort_by("age").first()
assert first_one == member3

@pytest.mark.asyncio

@py_test_mark_asyncio
async def test_saves_model_and_creates_pk(m):
member = m.Member(
first_name="Andrew",
Expand All @@ -411,7 +414,8 @@ async def test_saves_model_and_creates_pk(m):
member2 = await m.Member.get(member.pk)
assert member2 == member

@pytest.mark.asyncio

@py_test_mark_asyncio
async def test_all_pks(m):
member = m.Member(
first_name="Simon",
Expand Down Expand Up @@ -441,7 +445,8 @@ async def test_all_pks(m):

assert len(pk_list) == 2

@pytest.mark.asyncio

@py_test_mark_asyncio
async def test_delete(m):
member = m.Member(
first_name="Simon",
Expand All @@ -457,7 +462,7 @@ async def test_delete(m):
assert response == 1


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_expire(m):
member = m.Member(
first_name="Expire",
Expand Down Expand Up @@ -521,7 +526,7 @@ class InvalidMember(m.BaseHashModel):
friend_ids: List[str]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_saves_many(m):
member1 = m.Member(
first_name="Andrew",
Expand All @@ -547,22 +552,22 @@ async def test_saves_many(m):
assert await m.Member.get(pk=member2.pk) == member2


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_updates_a_model(members, m):
member1, member2, member3 = members
await member1.update(last_name="Smith")
member = await m.Member.get(member1.pk)
assert member.last_name == "Smith"


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_paginate_query(members, m):
member1, member2, member3 = members
actual = await m.Member.find().sort_by("age").all(batch_size=1)
assert actual == [member2, member1, member3]


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_access_result_by_index_cached(members, m):
member1, member2, member3 = members
query = m.Member.find().sort_by("age")
Expand All @@ -577,7 +582,7 @@ async def test_access_result_by_index_cached(members, m):
assert not mock_db.called


@pytest.mark.asyncio
@py_test_mark_asyncio
async def test_access_result_by_index_not_cached(members, m):
member1, member2, member3 = members
query = m.Member.find().sort_by("age")
Expand Down
Loading