============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-9.0.3, pluggy-1.6.0 -- /usr/bin/python
cachedir: .pytest_cache
metadata: {'Python': '3.10.12', 'Platform': 'Linux-6.8.0-1025-gke-x86_64-with-glibc2.35', 'Packages': {'pytest': '9.0.3', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.13.0', 'metadata': '3.1.1', 'json-report': '1.5.0', 'cov': '7.1.0'}}
rootdir: /workspace/tinydb
configfile: pytest.ini
plugins: anyio-4.13.0, metadata-3.1.1, json-report-1.5.0, cov-7.1.0
collecting ... collected 201 items

tests/test_middlewares.py::test_caching PASSED                           [  0%]
tests/test_middlewares.py::test_caching_read PASSED                      [  0%]
tests/test_middlewares.py::test_caching_write_many PASSED                [  1%]
tests/test_middlewares.py::test_caching_flush PASSED                     [  1%]
tests/test_middlewares.py::test_caching_flush_manually PASSED            [  2%]
tests/test_middlewares.py::test_caching_write PASSED                     [  2%]
tests/test_middlewares.py::test_nested PASSED                            [  3%]
tests/test_middlewares.py::test_caching_json_write PASSED                [  3%]
tests/test_operations.py::test_delete[memory] PASSED                     [  4%]
tests/test_operations.py::test_delete[json] PASSED                       [  4%]
tests/test_operations.py::test_add_int[memory] PASSED                    [  5%]
tests/test_operations.py::test_add_int[json] PASSED                      [  5%]
tests/test_operations.py::test_add_str[memory] PASSED                    [  6%]
tests/test_operations.py::test_add_str[json] PASSED                      [  6%]
tests/test_operations.py::test_subtract[memory] PASSED                   [  7%]
tests/test_operations.py::test_subtract[json] PASSED                     [  7%]
tests/test_operations.py::test_set[memory] PASSED                        [  8%]
tests/test_operations.py::test_set[json] PASSED                          [  8%]
tests/test_operations.py::test_increment[memory] PASSED                  [  9%]
tests/test_operations.py::test_increment[json] PASSED                    [  9%]
tests/test_operations.py::test_decrement[memory] PASSED                  [ 10%]
tests/test_operations.py::test_decrement[json] PASSED                    [ 10%]
tests/test_queries.py::test_no_path PASSED                               [ 11%]
tests/test_queries.py::test_path_exists PASSED                           [ 11%]
tests/test_queries.py::test_path_and PASSED                              [ 12%]
tests/test_queries.py::test_callable_in_path_with_map PASSED             [ 12%]
tests/test_queries.py::test_callable_in_path_with_chain PASSED           [ 13%]
tests/test_queries.py::test_eq PASSED                                    [ 13%]
tests/test_queries.py::test_ne PASSED                                    [ 14%]
tests/test_queries.py::test_lt PASSED                                    [ 14%]
tests/test_queries.py::test_le PASSED                                    [ 15%]
tests/test_queries.py::test_gt PASSED                                    [ 15%]
tests/test_queries.py::test_ge PASSED                                    [ 16%]
tests/test_queries.py::test_or PASSED                                    [ 16%]
tests/test_queries.py::test_and PASSED                                   [ 17%]
tests/test_queries.py::test_not PASSED                                   [ 17%]
tests/test_queries.py::test_has_key PASSED                               [ 18%]
tests/test_queries.py::test_regex PASSED                                 [ 18%]
tests/test_queries.py::test_custom PASSED                                [ 19%]
tests/test_queries.py::test_custom_with_params PASSED                    [ 19%]
tests/test_queries.py::test_any PASSED                                   [ 20%]
tests/test_queries.py::test_all PASSED                                   [ 20%]
tests/test_queries.py::test_has PASSED                                   [ 21%]
tests/test_queries.py::test_one_of PASSED                                [ 21%]
tests/test_queries.py::test_hash PASSED                                  [ 22%]
tests/test_queries.py::test_orm_usage PASSED                             [ 22%]
tests/test_queries.py::test_repr PASSED                                  [ 23%]
tests/test_queries.py::test_subclass PASSED                              [ 23%]
tests/test_queries.py::test_noop PASSED                                  [ 24%]
tests/test_queries.py::test_equality PASSED                              [ 24%]
tests/test_queries.py::test_empty_query_error PASSED                     [ 25%]
tests/test_queries.py::test_fragment PASSED                              [ 25%]
tests/test_queries.py::test_fragment_with_path PASSED                    [ 26%]
tests/test_queries.py::test_get_item PASSED                              [ 26%]
tests/test_storages.py::test_json PASSED                                 [ 27%]
tests/test_storages.py::test_json_kwargs PASSED                          [ 27%]
tests/test_storages.py::test_json_readwrite PASSED                       [ 28%]
tests/test_storages.py::test_json_read PASSED                            [ 28%]
tests/test_storages.py::test_create_dirs PASSED                          [ 29%]
tests/test_storages.py::test_json_invalid_directory PASSED               [ 29%]
tests/test_storages.py::test_in_memory PASSED                            [ 30%]
tests/test_storages.py::test_in_memory_close PASSED                      [ 30%]
tests/test_storages.py::test_custom PASSED                               [ 31%]
tests/test_storages.py::test_read_once PASSED                            [ 31%]
tests/test_storages.py::test_custom_with_exception PASSED                [ 32%]
tests/test_storages.py::test_yaml PASSED                                 [ 32%]
tests/test_storages.py::test_encoding PASSED                             [ 33%]
tests/test_tables.py::test_next_id[memory] PASSED                        [ 33%]
tests/test_tables.py::test_next_id[json] PASSED                          [ 34%]
tests/test_tables.py::test_tables_list[memory] PASSED                    [ 34%]
tests/test_tables.py::test_tables_list[json] PASSED                      [ 35%]
tests/test_tables.py::test_one_table[memory] PASSED                      [ 35%]
tests/test_tables.py::test_one_table[json] PASSED                        [ 36%]
tests/test_tables.py::test_multiple_tables[memory] PASSED                [ 36%]
tests/test_tables.py::test_multiple_tables[json] PASSED                  [ 37%]
tests/test_tables.py::test_caching[memory] PASSED                        [ 37%]
tests/test_tables.py::test_caching[json] PASSED                          [ 38%]
tests/test_tables.py::test_query_cache[memory] PASSED                    [ 38%]
tests/test_tables.py::test_query_cache[json] PASSED                      [ 39%]
tests/test_tables.py::test_query_cache_with_mutable_callable[memory] PASSED [ 39%]
tests/test_tables.py::test_query_cache_with_mutable_callable[json] PASSED [ 40%]
tests/test_tables.py::test_zero_cache_size[memory] PASSED                [ 40%]
tests/test_tables.py::test_zero_cache_size[json] PASSED                  [ 41%]
tests/test_tables.py::test_query_cache_size[memory] PASSED               [ 41%]
tests/test_tables.py::test_query_cache_size[json] PASSED                 [ 42%]
tests/test_tables.py::test_lru_cache[memory] PASSED                      [ 42%]
tests/test_tables.py::test_lru_cache[json] PASSED                        [ 43%]
tests/test_tables.py::test_table_is_iterable[memory] PASSED              [ 43%]
tests/test_tables.py::test_table_is_iterable[json] PASSED                [ 44%]
tests/test_tables.py::test_table_name[memory] PASSED                     [ 44%]
tests/test_tables.py::test_table_name[json] PASSED                       [ 45%]
tests/test_tables.py::test_table_repr[memory] PASSED                     [ 45%]
tests/test_tables.py::test_table_repr[json] PASSED                       [ 46%]
tests/test_tables.py::test_truncate_table[memory] PASSED                 [ 46%]
tests/test_tables.py::test_truncate_table[json] PASSED                   [ 47%]
tests/test_tinydb.py::test_drop_tables[memory] PASSED                    [ 47%]
tests/test_tinydb.py::test_drop_tables[json] PASSED                      [ 48%]
tests/test_tinydb.py::test_all[memory] PASSED                            [ 48%]
tests/test_tinydb.py::test_all[json] PASSED                              [ 49%]
tests/test_tinydb.py::test_insert[memory] PASSED                         [ 49%]
tests/test_tinydb.py::test_insert[json] PASSED                           [ 50%]
tests/test_tinydb.py::test_insert_ids[memory] PASSED                     [ 50%]
tests/test_tinydb.py::test_insert_ids[json] PASSED                       [ 51%]
tests/test_tinydb.py::test_insert_with_doc_id[memory] PASSED             [ 51%]
tests/test_tinydb.py::test_insert_with_doc_id[json] PASSED               [ 52%]
tests/test_tinydb.py::test_insert_with_duplicate_doc_id[memory] PASSED   [ 52%]
tests/test_tinydb.py::test_insert_with_duplicate_doc_id[json] PASSED     [ 53%]
tests/test_tinydb.py::test_insert_multiple[memory] PASSED                [ 53%]
tests/test_tinydb.py::test_insert_multiple[json] PASSED                  [ 54%]
tests/test_tinydb.py::test_insert_multiple_with_ids[memory] PASSED       [ 54%]
tests/test_tinydb.py::test_insert_multiple_with_ids[json] PASSED         [ 55%]
tests/test_tinydb.py::test_insert_multiple_with_doc_ids[memory] PASSED   [ 55%]
tests/test_tinydb.py::test_insert_multiple_with_doc_ids[json] PASSED     [ 56%]
tests/test_tinydb.py::test_insert_invalid_type_raises_error[memory] PASSED [ 56%]
tests/test_tinydb.py::test_insert_invalid_type_raises_error[json] PASSED [ 57%]
tests/test_tinydb.py::test_insert_valid_mapping_type[memory] PASSED      [ 57%]
tests/test_tinydb.py::test_insert_valid_mapping_type[json] PASSED        [ 58%]
tests/test_tinydb.py::test_custom_mapping_type_with_json PASSED          [ 58%]
tests/test_tinydb.py::test_remove[memory] PASSED                         [ 59%]
tests/test_tinydb.py::test_remove[json] PASSED                           [ 59%]
tests/test_tinydb.py::test_remove_all_fails[memory] PASSED               [ 60%]
tests/test_tinydb.py::test_remove_all_fails[json] PASSED                 [ 60%]
tests/test_tinydb.py::test_remove_multiple[memory] PASSED                [ 61%]
tests/test_tinydb.py::test_remove_multiple[json] PASSED                  [ 61%]
tests/test_tinydb.py::test_remove_ids[memory] PASSED                     [ 62%]
tests/test_tinydb.py::test_remove_ids[json] PASSED                       [ 62%]
tests/test_tinydb.py::test_remove_returns_ids[memory] PASSED             [ 63%]
tests/test_tinydb.py::test_remove_returns_ids[json] PASSED               [ 63%]
tests/test_tinydb.py::test_update[memory] PASSED                         [ 64%]
tests/test_tinydb.py::test_update[json] PASSED                           [ 64%]
tests/test_tinydb.py::test_update_all[memory] PASSED                     [ 65%]
tests/test_tinydb.py::test_update_all[json] PASSED                       [ 65%]
tests/test_tinydb.py::test_update_returns_ids[memory] PASSED             [ 66%]
tests/test_tinydb.py::test_update_returns_ids[json] PASSED               [ 66%]
tests/test_tinydb.py::test_update_transform[memory] PASSED               [ 67%]
tests/test_tinydb.py::test_update_transform[json] PASSED                 [ 67%]
tests/test_tinydb.py::test_update_ids[memory] PASSED                     [ 68%]
tests/test_tinydb.py::test_update_ids[json] PASSED                       [ 68%]
tests/test_tinydb.py::test_update_multiple[memory] PASSED                [ 69%]
tests/test_tinydb.py::test_update_multiple[json] PASSED                  [ 69%]
tests/test_tinydb.py::test_update_multiple_operation[memory] PASSED      [ 70%]
tests/test_tinydb.py::test_update_multiple_operation[json] PASSED        [ 70%]
tests/test_tinydb.py::test_upsert[memory] PASSED                         [ 71%]
tests/test_tinydb.py::test_upsert[json] PASSED                           [ 71%]
tests/test_tinydb.py::test_upsert_by_id[memory] PASSED                   [ 72%]
tests/test_tinydb.py::test_upsert_by_id[json] PASSED                     [ 72%]
tests/test_tinydb.py::test_search[memory] PASSED                         [ 73%]
tests/test_tinydb.py::test_search[json] PASSED                           [ 73%]
tests/test_tinydb.py::test_search_path[memory] PASSED                    [ 74%]
tests/test_tinydb.py::test_search_path[json] PASSED                      [ 74%]
tests/test_tinydb.py::test_search_no_results_cache[memory] PASSED        [ 75%]
tests/test_tinydb.py::test_search_no_results_cache[json] PASSED          [ 75%]
tests/test_tinydb.py::test_get[memory] PASSED                            [ 76%]
tests/test_tinydb.py::test_get[json] PASSED                              [ 76%]
tests/test_tinydb.py::test_get_ids[memory] PASSED                        [ 77%]
tests/test_tinydb.py::test_get_ids[json] PASSED                          [ 77%]
tests/test_tinydb.py::test_get_multiple_ids[memory] PASSED               [ 78%]
tests/test_tinydb.py::test_get_multiple_ids[json] PASSED                 [ 78%]
tests/test_tinydb.py::test_get_invalid[memory] PASSED                    [ 79%]
tests/test_tinydb.py::test_get_invalid[json] PASSED                      [ 79%]
tests/test_tinydb.py::test_count[memory] PASSED                          [ 80%]
tests/test_tinydb.py::test_count[json] PASSED                            [ 80%]
tests/test_tinydb.py::test_contains[memory] PASSED                       [ 81%]
tests/test_tinydb.py::test_contains[json] PASSED                         [ 81%]
tests/test_tinydb.py::test_contains_ids[memory] PASSED                   [ 82%]
tests/test_tinydb.py::test_contains_ids[json] PASSED                     [ 82%]
tests/test_tinydb.py::test_contains_invalid[memory] PASSED               [ 83%]
tests/test_tinydb.py::test_contains_invalid[json] PASSED                 [ 83%]
tests/test_tinydb.py::test_get_idempotent[memory] PASSED                 [ 84%]
tests/test_tinydb.py::test_get_idempotent[json] PASSED                   [ 84%]
tests/test_tinydb.py::test_multiple_dbs PASSED                           [ 85%]
tests/test_tinydb.py::test_storage_closed_once PASSED                    [ 85%]
tests/test_tinydb.py::test_unique_ids PASSED                             [ 86%]
tests/test_tinydb.py::test_lastid_after_open PASSED                      [ 86%]
tests/test_tinydb.py::test_doc_ids_json PASSED                           [ 87%]
tests/test_tinydb.py::test_insert_string PASSED                          [ 87%]
tests/test_tinydb.py::test_insert_invalid_dict PASSED                    [ 88%]
tests/test_tinydb.py::test_gc PASSED                                     [ 88%]
tests/test_tinydb.py::test_drop_table PASSED                             [ 89%]
tests/test_tinydb.py::test_empty_write PASSED                            [ 89%]
tests/test_tinydb.py::test_query_cache PASSED                            [ 90%]
tests/test_tinydb.py::test_tinydb_is_iterable[memory] PASSED             [ 90%]
tests/test_tinydb.py::test_tinydb_is_iterable[json] PASSED               [ 91%]
tests/test_tinydb.py::test_repr PASSED                                   [ 91%]
tests/test_tinydb.py::test_delete PASSED                                 [ 92%]
tests/test_tinydb.py::test_insert_multiple_with_single_dict[memory] PASSED [ 92%]
tests/test_tinydb.py::test_insert_multiple_with_single_dict[json] PASSED [ 93%]
tests/test_tinydb.py::test_access_storage PASSED                         [ 93%]
tests/test_tinydb.py::test_empty_db_len PASSED                           [ 94%]
tests/test_tinydb.py::test_insert_on_existing_db PASSED                  [ 94%]
tests/test_tinydb.py::test_storage_access PASSED                         [ 95%]
tests/test_tinydb.py::test_lambda_query PASSED                           [ 95%]
tests/test_utils.py::test_lru_cache PASSED                               [ 96%]
tests/test_utils.py::test_lru_cache_set_multiple PASSED                  [ 96%]
tests/test_utils.py::test_lru_cache_get PASSED                           [ 97%]
tests/test_utils.py::test_lru_cache_delete PASSED                        [ 97%]
tests/test_utils.py::test_lru_cache_clear PASSED                         [ 98%]
tests/test_utils.py::test_lru_cache_unlimited PASSED                     [ 98%]
tests/test_utils.py::test_lru_cache_unlimited_explicit PASSED            [ 99%]
tests/test_utils.py::test_lru_cache_iteration_works PASSED               [ 99%]
tests/test_utils.py::test_freeze PASSED                                  [100%]

--------------------------------- JSON report ----------------------------------
report saved to: report.json
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.10.12-final-0 _______________

Name                    Stmts   Miss Branch BrPart  Cover
---------------------------------------------------------
tinydb/__init__.py          5      0      0      0   100%
tinydb/database.py         53      0     10      0   100%
tinydb/middlewares.py      33      0      6      0   100%
tinydb/mypy_plugin.py      11     11      0      0     0%
tinydb/operations.py       24      0      0      0   100%
tinydb/queries.py         142     11     26      3    92%
tinydb/storages.py         54      2      8      1    95%
tinydb/table.py           201      8    100      6    93%
tinydb/utils.py            71      1     16      1    98%
tinydb/version.py           1      0      0      0   100%
---------------------------------------------------------
TOTAL                     595     33    166     11    93%
============================= 201 passed in 0.59s ==============================