fix: correct assert syntax in test_empty_model_suffix to prevent false positives

Why this change is needed:
The test file contained assert statements using tuple syntax `assert (condition, message)`,
which Python interprets as asserting a non-empty tuple (always True). This meant the tests
were passing even when the actual conditions failed, creating a false sense of test coverage.
Additionally, there were unused imports (pytest, patch, MagicMock) that needed cleanup.

How it solves it:
- Fixed assert statements on lines 61-63 and 105-109 to use correct syntax:
  `assert condition, message` instead of `assert (condition, message)`
- Removed unused imports to satisfy linter requirements
- Applied automatic formatting via ruff-format and ruff

Impact:
- Tests now correctly validate the empty model suffix behavior
- Prevents false positive test results that could hide bugs
- Passes all pre-commit hooks (F631 error resolved)

Testing:
- Verified with `uv run pre-commit run --all-files` - all checks pass
- Assert statements now properly fail when conditions are not met
This commit is contained in:
BukeLy 2025-11-20 01:57:47 +08:00
parent 42df825d30
commit 7d0c356702

View file

@ -5,8 +5,8 @@ This test module verifies that both storage backends gracefully handle
the case when _generate_collection_suffix() returns an empty string.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock
from unittest.mock import Mock
from lightrag.base import BaseVectorStorage
from lightrag.utils import EmbeddingFunc
@ -58,10 +58,9 @@ class TestEmptyModelSuffix:
# 2. table_name doesn't have trailing underscore
# 3. table_name equals the base table name
assert storage.model_suffix == "", "model_suffix should be empty"
assert (
not storage.table_name.endswith("_"),
f"table_name should not have trailing underscore: {storage.table_name}",
)
assert not storage.table_name.endswith(
"_"
), f"table_name should not have trailing underscore: {storage.table_name}"
# Expected base table name
expected_base = namespace_to_table_name("chunks")
@ -102,13 +101,12 @@ class TestEmptyModelSuffix:
# 1. model_suffix is empty
# 2. final_namespace doesn't have trailing underscore
# 3. final_namespace equals the legacy namespace
assert storage._generate_collection_suffix() == "", (
"model_suffix should be empty"
)
assert (
not storage.final_namespace.endswith("_"),
f"final_namespace should not have trailing underscore: {storage.final_namespace}",
)
storage._generate_collection_suffix() == ""
), "model_suffix should be empty"
assert not storage.final_namespace.endswith(
"_"
), f"final_namespace should not have trailing underscore: {storage.final_namespace}"
assert storage.final_namespace == storage.legacy_namespace, (
f"final_namespace should fallback to legacy_namespace when model_suffix is empty. "
f"Expected: {storage.legacy_namespace}, Got: {storage.final_namespace}"
@ -127,7 +125,9 @@ class TestEmptyModelSuffix:
# Create a proper embedding function with model_name
embedding_func = EmbeddingFunc(
embedding_dim=1536, func=dummy_embedding_func, model_name="text-embedding-ada-002"
embedding_dim=1536,
func=dummy_embedding_func,
model_name="text-embedding-ada-002",
)
# Setup global_config
@ -154,16 +154,18 @@ class TestEmptyModelSuffix:
# 1. model_suffix is not empty
# 2. table_name has correct format
assert storage.model_suffix != "", "model_suffix should not be empty"
assert "_" in storage.table_name, "table_name should contain underscore as separator"
assert (
"_" in storage.table_name
), "table_name should contain underscore as separator"
# Expected format: base_table_model_suffix
expected_base = namespace_to_table_name("chunks")
expected_model_id = embedding_func.get_model_identifier()
expected_table_name = f"{expected_base}_{expected_model_id}"
assert storage.table_name == expected_table_name, (
f"table_name format incorrect. Expected: {expected_table_name}, Got: {storage.table_name}"
)
assert (
storage.table_name == expected_table_name
), f"table_name format incorrect. Expected: {expected_table_name}, Got: {storage.table_name}"
def test_qdrant_collection_name_with_valid_suffix(self):
"""
@ -177,7 +179,9 @@ class TestEmptyModelSuffix:
# Create a proper embedding function with model_name
embedding_func = EmbeddingFunc(
embedding_dim=1536, func=dummy_embedding_func, model_name="text-embedding-ada-002"
embedding_dim=1536,
func=dummy_embedding_func,
model_name="text-embedding-ada-002",
)
# Setup global_config
@ -200,17 +204,17 @@ class TestEmptyModelSuffix:
# 2. final_namespace has correct format
model_suffix = storage._generate_collection_suffix()
assert model_suffix != "", "model_suffix should not be empty"
assert "_" in storage.final_namespace, (
"final_namespace should contain underscore as separator"
)
assert (
"_" in storage.final_namespace
), "final_namespace should contain underscore as separator"
# Expected format: lightrag_vdb_namespace_model_suffix
expected_model_id = embedding_func.get_model_identifier()
expected_collection_name = f"lightrag_vdb_chunks_{expected_model_id}"
assert storage.final_namespace == expected_collection_name, (
f"final_namespace format incorrect. Expected: {expected_collection_name}, Got: {storage.final_namespace}"
)
assert (
storage.final_namespace == expected_collection_name
), f"final_namespace format incorrect. Expected: {expected_collection_name}, Got: {storage.final_namespace}"
def test_suffix_generation_fallback_chain(self):
"""
@ -221,7 +225,6 @@ class TestEmptyModelSuffix:
2. Global config fallback: global_config["embedding_func"].get_model_identifier()
3. Final fallback: return empty string
"""
from lightrag.base import BaseVectorStorage
# Create a concrete implementation for testing
class TestStorage(BaseVectorStorage):
@ -288,7 +291,6 @@ class TestEmptyModelSuffix:
global_config={},
embedding_func=mock_embedding_func,
)
assert storage._generate_collection_suffix() == "", (
"Should return empty string when no model_identifier available"
)
assert (
storage._generate_collection_suffix() == ""
), "Should return empty string when no model_identifier available"