kaizendorks / kaizendorks/pymongo_inmemory

Hangs with pytest with 0.2.3 (Thread pb ?)

Open
#43 3 comments 0 reactions 1 assignee Claimed by @ekarademir View on GitHub
bug testing
Dominant language
Python
Stars
53
Forks
18
PR merge metrics
No merged PRs in 30d

Description

Switching from 0.2.2 to 0.2.3 makes mongo client hanging for closing.
Time go from 1s to 32 s for one test

**To Reproduce**

Run following test with 0.2.2 then 0.2.3 (pytest)

```
def test_mongo():

with MongoClient() as client:
# Given
db = client['toolbox']
tm : Collection = db.tm

# When
oid = tm.insert_one({'name': 'foo', 'kind': 'bar'}).inserted_id

# Then
assert oid is not None
retrieved = tm.find_one({'_id': oid})
assert retrieved is not None
assert retrieved['name'] == 'foo'

# When
tm.delete_one({'_id': oid})
assert tm.find_one({'_id': oid}) is None
```

**Expected behavior**
Avoid hanging

**Logs**
0.2.2

```
time pytest tests/unit/persistance/test_inmemory_mongo.py
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.8.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /home/cram/Workdir/IAS/MAJIS/majis_tm_toolbox, configfile: pytest.ini
plugins: mock-3.6.1, integration-0.2.2
collected 1 item

tests/unit/persistance/test_inmemory_mongo.py::test_mongo
-------------------------------------------------------------------------------------------------- live log call --------------------------------------------------------------------------------------------------
WARNING PYMONGOIM_DOWNLOADER:__init__.py:214 Starting from MongoDB 4.0.23 there isn't a generic Linux version of MongoDB
PASSED [100%]

================================================================================================ warnings summary =================================================================================================
tests/unit/persistance/test_inmemory_mongo.py::test_mongo
/home/cram/Workdir/IAS/MAJIS/majis_tm_toolbox/.venv/lib/python3.8/site-packages/pymongo_inmemory/downloader/__init__.py:214: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
logger.warn((

-- Docs: https://docs.pytest.org/en/stable/warnings.html
========================================================================================== 1 passed, 1 warning in 0.44s ===========================================================================================

real 0m1,460s
user 0m1,004s
sys 0m0,634s
(majis_tm_toolbox) cram@cram-Precision-M6800:~/Workdir/IAS/MAJIS/majis_tm_toolbox$
```

0.2.3

```
time pytest tests/unit/persistance/test_inmemory_mongo.py
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.8.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /home/cram/Workdir/IAS/MAJIS/majis_tm_toolbox, configfile: pytest.ini
plugins: mock-3.6.1, integration-0.2.2
collected 1 item

tests/unit/persistance/test_inmemory_mongo.py::test_mongo
-------------------------------------------------------------------------------------------------- live log call --------------------------------------------------------------------------------------------------
WARNING PYMONGOIM_DOWNLOADER:__init__.py:191 Starting from MongoDB 4.0.23 there isn't a generic Linux version of MongoDB
PASSED [100%]

================================================================================================ warnings summary =================================================================================================
tests/unit/persistance/test_inmemory_mongo.py::test_mongo
/home/cram/Workdir/IAS/MAJIS/majis_tm_toolbox/.venv/lib/python3.8/site-packages/pymongo_inmemory/downloader/__init__.py:191: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
logger.warn((

-- Docs: https://docs.pytest.org/en/stable/warnings.html
========================================================================================== 1 passed, 1 warning in 31.84s ==========================================================================================

real 0m32,818s
user 0m1,541s
sys 0m0,499s

```

**Screenshots**
Profiles generated with pycharm profilings tools

**With 0_2_2**
![0_2_2](https://user-images.githubusercontent.com/4507672/126294675-534c4aa2-57f5-4ff3-a410-8a1f66cf6c6f.png)

**With 0_2_3**
![0_2_3](https://user-images.githubusercontent.com/4507672/126294672-0d46cd2c-a7dd-4323-b278-c6f68d0c5a86.png)

**Context:**
- OS: Linux Ubuntu
- Version of pymongo_inmemory 0.2.3
- Version of mongo you are downloading 4.0.3
- Any other additional information about context

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.