Skip to content

Test case test_pagination_queries is flaky #475

Open
@marianhlavac

Description

@marianhlavac

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 ❯

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions