Open
Description
Two successive runs of the test suite resulted in failure and success without any changes to the code.
The first failure was caused by AssertionError in test_pagination_queries
:
members = (Member(id=0, first_name='Andrew', last_name='Brookins', email='a@example.com', join_date=datetime.date(2023, 2, 11), ...com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.'))
m = Models(BaseHashModel=<class 'tests_sync.test_hash_model.m.<locals>.BaseHashModel'>, Order=<class 'tests_sync.test_hash_model.m.<locals>.Order'>, Member=<class 'tests_sync.test_hash_model.m.<locals>.Member'>)
@py_test_mark_sync
def test_pagination_queries(members, m):
member1, member2, member3 = members
actual = m.Member.find(m.Member.last_name == "Brookins").page()
assert actual == [member1, member2]
actual = m.Member.find().page(1, 1)
> assert actual == [member2]
E AssertionError: assert [Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.')] == [Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')]
E At index 0 diff: Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.') != Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')
E Full diff:
E - [Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')]
E + [Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.')]
tests_sync/test_hash_model.py:187: AssertionError
Attached is a full log showing the first failure and immediate re-run resulting in success.
Full console output
~/Repositories/redis-om-python fix-model-typings* 9s
redis-om-DEJACET3-py3.10 ❯ make test
/opt/homebrew/bin/poetry install
Installing dependencies from lock file
No dependencies to install or update
Installing the current project: redis-om (0.1.2)
touch .install.stamp
/opt/homebrew/bin/poetry run python make_sync.py
docker-compose up -d
[+] Running 7/7
⠿ oss_redis Pulled 3.6s
⠿ 5731adb3a4ab Already exists 0.0s
⠿ e78ad00da4bd Pull complete 0.6s
⠿ acf81d284940 Pull complete 0.8s
⠿ c19f7ed7779d Pull complete 1.5s
⠿ 9df49c3f82f2 Pull complete 1.5s
⠿ cf4fe2915070 Pull complete 1.5s
[+] Running 3/3
⠿ Network redis-om-python_default Created 0.0s
⠿ Container redis-om-python-oss_redis-1 Started 0.4s
⠿ Container redis-om-python-redis-1 Started 0.5s
REDIS_OM_URL=""redis://localhost:6380?decode_responses=True"" /opt/homebrew/bin/poetry run pytest -n auto -vv ./tests/ ./tests_sync/ --cov-report term-missing --cov aredis_om redis_om
=============================================================================== test session starts ================================================================================
platform darwin -- Python 3.10.8, pytest-7.2.1, pluggy-1.0.0 -- /Users/marian/Library/Caches/pypoetry/virtualenvs/redis-om-DEJACET3-py3.10/bin/python
cachedir: .pytest_cache
rootdir: /Users/marian/Repositories/redis-om-python, configfile: pytest.ini
plugins: xdist-3.2.0, asyncio-0.20.3, cov-4.0.0
asyncio: mode=strict
[gw0] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw1] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw2] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw3] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw4] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw5] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw6] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw7] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw0] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw1] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw2] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw3] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw4] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw5] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw6] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw7] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
gw0 [152] / gw1 [152] / gw2 [152] / gw3 [152] / gw4 [152] / gw5 [152] / gw6 [152] / gw7 [152]
scheduling tests via LoadScheduling
tests/test_hash_model.py::test_recursive_query_resolution
tests/test_hash_model.py::test_numeric_queries
tests/test_hash_model.py::test_validation_passes
tests/test_hash_model.py::test_raises_error_with_dicts
tests/test_hash_model.py::test_delete
tests/test_hash_model.py::test_access_result_by_index_not_cached
tests/test_hash_model.py::test_delete_many
tests/test_hash_model.py::test_exact_match_queries
[gw3] [ 0%] PASSED tests/test_hash_model.py::test_validation_passes
[gw5] [ 1%] PASSED tests/test_hash_model.py::test_raises_error_with_dicts
tests/test_hash_model.py::test_retrieve_first
tests/test_hash_model.py::test_raises_error_with_sets
[gw4] [ 1%] PASSED tests/test_hash_model.py::test_delete
tests/test_hash_model.py::test_expire
[gw1] [ 2%] PASSED tests/test_hash_model.py::test_recursive_query_resolution
[gw6] [ 3%] PASSED tests/test_hash_model.py::test_delete_many
tests/test_hash_model.py::test_updates_a_model
tests/test_hash_model.py::test_tag_queries_boolean_logic
[gw5] [ 3%] PASSED tests/test_hash_model.py::test_raises_error_with_sets
[gw7] [ 4%] PASSED tests/test_hash_model.py::test_access_result_by_index_not_cached
tests/test_hash_model.py::test_raises_error_with_lists
tests/test_hash_model.py::test_schema
[gw2] [ 5%] PASSED tests/test_hash_model.py::test_numeric_queries
tests/test_hash_model.py::test_sorting
[gw0] [ 5%] PASSED tests/test_hash_model.py::test_exact_match_queries
tests/test_hash_model.py::test_delete_non_exist
[gw3] [ 6%] PASSED tests/test_hash_model.py::test_retrieve_first
tests/test_hash_model.py::test_saves_model_and_creates_pk
[gw4] [ 7%] PASSED tests/test_hash_model.py::test_expire
tests/test_hash_model.py::test_raises_error_with_embedded_models
[gw1] [ 7%] PASSED tests/test_hash_model.py::test_tag_queries_boolean_logic
tests/test_hash_model.py::test_tag_queries_punctuation
[gw5] [ 8%] PASSED tests/test_hash_model.py::test_raises_error_with_lists
[gw7] [ 9%] PASSED tests/test_hash_model.py::test_schema
tests/test_hash_model.py::test_saves_many
tests/test_hash_model.py::test_primary_key_model_error
[gw6] [ 9%] PASSED tests/test_hash_model.py::test_updates_a_model
tests/test_hash_model.py::test_paginate_query
[gw3] [ 10%] PASSED tests/test_hash_model.py::test_saves_model_and_creates_pk
tests/test_hash_model.py::test_all_pks
[gw4] [ 11%] PASSED tests/test_hash_model.py::test_raises_error_with_embedded_models
tests/test_hash_model.py::test_raises_error_with_dataclasses
[gw2] [ 11%] PASSED tests/test_hash_model.py::test_sorting
tests/test_hash_model.py::test_validates_required_fields
[gw0] [ 12%] PASSED tests/test_hash_model.py::test_delete_non_exist
[gw5] [ 13%] PASSED tests/test_hash_model.py::test_saves_many
tests/test_hash_model.py::test_count
tests/test_hash_model.py::test_full_text_search_queries
[gw1] [ 13%] PASSED tests/test_hash_model.py::test_tag_queries_punctuation
tests/test_hash_model.py::test_tag_queries_negation
[gw6] [ 14%] PASSED tests/test_hash_model.py::test_paginate_query
[gw2] [ 15%] PASSED tests/test_hash_model.py::test_validates_required_fields
tests/test_hash_model.py::test_access_result_by_index_cached
tests/test_hash_model.py::test_validates_field
[gw4] [ 15%] PASSED tests/test_hash_model.py::test_raises_error_with_dataclasses
tests/test_json_model.py::test_updates_a_model
[gw7] [ 16%] PASSED tests/test_hash_model.py::test_primary_key_model_error
tests/test_hash_model.py::test_primary_pk_exists
[gw3] [ 17%] PASSED tests/test_hash_model.py::test_all_pks
[gw0] [ 17%] PASSED tests/test_hash_model.py::test_full_text_search_queries
tests/test_json_model.py::test_all_pks
tests/test_hash_model.py::test_pagination_queries
[gw5] [ 18%] PASSED tests/test_hash_model.py::test_count
tests/test_json_model.py::test_validates_required_fields
[gw2] [ 19%] PASSED tests/test_hash_model.py::test_validates_field
tests/test_json_model.py::test_list_field_limitations
[gw1] [ 19%] PASSED tests/test_hash_model.py::test_tag_queries_negation
tests/test_json_model.py::test_in_query
[gw6] [ 20%] PASSED tests/test_hash_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_tag_queries_negation
[gw0] [ 21%] PASSED tests/test_hash_model.py::test_pagination_queries
tests/test_json_model.py::test_allows_and_serializes_lists
[gw5] [ 21%] PASSED tests/test_json_model.py::test_validates_required_fields
tests/test_json_model.py::test_validates_field
[gw4] [ 22%] PASSED tests/test_json_model.py::test_updates_a_model
tests/test_json_model.py::test_paginate_query
[gw1] [ 23%] PASSED tests/test_json_model.py::test_in_query
tests/test_json_model.py::test_update_query
[gw7] [ 23%] PASSED tests/test_hash_model.py::test_primary_pk_exists
tests/test_json_model.py::test_recursive_query_field_resolution
[gw5] [ 24%] PASSED tests/test_json_model.py::test_validates_field
[gw6] [ 25%] PASSED tests/test_json_model.py::test_tag_queries_negation
tests/test_json_model.py::test_validation_passes
tests/test_json_model.py::test_numeric_queries
[gw2] [ 25%] PASSED tests/test_json_model.py::test_list_field_limitations
tests/test_json_model.py::test_allows_dataclasses
[gw3] [ 26%] PASSED tests/test_json_model.py::test_all_pks
tests/test_json_model.py::test_delete
[gw0] [ 26%] PASSED tests/test_json_model.py::test_allows_and_serializes_lists
tests/test_json_model.py::test_schema
[gw4] [ 27%] PASSED tests/test_json_model.py::test_paginate_query
[gw5] [ 28%] PASSED tests/test_json_model.py::test_validation_passes
tests/test_json_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_saves_model_and_creates_pk
[gw1] [ 28%] PASSED tests/test_json_model.py::test_update_query
tests/test_json_model.py::test_exact_match_queries
[gw3] [ 29%] PASSED tests/test_json_model.py::test_delete
tests/test_json_model.py::test_saves_many_implicit_pipeline
[gw2] [ 30%] PASSED tests/test_json_model.py::test_allows_dataclasses
tests/test_json_model.py::test_allows_and_serializes_dicts
[gw0] [ 30%] PASSED tests/test_json_model.py::test_schema
tests/test_json_model.py::test_count
[gw6] [ 31%] PASSED tests/test_json_model.py::test_numeric_queries
tests/test_json_model.py::test_sorting
[gw3] [ 32%] PASSED tests/test_json_model.py::test_saves_many_implicit_pipeline
tests/test_json_model.py::test_saves_many_explicit_transaction
[gw4] [ 32%] PASSED tests/test_json_model.py::test_access_result_by_index_cached
[gw7] [ 33%] PASSED tests/test_json_model.py::test_recursive_query_field_resolution
tests/test_json_model.py::test_access_result_by_index_not_cached
[gw5] [ 34%] PASSED tests/test_json_model.py::test_saves_model_and_creates_pk
tests/test_json_model.py::test_full_text_search
tests/test_oss_redis_features.py::test_not_found
[gw1] [ 34%] PASSED tests/test_json_model.py::test_exact_match_queries
tests/test_json_model.py::test_recursive_query_expression_resolution
[gw2] [ 35%] PASSED tests/test_json_model.py::test_allows_and_serializes_dicts
[gw6] [ 36%] PASSED tests/test_json_model.py::test_sorting
tests/test_json_model.py::test_allows_and_serializes_sets
tests/test_json_model.py::test_not_found
[gw0] [ 36%] PASSED tests/test_json_model.py::test_count
tests/test_oss_redis_features.py::test_all_keys
[gw3] [ 37%] PASSED tests/test_json_model.py::test_saves_many_explicit_transaction
tests/test_json_model.py::test_delete_many_implicit_pipeline
[gw5] [ 38%] PASSED tests/test_oss_redis_features.py::test_not_found
tests/test_oss_redis_features.py::test_validates_required_fields
[gw6] [ 38%] PASSED tests/test_json_model.py::test_not_found
tests_sync/test_hash_model.py::test_recursive_query_resolution
[gw1] [ 39%] PASSED tests/test_json_model.py::test_recursive_query_expression_resolution
[gw4] [ 40%] PASSED tests/test_json_model.py::test_access_result_by_index_not_cached
tests/test_pydantic_integrations.py::test_email_str
tests/test_oss_redis_features.py::test_saves_model_and_creates_pk
[gw2] [ 40%] PASSED tests/test_json_model.py::test_allows_and_serializes_sets
tests_sync/test_hash_model.py::test_delete_non_exist
[gw7] [ 41%] PASSED tests/test_json_model.py::test_full_text_search
tests/test_json_model.py::test_tag_queries_boolean_logic
[gw3] [ 42%] PASSED tests/test_json_model.py::test_delete_many_implicit_pipeline
tests_sync/test_hash_model.py::test_validates_required_fields
[gw5] [ 42%] PASSED tests/test_oss_redis_features.py::test_validates_required_fields
tests/test_oss_redis_features.py::test_validates_field
[gw6] [ 43%] PASSED tests_sync/test_hash_model.py::test_recursive_query_resolution
tests_sync/test_hash_model.py::test_tag_queries_boolean_logic
[gw4] [ 44%] PASSED tests/test_oss_redis_features.py::test_saves_model_and_creates_pk
tests/test_oss_redis_features.py::test_raises_error_with_embedded_models
[gw3] [ 44%] PASSED tests_sync/test_hash_model.py::test_validates_required_fields
tests_sync/test_hash_model.py::test_validates_field
[gw2] [ 45%] PASSED tests_sync/test_hash_model.py::test_delete_non_exist
tests_sync/test_hash_model.py::test_full_text_search_queries
[gw1] [ 46%] PASSED tests/test_pydantic_integrations.py::test_email_str
tests/test_redis_type.py::test_redis_type
[gw1] [ 46%] PASSED tests/test_redis_type.py::test_redis_type
tests_sync/test_hash_model.py::test_exact_match_queries
[gw0] [ 47%] PASSED tests/test_oss_redis_features.py::test_all_keys
[gw6] [ 48%] PASSED tests_sync/test_hash_model.py::test_tag_queries_boolean_logic
tests_sync/test_hash_model.py::test_tag_queries_negation
tests_sync/test_hash_model.py::test_tag_queries_punctuation
[gw5] [ 48%] PASSED tests/test_oss_redis_features.py::test_validates_field
tests/test_oss_redis_features.py::test_validation_passes
[gw7] [ 49%] PASSED tests/test_json_model.py::test_tag_queries_boolean_logic
tests/test_json_model.py::test_tag_queries_punctuation
[gw3] [ 50%] PASSED tests_sync/test_hash_model.py::test_validates_field
tests_sync/test_hash_model.py::test_validation_passes
[gw2] [ 50%] PASSED tests_sync/test_hash_model.py::test_full_text_search_queries
tests_sync/test_hash_model.py::test_pagination_queries
[gw4] [ 51%] PASSED tests/test_oss_redis_features.py::test_raises_error_with_embedded_models
tests/test_oss_redis_features.py::test_saves_many
[gw3] [ 51%] PASSED tests_sync/test_hash_model.py::test_validation_passes
tests_sync/test_hash_model.py::test_raises_error_with_sets
[gw6] [ 52%] PASSED tests_sync/test_hash_model.py::test_tag_queries_punctuation
tests_sync/test_hash_model.py::test_all_pks
[gw5] [ 53%] PASSED tests/test_oss_redis_features.py::test_validation_passes
tests_sync/test_hash_model.py::test_expire
[gw0] [ 53%] PASSED tests_sync/test_hash_model.py::test_tag_queries_negation
tests_sync/test_hash_model.py::test_numeric_queries
[gw1] [ 54%] PASSED tests_sync/test_hash_model.py::test_exact_match_queries
tests_sync/test_hash_model.py::test_retrieve_first
[gw3] [ 55%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_sets
tests_sync/test_hash_model.py::test_raises_error_with_lists
[gw7] [ 55%] PASSED tests/test_json_model.py::test_tag_queries_punctuation
tests_sync/test_hash_model.py::test_raises_error_with_dataclasses
[gw5] [ 56%] PASSED tests_sync/test_hash_model.py::test_expire
tests_sync/test_hash_model.py::test_raises_error_with_embedded_models
[gw3] [ 57%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_lists
tests_sync/test_hash_model.py::test_updates_a_model
[gw2] [ 57%] FAILED tests_sync/test_hash_model.py::test_pagination_queries
tests_sync/test_hash_model.py::test_saves_many
[gw1] [ 58%] PASSED tests_sync/test_hash_model.py::test_retrieve_first
tests_sync/test_hash_model.py::test_saves_model_and_creates_pk
[gw4] [ 59%] PASSED tests/test_oss_redis_features.py::test_saves_many
tests/test_oss_redis_features.py::test_updates_a_model
[gw0] [ 59%] PASSED tests_sync/test_hash_model.py::test_numeric_queries
tests_sync/test_hash_model.py::test_sorting
[gw5] [ 60%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_embedded_models
tests_sync/test_hash_model.py::test_access_result_by_index_cached
[gw7] [ 61%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_dataclasses
tests_sync/test_hash_model.py::test_raises_error_with_dicts
[gw2] [ 61%] PASSED tests_sync/test_hash_model.py::test_saves_many
tests_sync/test_hash_model.py::test_delete_many
[gw3] [ 62%] PASSED tests_sync/test_hash_model.py::test_updates_a_model
[gw1] [ 63%] PASSED tests_sync/test_hash_model.py::test_saves_model_and_creates_pk
tests_sync/test_hash_model.py::test_paginate_query
tests_sync/test_hash_model.py::test_schema
[gw6] [ 63%] PASSED tests_sync/test_hash_model.py::test_all_pks
tests_sync/test_hash_model.py::test_delete
[gw7] [ 64%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_dicts
tests_sync/test_hash_model.py::test_count
[gw0] [ 65%] PASSED tests_sync/test_hash_model.py::test_sorting
tests_sync/test_hash_model.py::test_primary_pk_exists
[gw2] [ 65%] PASSED tests_sync/test_hash_model.py::test_delete_many
[gw1] [ 66%] PASSED tests_sync/test_hash_model.py::test_schema
tests_sync/test_json_model.py::test_validates_required_fields
tests_sync/test_json_model.py::test_validation_passes
[gw5] [ 67%] PASSED tests_sync/test_hash_model.py::test_access_result_by_index_cached
tests_sync/test_hash_model.py::test_access_result_by_index_not_cached
[gw6] [ 67%] PASSED tests_sync/test_hash_model.py::test_delete
[gw4] [ 68%] PASSED tests/test_oss_redis_features.py::test_updates_a_model
tests_sync/test_json_model.py::test_saves_model_and_creates_pk
tests_sync/test_hash_model.py::test_primary_key_model_error
[gw3] [ 69%] PASSED tests_sync/test_hash_model.py::test_paginate_query
tests_sync/test_json_model.py::test_validates_field
[gw7] [ 69%] PASSED tests_sync/test_hash_model.py::test_count
tests_sync/test_json_model.py::test_all_pks
[gw2] [ 70%] PASSED tests_sync/test_json_model.py::test_validates_required_fields
[gw1] [ 71%] PASSED tests_sync/test_json_model.py::test_validation_passes
tests_sync/test_json_model.py::test_saves_many_implicit_pipeline
tests_sync/test_json_model.py::test_saves_many_explicit_transaction
[gw0] [ 71%] PASSED tests_sync/test_hash_model.py::test_primary_pk_exists
tests_sync/test_json_model.py::test_delete
[gw3] [ 72%] PASSED tests_sync/test_json_model.py::test_validates_field
[gw5] [ 73%] PASSED tests_sync/test_hash_model.py::test_access_result_by_index_not_cached
tests_sync/test_json_model.py::test_access_result_by_index_cached
tests_sync/test_json_model.py::test_delete_many_implicit_pipeline
[gw6] [ 73%] PASSED tests_sync/test_json_model.py::test_saves_model_and_creates_pk
tests_sync/test_json_model.py::test_updates_a_model
[gw4] [ 74%] PASSED tests_sync/test_hash_model.py::test_primary_key_model_error
tests_sync/test_json_model.py::test_paginate_query
[gw2] [ 75%] PASSED tests_sync/test_json_model.py::test_saves_many_implicit_pipeline
tests_sync/test_json_model.py::test_in_query
[gw1] [ 75%] PASSED tests_sync/test_json_model.py::test_saves_many_explicit_transaction
tests_sync/test_json_model.py::test_update_query
[gw3] [ 76%] PASSED tests_sync/test_json_model.py::test_access_result_by_index_cached
[gw0] [ 76%] PASSED tests_sync/test_json_model.py::test_delete
tests_sync/test_json_model.py::test_recursive_query_expression_resolution
tests_sync/test_json_model.py::test_exact_match_queries
[gw5] [ 77%] PASSED tests_sync/test_json_model.py::test_delete_many_implicit_pipeline
tests_sync/test_json_model.py::test_recursive_query_field_resolution
[gw2] [ 78%] PASSED tests_sync/test_json_model.py::test_in_query
tests_sync/test_json_model.py::test_tag_queries_punctuation
[gw4] [ 78%] PASSED tests_sync/test_json_model.py::test_paginate_query
tests_sync/test_json_model.py::test_tag_queries_boolean_logic
[gw6] [ 79%] PASSED tests_sync/test_json_model.py::test_updates_a_model
tests_sync/test_json_model.py::test_full_text_search
[gw1] [ 80%] PASSED tests_sync/test_json_model.py::test_update_query
[gw3] [ 80%] PASSED tests_sync/test_json_model.py::test_recursive_query_expression_resolution
tests_sync/test_json_model.py::test_tag_queries_negation
tests_sync/test_json_model.py::test_numeric_queries
[gw7] [ 81%] PASSED tests_sync/test_json_model.py::test_all_pks
tests_sync/test_json_model.py::test_access_result_by_index_not_cached
[gw2] [ 82%] PASSED tests_sync/test_json_model.py::test_tag_queries_punctuation
tests_sync/test_json_model.py::test_list_field_limitations
[gw5] [ 82%] PASSED tests_sync/test_json_model.py::test_recursive_query_field_resolution
tests_sync/test_json_model.py::test_not_found
[gw0] [ 83%] PASSED tests_sync/test_json_model.py::test_exact_match_queries
tests_sync/test_json_model.py::test_sorting
[gw6] [ 84%] PASSED tests_sync/test_json_model.py::test_full_text_search
[gw4] [ 84%] PASSED tests_sync/test_json_model.py::test_tag_queries_boolean_logic
tests_sync/test_json_model.py::test_allows_and_serializes_dicts
tests_sync/test_json_model.py::test_allows_dataclasses
[gw1] [ 85%] PASSED tests_sync/test_json_model.py::test_tag_queries_negation
tests_sync/test_json_model.py::test_allows_and_serializes_sets
[gw3] [ 86%] PASSED tests_sync/test_json_model.py::test_numeric_queries
tests_sync/test_json_model.py::test_allows_and_serializes_lists
[gw5] [ 86%] PASSED tests_sync/test_json_model.py::test_not_found
tests_sync/test_oss_redis_features.py::test_all_keys
[gw7] [ 87%] PASSED tests_sync/test_json_model.py::test_access_result_by_index_not_cached
tests_sync/test_json_model.py::test_schema
[gw6] [ 88%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_dicts
tests_sync/test_oss_redis_features.py::test_validates_required_fields
[gw0] [ 88%] PASSED tests_sync/test_json_model.py::test_sorting
tests_sync/test_oss_redis_features.py::test_not_found
[gw4] [ 89%] PASSED tests_sync/test_json_model.py::test_allows_dataclasses
[gw2] [ 90%] PASSED tests_sync/test_json_model.py::test_list_field_limitations
tests_sync/test_oss_redis_features.py::test_validates_field
tests_sync/test_json_model.py::test_count
[gw1] [ 90%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_sets
[gw3] [ 91%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_lists
tests_sync/test_oss_redis_features.py::test_validation_passes
tests_sync/test_oss_redis_features.py::test_saves_model_and_creates_pk
[gw7] [ 92%] PASSED tests_sync/test_json_model.py::test_schema
tests_sync/test_oss_redis_features.py::test_saves_many
[gw6] [ 92%] PASSED tests_sync/test_oss_redis_features.py::test_validates_required_fields
[gw0] [ 93%] PASSED tests_sync/test_oss_redis_features.py::test_not_found
tests_sync/test_oss_redis_features.py::test_updates_a_model
[gw2] [ 94%] PASSED tests_sync/test_json_model.py::test_count
tests_sync/test_pydantic_integrations.py::test_email_str
[gw4] [ 94%] PASSED tests_sync/test_oss_redis_features.py::test_validates_field
tests_sync/test_redis_type.py::test_redis_type
[gw4] [ 95%] PASSED tests_sync/test_redis_type.py::test_redis_type
[gw3] [ 96%] PASSED tests_sync/test_oss_redis_features.py::test_saves_model_and_creates_pk
[gw1] [ 96%] PASSED tests_sync/test_oss_redis_features.py::test_validation_passes
[gw7] [ 97%] PASSED tests_sync/test_oss_redis_features.py::test_saves_many
[gw6] [ 98%] PASSED tests_sync/test_oss_redis_features.py::test_updates_a_model
[gw5] [ 98%] PASSED tests_sync/test_oss_redis_features.py::test_all_keys
tests_sync/test_oss_redis_features.py::test_raises_error_with_embedded_models
[gw0] [ 99%] PASSED tests_sync/test_pydantic_integrations.py::test_email_str
[gw5] [100%] PASSED tests_sync/test_oss_redis_features.py::test_raises_error_with_embedded_models
===================================================================================== FAILURES =====================================================================================
_____________________________________________________________________________ test_pagination_queries ______________________________________________________________________________
[gw2] darwin -- Python 3.10.8 /Users/marian/Library/Caches/pypoetry/virtualenvs/redis-om-DEJACET3-py3.10/bin/python
members = (Member(id=0, first_name='Andrew', last_name='Brookins', email='a@example.com', join_date=datetime.date(2023, 2, 11), ...com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.'))
m = Models(BaseHashModel=<class 'tests_sync.test_hash_model.m.<locals>.BaseHashModel'>, Order=<class 'tests_sync.test_hash_model.m.<locals>.Order'>, Member=<class 'tests_sync.test_hash_model.m.<locals>.Member'>)
@py_test_mark_sync
def test_pagination_queries(members, m):
member1, member2, member3 = members
actual = m.Member.find(m.Member.last_name == "Brookins").page()
assert actual == [member1, member2]
actual = m.Member.find().page(1, 1)
> assert actual == [member2]
E AssertionError: assert [Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.')] == [Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')]
E At index 0 diff: Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.') != Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')
E Full diff:
E - [Member(id=1, first_name='Kim', last_name='Brookins', email='k@example.com', join_date=datetime.date(2023, 2, 11), age=34, bio='This is member 2 who can be quite anxious until you get to know them.')]
E + [Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who is a funny and lively sort of person.')]
tests_sync/test_hash_model.py:187: AssertionError
---------- coverage: platform darwin, python 3.10.8-final-0 ----------
Name Stmts Miss Cover Missing
----------------------------------------------------------------------
aredis_om/__init__.py 5 0 100%
aredis_om/async_redis.py 1 0 100%
aredis_om/checks.py 21 12 43% 9-10, 15-18, 23-28
aredis_om/connections.py 10 1 90% 20
aredis_om/model/__init__.py 2 0 100%
aredis_om/model/cli/__init__.py 0 0 100%
aredis_om/model/cli/migrate.py 13 13 0% 1-18
aredis_om/model/encoders.py 72 35 51% 68, 70, 73-86, 94, 96, 98, 132-147, 150-155, 159-173
aredis_om/model/migrations/__init__.py 0 0 100%
aredis_om/model/migrations/migrator.py 87 15 83% 24-35, 45, 56, 83-84, 89-90, 101, 112-114
aredis_om/model/model.py 888 115 87% 100, 111, 128, 136, 145-152, 166, 185, 193, 199, 203, 207, 211-214, 218, 241, 245, 297, 305, 352, 394, 401, 419, 446, 474, 499, 502-508, 527, 529, 533, 561-571, 592-595, 606, 653, 667-672, 685, 699, 701, 703, 705, 768, 787, 823-828, 844-854, 904, 927-928, 1072, 1135, 1157, 1161, 1166, 1190, 1221-1224, 1232, 1308, 1314, 1374-1382, 1396, 1436-1445, 1449, 1464-1472, 1483-1493, 1506, 1606-1607, 1634-1637, 1721, 1725-1729
aredis_om/model/query_resolver.py 23 23 0% 1-103
aredis_om/model/render_tree.py 33 31 6% 24-75
aredis_om/model/token_escaper.py 13 1 92% 16
aredis_om/sync_redis.py 1 1 0% 1
aredis_om/util.py 6 1 83% 7
----------------------------------------------------------------------
TOTAL 1175 248 79%
============================================================================= short test summary info ==============================================================================
FAILED tests_sync/test_hash_model.py::test_pagination_queries - AssertionError: assert [Member(id=2, first_name='Andrew', last_name='Smith', email='as@example.com', join_date=datetime.date(2023, 2, 11), age=100, bio='This is member 3 who i...
========================================================================== 1 failed, 151 passed in 1.54s ===========================================================================
make: *** [test] Error 1
~/Repositories/redis-om-python fix-model-typings* 8s
redis-om-DEJACET3-py3.10 ❯ make test
/opt/homebrew/bin/poetry run python make_sync.py
docker-compose up -d
[+] Running 2/2
⠿ Container redis-om-python-oss_redis-1 Started 0.5s
⠿ Container redis-om-python-redis-1 Running 0.0s
REDIS_OM_URL=""redis://localhost:6380?decode_responses=True"" /opt/homebrew/bin/poetry run pytest -n auto -vv ./tests/ ./tests_sync/ --cov-report term-missing --cov aredis_om redis_om
=============================================================================== test session starts ================================================================================
platform darwin -- Python 3.10.8, pytest-7.2.1, pluggy-1.0.0 -- /Users/marian/Library/Caches/pypoetry/virtualenvs/redis-om-DEJACET3-py3.10/bin/python
cachedir: .pytest_cache
rootdir: /Users/marian/Repositories/redis-om-python, configfile: pytest.ini
plugins: xdist-3.2.0, asyncio-0.20.3, cov-4.0.0
asyncio: mode=strict
[gw0] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw1] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw2] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw3] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw4] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw5] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw6] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw7] darwin Python 3.10.8 cwd: /Users/marian/Repositories/redis-om-python
[gw0] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw1] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw2] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw3] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw4] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw5] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw6] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
[gw7] Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]
gw0 [152] / gw1 [152] / gw2 [152] / gw3 [152] / gw4 [152] / gw5 [152] / gw6 [152] / gw7 [152]
scheduling tests via LoadScheduling
tests/test_hash_model.py::test_exact_match_queries
tests/test_hash_model.py::test_numeric_queries
tests/test_hash_model.py::test_delete
tests/test_hash_model.py::test_validation_passes
tests/test_hash_model.py::test_access_result_by_index_not_cached
tests/test_hash_model.py::test_recursive_query_resolution
tests/test_hash_model.py::test_delete_many
tests/test_hash_model.py::test_raises_error_with_dicts
[gw5] [ 0%] PASSED tests/test_hash_model.py::test_raises_error_with_dicts
[gw3] [ 1%] PASSED tests/test_hash_model.py::test_validation_passes
tests/test_hash_model.py::test_retrieve_first
tests/test_hash_model.py::test_raises_error_with_sets
[gw4] [ 1%] PASSED tests/test_hash_model.py::test_delete
tests/test_hash_model.py::test_expire
[gw6] [ 2%] PASSED tests/test_hash_model.py::test_delete_many
tests/test_hash_model.py::test_updates_a_model
[gw1] [ 3%] PASSED tests/test_hash_model.py::test_recursive_query_resolution
tests/test_hash_model.py::test_tag_queries_boolean_logic
[gw0] [ 3%] PASSED tests/test_hash_model.py::test_exact_match_queries
tests/test_hash_model.py::test_delete_non_exist
[gw5] [ 4%] PASSED tests/test_hash_model.py::test_raises_error_with_sets
tests/test_hash_model.py::test_raises_error_with_lists
[gw2] [ 5%] PASSED tests/test_hash_model.py::test_numeric_queries
tests/test_hash_model.py::test_sorting
[gw4] [ 5%] PASSED tests/test_hash_model.py::test_expire
[gw7] [ 6%] PASSED tests/test_hash_model.py::test_access_result_by_index_not_cached
tests/test_hash_model.py::test_raises_error_with_embedded_models
tests/test_hash_model.py::test_schema
[gw3] [ 7%] PASSED tests/test_hash_model.py::test_retrieve_first
tests/test_hash_model.py::test_saves_model_and_creates_pk
[gw6] [ 7%] PASSED tests/test_hash_model.py::test_updates_a_model
tests/test_hash_model.py::test_paginate_query
[gw5] [ 8%] PASSED tests/test_hash_model.py::test_raises_error_with_lists
tests/test_hash_model.py::test_saves_many
[gw1] [ 9%] PASSED tests/test_hash_model.py::test_tag_queries_boolean_logic
tests/test_hash_model.py::test_tag_queries_punctuation
[gw4] [ 9%] PASSED tests/test_hash_model.py::test_raises_error_with_embedded_models
tests/test_hash_model.py::test_raises_error_with_dataclasses
[gw7] [ 10%] PASSED tests/test_hash_model.py::test_schema
tests/test_hash_model.py::test_primary_key_model_error
[gw3] [ 11%] PASSED tests/test_hash_model.py::test_saves_model_and_creates_pk
tests/test_hash_model.py::test_all_pks
[gw0] [ 11%] PASSED tests/test_hash_model.py::test_delete_non_exist
[gw2] [ 12%] PASSED tests/test_hash_model.py::test_sorting
tests/test_hash_model.py::test_validates_required_fields
tests/test_hash_model.py::test_full_text_search_queries
[gw5] [ 13%] PASSED tests/test_hash_model.py::test_saves_many
tests/test_hash_model.py::test_count
[gw2] [ 13%] PASSED tests/test_hash_model.py::test_validates_required_fields
tests/test_hash_model.py::test_validates_field
[gw6] [ 14%] PASSED tests/test_hash_model.py::test_paginate_query
[gw4] [ 15%] PASSED tests/test_hash_model.py::test_raises_error_with_dataclasses
tests/test_hash_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_all_pks
[gw1] [ 15%] PASSED tests/test_hash_model.py::test_tag_queries_punctuation
tests/test_hash_model.py::test_tag_queries_negation
[gw0] [ 16%] PASSED tests/test_hash_model.py::test_full_text_search_queries
tests/test_hash_model.py::test_pagination_queries
[gw2] [ 17%] PASSED tests/test_hash_model.py::test_validates_field
[gw3] [ 17%] PASSED tests/test_hash_model.py::test_all_pks
tests/test_json_model.py::test_list_field_limitations
tests/test_json_model.py::test_updates_a_model
[gw5] [ 18%] PASSED tests/test_hash_model.py::test_count
[gw7] [ 19%] PASSED tests/test_hash_model.py::test_primary_key_model_error
tests/test_json_model.py::test_validates_required_fields
tests/test_hash_model.py::test_primary_pk_exists
[gw6] [ 19%] PASSED tests/test_hash_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_in_query
[gw1] [ 20%] PASSED tests/test_hash_model.py::test_tag_queries_negation
tests/test_json_model.py::test_recursive_query_field_resolution
[gw0] [ 21%] PASSED tests/test_hash_model.py::test_pagination_queries
tests/test_json_model.py::test_allows_and_serializes_lists
[gw4] [ 21%] PASSED tests/test_json_model.py::test_all_pks
tests/test_json_model.py::test_delete
[gw5] [ 22%] PASSED tests/test_json_model.py::test_validates_required_fields
tests/test_json_model.py::test_validates_field
[gw6] [ 23%] PASSED tests/test_json_model.py::test_in_query
tests/test_json_model.py::test_update_query
[gw3] [ 23%] PASSED tests/test_json_model.py::test_updates_a_model
tests/test_json_model.py::test_paginate_query
[gw5] [ 24%] PASSED tests/test_json_model.py::test_validates_field
tests/test_json_model.py::test_validation_passes
[gw2] [ 25%] PASSED tests/test_json_model.py::test_list_field_limitations
tests/test_json_model.py::test_allows_dataclasses
[gw4] [ 25%] PASSED tests/test_json_model.py::test_delete
tests/test_json_model.py::test_saves_many_implicit_pipeline
[gw0] [ 26%] PASSED tests/test_json_model.py::test_allows_and_serializes_lists
[gw1] [ 26%] PASSED tests/test_json_model.py::test_recursive_query_field_resolution
tests/test_json_model.py::test_schema
tests/test_json_model.py::test_full_text_search
[gw7] [ 27%] PASSED tests/test_hash_model.py::test_primary_pk_exists
tests/test_json_model.py::test_tag_queries_negation
[gw5] [ 28%] PASSED tests/test_json_model.py::test_validation_passes
tests/test_json_model.py::test_saves_model_and_creates_pk
[gw6] [ 28%] PASSED tests/test_json_model.py::test_update_query
tests/test_json_model.py::test_exact_match_queries
[gw3] [ 29%] PASSED tests/test_json_model.py::test_paginate_query
[gw2] [ 30%] PASSED tests/test_json_model.py::test_allows_dataclasses
tests/test_json_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_allows_and_serializes_dicts
[gw0] [ 30%] PASSED tests/test_json_model.py::test_schema
tests/test_json_model.py::test_count
[gw4] [ 31%] PASSED tests/test_json_model.py::test_saves_many_implicit_pipeline
tests/test_json_model.py::test_saves_many_explicit_transaction
[gw1] [ 32%] PASSED tests/test_json_model.py::test_full_text_search
tests/test_json_model.py::test_tag_queries_boolean_logic
[gw5] [ 32%] PASSED tests/test_json_model.py::test_saves_model_and_creates_pk
tests/test_oss_redis_features.py::test_not_found
[gw3] [ 33%] PASSED tests/test_json_model.py::test_access_result_by_index_cached
tests/test_json_model.py::test_access_result_by_index_not_cached
[gw6] [ 34%] PASSED tests/test_json_model.py::test_exact_match_queries
tests/test_json_model.py::test_recursive_query_expression_resolution
[gw2] [ 34%] PASSED tests/test_json_model.py::test_allows_and_serializes_dicts
tests/test_json_model.py::test_allows_and_serializes_sets
[gw0] [ 35%] PASSED tests/test_json_model.py::test_count
tests/test_oss_redis_features.py::test_all_keys
[gw7] [ 36%] PASSED tests/test_json_model.py::test_tag_queries_negation
tests/test_json_model.py::test_numeric_queries
[gw4] [ 36%] PASSED tests/test_json_model.py::test_saves_many_explicit_transaction
tests/test_json_model.py::test_delete_many_implicit_pipeline
[gw1] [ 37%] PASSED tests/test_json_model.py::test_tag_queries_boolean_logic
tests/test_json_model.py::test_tag_queries_punctuation
[gw5] [ 38%] PASSED tests/test_oss_redis_features.py::test_not_found
[gw6] [ 38%] PASSED tests/test_json_model.py::test_recursive_query_expression_resolution
tests/test_oss_redis_features.py::test_validates_required_fields
tests/test_pydantic_integrations.py::test_email_str
[gw3] [ 39%] PASSED tests/test_json_model.py::test_access_result_by_index_not_cached
tests/test_oss_redis_features.py::test_saves_model_and_creates_pk
[gw4] [ 40%] PASSED tests/test_json_model.py::test_delete_many_implicit_pipeline
tests_sync/test_hash_model.py::test_tag_queries_negation
[gw1] [ 40%] PASSED tests/test_json_model.py::test_tag_queries_punctuation
tests_sync/test_hash_model.py::test_validates_required_fields
[gw2] [ 41%] PASSED tests/test_json_model.py::test_allows_and_serializes_sets
tests_sync/test_hash_model.py::test_delete_non_exist
[gw5] [ 42%] PASSED tests/test_oss_redis_features.py::test_validates_required_fields
tests/test_oss_redis_features.py::test_validates_field
[gw7] [ 42%] PASSED tests/test_json_model.py::test_numeric_queries
tests/test_json_model.py::test_sorting
[gw1] [ 43%] PASSED tests_sync/test_hash_model.py::test_validates_required_fields
tests_sync/test_hash_model.py::test_validates_field
[gw3] [ 44%] PASSED tests/test_oss_redis_features.py::test_saves_model_and_creates_pk
tests/test_oss_redis_features.py::test_raises_error_with_embedded_models
[gw6] [ 44%] PASSED tests/test_pydantic_integrations.py::test_email_str
tests/test_redis_type.py::test_redis_type
[gw6] [ 45%] PASSED tests/test_redis_type.py::test_redis_type
tests_sync/test_hash_model.py::test_exact_match_queries
[gw4] [ 46%] PASSED tests_sync/test_hash_model.py::test_tag_queries_negation
tests_sync/test_hash_model.py::test_numeric_queries
[gw5] [ 46%] PASSED tests/test_oss_redis_features.py::test_validates_field
[gw2] [ 47%] PASSED tests_sync/test_hash_model.py::test_delete_non_exist
tests_sync/test_hash_model.py::test_full_text_search_queries
[gw1] [ 48%] PASSED tests_sync/test_hash_model.py::test_validates_field
tests/test_oss_redis_features.py::test_validation_passes
tests_sync/test_hash_model.py::test_validation_passes
[gw0] [ 48%] PASSED tests/test_oss_redis_features.py::test_all_keys
tests_sync/test_hash_model.py::test_recursive_query_resolution
[gw1] [ 49%] PASSED tests_sync/test_hash_model.py::test_validation_passes
tests_sync/test_hash_model.py::test_expire
[gw3] [ 50%] PASSED tests/test_oss_redis_features.py::test_raises_error_with_embedded_models
tests/test_oss_redis_features.py::test_saves_many
[gw7] [ 50%] PASSED tests/test_json_model.py::test_sorting
[gw2] [ 51%] PASSED tests_sync/test_hash_model.py::test_full_text_search_queries
tests/test_json_model.py::test_not_found
tests_sync/test_hash_model.py::test_pagination_queries
[gw4] [ 51%] PASSED tests_sync/test_hash_model.py::test_numeric_queries
tests_sync/test_hash_model.py::test_sorting
[gw6] [ 52%] PASSED tests_sync/test_hash_model.py::test_exact_match_queries
[gw5] [ 53%] PASSED tests/test_oss_redis_features.py::test_validation_passes
tests_sync/test_hash_model.py::test_retrieve_first
tests_sync/test_hash_model.py::test_all_pks
[gw1] [ 53%] PASSED tests_sync/test_hash_model.py::test_expire
[gw0] [ 54%] PASSED tests_sync/test_hash_model.py::test_recursive_query_resolution
tests_sync/test_hash_model.py::test_raises_error_with_embedded_models
tests_sync/test_hash_model.py::test_tag_queries_boolean_logic
[gw2] [ 55%] PASSED tests_sync/test_hash_model.py::test_pagination_queries
tests_sync/test_hash_model.py::test_raises_error_with_sets
[gw6] [ 55%] PASSED tests_sync/test_hash_model.py::test_retrieve_first
[gw1] [ 56%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_embedded_models
tests_sync/test_hash_model.py::test_updates_a_model
tests_sync/test_hash_model.py::test_saves_model_and_creates_pk
[gw4] [ 57%] PASSED tests_sync/test_hash_model.py::test_sorting
[gw7] [ 57%] PASSED tests/test_json_model.py::test_not_found
tests_sync/test_hash_model.py::test_saves_many
tests_sync/test_hash_model.py::test_raises_error_with_dataclasses
[gw3] [ 58%] PASSED tests/test_oss_redis_features.py::test_saves_many
tests/test_oss_redis_features.py::test_updates_a_model
[gw0] [ 59%] PASSED tests_sync/test_hash_model.py::test_tag_queries_boolean_logic
tests_sync/test_hash_model.py::test_tag_queries_punctuation
[gw2] [ 59%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_sets
tests_sync/test_hash_model.py::test_raises_error_with_lists
[gw6] [ 60%] PASSED tests_sync/test_hash_model.py::test_saves_model_and_creates_pk
tests_sync/test_hash_model.py::test_access_result_by_index_cached
[gw4] [ 61%] PASSED tests_sync/test_hash_model.py::test_saves_many
tests_sync/test_hash_model.py::test_delete_many
[gw7] [ 61%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_dataclasses
tests_sync/test_hash_model.py::test_raises_error_with_dicts
[gw2] [ 62%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_lists
[gw1] [ 63%] PASSED tests_sync/test_hash_model.py::test_updates_a_model
tests_sync/test_hash_model.py::test_paginate_query
tests_sync/test_hash_model.py::test_primary_pk_exists
[gw0] [ 63%] PASSED tests_sync/test_hash_model.py::test_tag_queries_punctuation
tests_sync/test_hash_model.py::test_primary_key_model_error
[gw6] [ 64%] PASSED tests_sync/test_hash_model.py::test_access_result_by_index_cached
tests_sync/test_hash_model.py::test_access_result_by_index_not_cached
[gw4] [ 65%] PASSED tests_sync/test_hash_model.py::test_delete_many
[gw7] [ 65%] PASSED tests_sync/test_hash_model.py::test_raises_error_with_dicts
tests_sync/test_hash_model.py::test_count
tests_sync/test_json_model.py::test_validates_required_fields
[gw3] [ 66%] PASSED tests/test_oss_redis_features.py::test_updates_a_model
tests_sync/test_hash_model.py::test_schema
[gw5] [ 67%] PASSED tests_sync/test_hash_model.py::test_all_pks
tests_sync/test_hash_model.py::test_delete
[gw0] [ 67%] PASSED tests_sync/test_hash_model.py::test_primary_key_model_error
tests_sync/test_json_model.py::test_saves_model_and_creates_pk
[gw7] [ 68%] PASSED tests_sync/test_json_model.py::test_validates_required_fields
tests_sync/test_json_model.py::test_saves_many_implicit_pipeline
[gw1] [ 69%] PASSED tests_sync/test_hash_model.py::test_paginate_query
tests_sync/test_json_model.py::test_validates_field
[gw2] [ 69%] PASSED tests_sync/test_hash_model.py::test_primary_pk_exists
tests_sync/test_json_model.py::test_validation_passes
[gw3] [ 70%] PASSED tests_sync/test_hash_model.py::test_schema
[gw4] [ 71%] PASSED tests_sync/test_hash_model.py::test_count
tests_sync/test_json_model.py::test_saves_many_explicit_transaction
tests_sync/test_json_model.py::test_delete
[gw6] [ 71%] PASSED tests_sync/test_hash_model.py::test_access_result_by_index_not_cached
tests_sync/test_json_model.py::test_all_pks
[gw5] [ 72%] PASSED tests_sync/test_hash_model.py::test_delete
tests_sync/test_json_model.py::test_delete_many_implicit_pipeline
[gw7] [ 73%] PASSED tests_sync/test_json_model.py::test_saves_many_implicit_pipeline
tests_sync/test_json_model.py::test_paginate_query
[gw1] [ 73%] PASSED tests_sync/test_json_model.py::test_validates_field
tests_sync/test_json_model.py::test_access_result_by_index_cached
[gw4] [ 74%] PASSED tests_sync/test_json_model.py::test_delete
tests_sync/test_json_model.py::test_update_query
[gw2] [ 75%] PASSED tests_sync/test_json_model.py::test_validation_passes
tests_sync/test_json_model.py::test_access_result_by_index_not_cached
[gw0] [ 75%] PASSED tests_sync/test_json_model.py::test_saves_model_and_creates_pk
tests_sync/test_json_model.py::test_updates_a_model
[gw5] [ 76%] PASSED tests_sync/test_json_model.py::test_delete_many_implicit_pipeline
[gw3] [ 76%] PASSED tests_sync/test_json_model.py::test_saves_many_explicit_transaction
tests_sync/test_json_model.py::test_recursive_query_expression_resolution
tests_sync/test_json_model.py::test_in_query
[gw7] [ 77%] PASSED tests_sync/test_json_model.py::test_paginate_query
[gw1] [ 78%] PASSED tests_sync/test_json_model.py::test_access_result_by_index_cached
tests_sync/test_json_model.py::test_recursive_query_field_resolution
tests_sync/test_json_model.py::test_full_text_search
[gw4] [ 78%] PASSED tests_sync/test_json_model.py::test_update_query
tests_sync/test_json_model.py::test_tag_queries_boolean_logic
[gw5] [ 79%] PASSED tests_sync/test_json_model.py::test_recursive_query_expression_resolution
tests_sync/test_json_model.py::test_numeric_queries
[gw2] [ 80%] PASSED tests_sync/test_json_model.py::test_access_result_by_index_not_cached
[gw3] [ 80%] PASSED tests_sync/test_json_model.py::test_in_query
tests_sync/test_json_model.py::test_tag_queries_punctuation
tests_sync/test_json_model.py::test_sorting
[gw0] [ 81%] PASSED tests_sync/test_json_model.py::test_updates_a_model
tests_sync/test_json_model.py::test_tag_queries_negation
[gw7] [ 82%] PASSED tests_sync/test_json_model.py::test_recursive_query_field_resolution
[gw4] [ 82%] PASSED tests_sync/test_json_model.py::test_tag_queries_boolean_logic
tests_sync/test_json_model.py::test_not_found
tests_sync/test_json_model.py::test_allows_dataclasses
[gw1] [ 83%] PASSED tests_sync/test_json_model.py::test_full_text_search
tests_sync/test_json_model.py::test_list_field_limitations
[gw6] [ 84%] PASSED tests_sync/test_json_model.py::test_all_pks
tests_sync/test_json_model.py::test_exact_match_queries
[gw3] [ 84%] PASSED tests_sync/test_json_model.py::test_sorting
tests_sync/test_json_model.py::test_allows_and_serializes_lists
[gw5] [ 85%] PASSED tests_sync/test_json_model.py::test_numeric_queries
tests_sync/test_json_model.py::test_allows_and_serializes_dicts
[gw7] [ 86%] PASSED tests_sync/test_json_model.py::test_not_found
tests_sync/test_json_model.py::test_count
[gw2] [ 86%] PASSED tests_sync/test_json_model.py::test_tag_queries_punctuation
tests_sync/test_json_model.py::test_allows_and_serializes_sets
[gw4] [ 87%] PASSED tests_sync/test_json_model.py::test_allows_dataclasses
[gw0] [ 88%] PASSED tests_sync/test_json_model.py::test_tag_queries_negation
tests_sync/test_oss_redis_features.py::test_all_keys
tests_sync/test_json_model.py::test_schema
[gw3] [ 88%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_lists
[gw5] [ 89%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_dicts
tests_sync/test_oss_redis_features.py::test_validates_field
tests_sync/test_oss_redis_features.py::test_validation_passes
[gw7] [ 90%] PASSED tests_sync/test_json_model.py::test_count
[gw0] [ 90%] PASSED tests_sync/test_json_model.py::test_schema
tests_sync/test_oss_redis_features.py::test_saves_model_and_creates_pk
tests_sync/test_oss_redis_features.py::test_updates_a_model
[gw1] [ 91%] PASSED tests_sync/test_json_model.py::test_list_field_limitations
[gw6] [ 92%] PASSED tests_sync/test_json_model.py::test_exact_match_queries
tests_sync/test_oss_redis_features.py::test_not_found
tests_sync/test_oss_redis_features.py::test_validates_required_fields
[gw2] [ 92%] PASSED tests_sync/test_json_model.py::test_allows_and_serializes_sets
tests_sync/test_oss_redis_features.py::test_raises_error_with_embedded_models
[gw5] [ 93%] PASSED tests_sync/test_oss_redis_features.py::test_validation_passes
tests_sync/test_redis_type.py::test_redis_type
[gw5] [ 94%] PASSED tests_sync/test_redis_type.py::test_redis_type
[gw3] [ 94%] PASSED tests_sync/test_oss_redis_features.py::test_validates_field
[gw7] [ 95%] PASSED tests_sync/test_oss_redis_features.py::test_saves_model_and_creates_pk
tests_sync/test_pydantic_integrations.py::test_email_str
[gw6] [ 96%] PASSED tests_sync/test_oss_redis_features.py::test_validates_required_fields
[gw0] [ 96%] PASSED tests_sync/test_oss_redis_features.py::test_updates_a_model
[gw1] [ 97%] PASSED tests_sync/test_oss_redis_features.py::test_not_found
[gw2] [ 98%] PASSED tests_sync/test_oss_redis_features.py::test_raises_error_with_embedded_models
[gw4] [ 98%] PASSED tests_sync/test_oss_redis_features.py::test_all_keys
tests_sync/test_oss_redis_features.py::test_saves_many
[gw3] [ 99%] PASSED tests_sync/test_pydantic_integrations.py::test_email_str
[gw4] [100%] PASSED tests_sync/test_oss_redis_features.py::test_saves_many
---------- coverage: platform darwin, python 3.10.8-final-0 ----------
Name Stmts Miss Cover Missing
----------------------------------------------------------------------
aredis_om/__init__.py 5 0 100%
aredis_om/async_redis.py 1 0 100%
aredis_om/checks.py 21 12 43% 9-10, 15-18, 23-28
aredis_om/connections.py 10 1 90% 20
aredis_om/model/__init__.py 2 0 100%
aredis_om/model/cli/__init__.py 0 0 100%
aredis_om/model/cli/migrate.py 13 13 0% 1-18
aredis_om/model/encoders.py 72 35 51% 68, 70, 73-86, 94, 96, 98, 132-147, 150-155, 159-173
aredis_om/model/migrations/__init__.py 0 0 100%
aredis_om/model/migrations/migrator.py 87 15 83% 24-35, 45, 56, 83-84, 89-90, 101, 112-114
aredis_om/model/model.py 888 115 87% 100, 111, 128, 136, 145-152, 166, 185, 193, 199, 203, 207, 211-214, 218, 241, 245, 297, 305, 352, 394, 401, 419, 446, 474, 499, 502-508, 527, 529, 533, 561-571, 592-595, 606, 653, 667-672, 685, 699, 701, 703, 705, 768, 787, 823-828, 844-854, 904, 927-928, 1072, 1135, 1157, 1161, 1166, 1190, 1221-1224, 1232, 1308, 1314, 1374-1382, 1396, 1436-1445, 1449, 1464-1472, 1483-1493, 1506, 1606-1607, 1634-1637, 1721, 1725-1729
aredis_om/model/query_resolver.py 23 23 0% 1-103
aredis_om/model/render_tree.py 33 31 6% 24-75
aredis_om/model/token_escaper.py 13 1 92% 16
aredis_om/sync_redis.py 1 1 0% 1
aredis_om/util.py 6 1 83% 7
----------------------------------------------------------------------
TOTAL 1175 248 79%
=============================================================================== 152 passed in 1.45s ================================================================================
docker-compose down
[+] Running 3/3
⠿ Container redis-om-python-oss_redis-1 Removed 0.2s
⠿ Container redis-om-python-redis-1 Removed 0.1s
⠿ Network redis-om-python_default Removed 0.0s
~/Repositories/redis-om-python fix-model-typings*
redis-om-DEJACET3-py3.10 ❯