Source code for tests.integration_tests.db.test_yawning_titan_db_yawning_titan_query
"""This test modules tests the integration between YawningTitanDB and YawningTitanQuery."""
from unittest.mock import patch
import pytest
from tests.unit_tests.db.test_yawning_titan_db import DemoDB, DemoSchema, demo_db_docs
from tests.yawning_titan_db_patch import yawning_titan_db_init_patch
from yawning_titan.db.yawning_titan_db import YawningTitanDB
docs = demo_db_docs # noqa
[docs]@pytest.mark.integration_test
def test_count_with_condition(demo_db_docs):
"""Test the YawningTitanDB.count function with a condition."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
count = db.count(DemoSchema.AGE == 25)
db.close_and_delete_temp_db()
assert count == 1
[docs]@pytest.mark.integration_test
def test_yt_query_len_eq(demo_db_docs):
"""Test the custom :func:`yawning_titan.db.query.YawningTitanQuery.len_eq` function."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
results = db.search(DemoSchema.HOBBIES.len_eq(3))
assert len(results) == 1
assert results == [demo_db_docs[0]]
db.close_and_delete_temp_db()
[docs]@pytest.mark.integration_test
def test_yt_query_len_lt(demo_db_docs):
"""Test the custom :func:`yawning_titan.db.query.YawningTitanQuery.len_lt` function."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
results = db.search(DemoSchema.HOBBIES.len_lt(4))
assert len(results) == 1
assert results == [demo_db_docs[0]]
db.close_and_delete_temp_db()
[docs]@pytest.mark.integration_test
def test_yt_query_len_le(demo_db_docs):
"""Test the custom :func:`yawning_titan.db.query.YawningTitanQuery.len_le` function."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
results = db.search(DemoSchema.HOBBIES.len_le(4))
assert len(results) == 2
assert results == demo_db_docs[:2]
db.close_and_delete_temp_db()
[docs]@pytest.mark.integration_test
def test_yt_query_len_gt(demo_db_docs):
"""Test the custom :func:`yawning_titan.db.query.YawningTitanQuery.len_gt` function."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
results = db.search(DemoSchema.HOBBIES.len_gt(3))
assert len(results) == 2
assert results == demo_db_docs[1:]
db.close_and_delete_temp_db()
[docs]@pytest.mark.integration_test
def test_yt_query_len_ge(demo_db_docs):
"""Test the custom :func:`yawning_titan.db.query.YawningTitanQuery.len_ge` function."""
with patch.object(YawningTitanDB, "__init__", yawning_titan_db_init_patch):
db = DemoDB("test")
for item in demo_db_docs:
db.insert(item)
results = db.search(DemoSchema.HOBBIES.len_ge(3))
assert len(results) == 3
assert results == demo_db_docs
db.close_and_delete_temp_db()