chroma-core / chroma

the AI-native open-source embedding database
https://www.trychroma.com/
Apache License 2.0
14.43k stars 1.2k forks source link

[CLN] Break up test_api #2586

Open atroyn opened 1 month ago

atroyn commented 1 month ago

test_api.py is a legacy of Chroma's launch, and provided some basic initial test coverage. We've continued to add to it as the project has evolved, and it's become a catch-all kitchen sink test file.

In practice a lot of the surface covered in test_api is better covered by our property tests. test_api.py should be broken up into separate files by API / object, and each object test should cover exceptional cases, rather than normal operation.

For example, we should save entropy in the property tests by not having them generate lists of IDs that are shorter than the lists of documents on a Collection.add call, but we should also be testing this path.

prateekagarwal3 commented 1 month ago

wanting to pick this cleanup @atroyn. I looked through the test_api.py and it has multiple tests testing all kind of things. any particular suggestions on we want break the big file into smaller files? one way I can think of is we break the file into different collections API's like 1. add 2.delete 3.update 4.query 5.upsert ..

jackhwalters commented 3 weeks ago

I can pick this up