mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-15 08:12:10 +02:00
Fixing tests
This commit is contained in:
parent
364e30b0f9
commit
affdb06a1e
3 changed files with 30 additions and 35 deletions
|
|
@ -32,7 +32,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify SPO query for literal includes user/collection
|
# Verify SPO query for literal includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -73,7 +73,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify SP query for literals includes user/collection
|
# Verify SP query for literals includes user/collection
|
||||||
expected_literal_query = (
|
expected_literal_query = (
|
||||||
|
|
@ -131,7 +131,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify SO query for nodes includes user/collection
|
# Verify SO query for nodes includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -171,7 +171,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify S query includes user/collection
|
# Verify S query includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -210,7 +210,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify PO query for literals includes user/collection
|
# Verify PO query for literals includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -250,7 +250,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify P query includes user/collection
|
# Verify P query includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -289,7 +289,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify O query for literals includes user/collection
|
# Verify O query for literals includes user/collection
|
||||||
expected_query = (
|
expected_query = (
|
||||||
|
|
@ -328,7 +328,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify wildcard query for literals includes user/collection
|
# Verify wildcard query for literals includes user/collection
|
||||||
expected_literal_query = (
|
expected_literal_query = (
|
||||||
|
|
@ -381,7 +381,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
|
|
||||||
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
mock_driver.execute_query.return_value = ([], MagicMock(), MagicMock())
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('default', query)
|
||||||
|
|
||||||
# Verify defaults were used
|
# Verify defaults were used
|
||||||
calls = mock_driver.execute_query.call_args_list
|
calls = mock_driver.execute_query.call_args_list
|
||||||
|
|
@ -428,7 +428,7 @@ class TestNeo4jQueryUserCollectionIsolation:
|
||||||
([mock_record2], MagicMock(), MagicMock()) # Node query
|
([mock_record2], MagicMock(), MagicMock()) # Node query
|
||||||
]
|
]
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples("test_user", query)
|
||||||
|
|
||||||
# Verify results are proper Triple objects
|
# Verify results are proper Triple objects
|
||||||
assert len(result) == 2
|
assert len(result) == 2
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,6 @@ class TestRowsGraphQLQueryLogic:
|
||||||
query='{ customers { id name } }',
|
query='{ customers { id name } }',
|
||||||
variables={},
|
variables={},
|
||||||
operation_name=None,
|
operation_name=None,
|
||||||
user="test_user",
|
|
||||||
collection="test_collection"
|
collection="test_collection"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -180,7 +179,7 @@ class TestRowsGraphQLQueryLogic:
|
||||||
# Verify context was passed
|
# Verify context was passed
|
||||||
context = call_args[1]['context_value']
|
context = call_args[1]['context_value']
|
||||||
assert context["processor"] == processor
|
assert context["processor"] == processor
|
||||||
assert context["user"] == "test_user"
|
assert context["workspace"] == "default"
|
||||||
assert context["collection"] == "test_collection"
|
assert context["collection"] == "test_collection"
|
||||||
|
|
||||||
# Verify result structure
|
# Verify result structure
|
||||||
|
|
@ -221,7 +220,6 @@ class TestRowsGraphQLQueryLogic:
|
||||||
query='{ customers { invalid_field } }',
|
query='{ customers { invalid_field } }',
|
||||||
variables={},
|
variables={},
|
||||||
operation_name=None,
|
operation_name=None,
|
||||||
user="test_user",
|
|
||||||
collection="test_collection"
|
collection="test_collection"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -251,7 +249,6 @@ class TestRowsGraphQLQueryLogic:
|
||||||
# Create mock message
|
# Create mock message
|
||||||
mock_msg = MagicMock()
|
mock_msg = MagicMock()
|
||||||
mock_request = RowsQueryRequest(
|
mock_request = RowsQueryRequest(
|
||||||
user="test_user",
|
|
||||||
collection="test_collection",
|
collection="test_collection",
|
||||||
query='{ customers { id name } }',
|
query='{ customers { id name } }',
|
||||||
variables={},
|
variables={},
|
||||||
|
|
@ -275,7 +272,6 @@ class TestRowsGraphQLQueryLogic:
|
||||||
query='{ customers { id name } }',
|
query='{ customers { id name } }',
|
||||||
variables={},
|
variables={},
|
||||||
operation_name=None,
|
operation_name=None,
|
||||||
user="test_user",
|
|
||||||
collection="test_collection"
|
collection="test_collection"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -302,7 +298,6 @@ class TestRowsGraphQLQueryLogic:
|
||||||
# Create mock message
|
# Create mock message
|
||||||
mock_msg = MagicMock()
|
mock_msg = MagicMock()
|
||||||
mock_request = RowsQueryRequest(
|
mock_request = RowsQueryRequest(
|
||||||
user="test_user",
|
|
||||||
collection="test_collection",
|
collection="test_collection",
|
||||||
query='{ invalid_query }',
|
query='{ invalid_query }',
|
||||||
variables={},
|
variables={},
|
||||||
|
|
@ -362,7 +357,7 @@ class TestUnifiedTableQueries:
|
||||||
|
|
||||||
# Query with filter on indexed field
|
# Query with filter on indexed field
|
||||||
results = await processor.query_cassandra(
|
results = await processor.query_cassandra(
|
||||||
user="test_user",
|
workspace="test_workspace",
|
||||||
collection="test_collection",
|
collection="test_collection",
|
||||||
schema_name="products",
|
schema_name="products",
|
||||||
row_schema=schema,
|
row_schema=schema,
|
||||||
|
|
@ -426,7 +421,7 @@ class TestUnifiedTableQueries:
|
||||||
|
|
||||||
# Query with filter on non-indexed field
|
# Query with filter on non-indexed field
|
||||||
results = await processor.query_cassandra(
|
results = await processor.query_cassandra(
|
||||||
user="test_user",
|
workspace="test_workspace",
|
||||||
collection="test_collection",
|
collection="test_collection",
|
||||||
schema_name="products",
|
schema_name="products",
|
||||||
row_schema=schema,
|
row_schema=schema,
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=100
|
limit=100
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
# Verify KnowledgeGraph was created with correct parameters
|
# Verify KnowledgeGraph was created with correct parameters
|
||||||
mock_kg_class.assert_called_once_with(
|
mock_kg_class.assert_called_once_with(
|
||||||
|
|
@ -178,7 +178,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=50
|
limit=50
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
mock_tg_instance.get_sp.assert_called_once_with('test_collection', 'test_subject', 'test_predicate', g=None, limit=50)
|
mock_tg_instance.get_sp.assert_called_once_with('test_collection', 'test_subject', 'test_predicate', g=None, limit=50)
|
||||||
assert len(result) == 1
|
assert len(result) == 1
|
||||||
|
|
@ -215,7 +215,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=25
|
limit=25
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
mock_tg_instance.get_s.assert_called_once_with('test_collection', 'test_subject', g=None, limit=25)
|
mock_tg_instance.get_s.assert_called_once_with('test_collection', 'test_subject', g=None, limit=25)
|
||||||
assert len(result) == 1
|
assert len(result) == 1
|
||||||
|
|
@ -252,7 +252,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=10
|
limit=10
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
mock_tg_instance.get_p.assert_called_once_with('test_collection', 'test_predicate', g=None, limit=10)
|
mock_tg_instance.get_p.assert_called_once_with('test_collection', 'test_predicate', g=None, limit=10)
|
||||||
assert len(result) == 1
|
assert len(result) == 1
|
||||||
|
|
@ -289,7 +289,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=75
|
limit=75
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
mock_tg_instance.get_o.assert_called_once_with('test_collection', 'test_object', g=None, limit=75)
|
mock_tg_instance.get_o.assert_called_once_with('test_collection', 'test_object', g=None, limit=75)
|
||||||
assert len(result) == 1
|
assert len(result) == 1
|
||||||
|
|
@ -327,7 +327,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=1000
|
limit=1000
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
mock_tg_instance.get_all.assert_called_once_with('test_collection', limit=1000)
|
mock_tg_instance.get_all.assert_called_once_with('test_collection', limit=1000)
|
||||||
assert len(result) == 1
|
assert len(result) == 1
|
||||||
|
|
@ -433,7 +433,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=100
|
limit=100
|
||||||
)
|
)
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
# Verify KnowledgeGraph was created with authentication
|
# Verify KnowledgeGraph was created with authentication
|
||||||
mock_kg_class.assert_called_once_with(
|
mock_kg_class.assert_called_once_with(
|
||||||
|
|
@ -472,11 +472,11 @@ class TestCassandraQueryProcessor:
|
||||||
)
|
)
|
||||||
|
|
||||||
# First query should create TrustGraph
|
# First query should create TrustGraph
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('test_user', query)
|
||||||
assert mock_kg_class.call_count == 1
|
assert mock_kg_class.call_count == 1
|
||||||
|
|
||||||
# Second query with same table should reuse TrustGraph
|
# Second query with same table should reuse TrustGraph
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('test_user', query)
|
||||||
assert mock_kg_class.call_count == 1 # Should not increase
|
assert mock_kg_class.call_count == 1 # Should not increase
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|
@ -512,7 +512,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=100
|
limit=100
|
||||||
)
|
)
|
||||||
|
|
||||||
await processor.query_triples(query1)
|
await processor.query_triples('user1', query1)
|
||||||
assert processor.table == 'user1'
|
assert processor.table == 'user1'
|
||||||
|
|
||||||
# Second query with different table
|
# Second query with different table
|
||||||
|
|
@ -525,7 +525,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=100
|
limit=100
|
||||||
)
|
)
|
||||||
|
|
||||||
await processor.query_triples(query2)
|
await processor.query_triples('user2', query2)
|
||||||
assert processor.table == 'user2'
|
assert processor.table == 'user2'
|
||||||
|
|
||||||
# Verify TrustGraph was created twice
|
# Verify TrustGraph was created twice
|
||||||
|
|
@ -553,7 +553,7 @@ class TestCassandraQueryProcessor:
|
||||||
)
|
)
|
||||||
|
|
||||||
with pytest.raises(Exception, match="Query failed"):
|
with pytest.raises(Exception, match="Query failed"):
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('trustgraph.query.triples.cassandra.service.EntityCentricKnowledgeGraph')
|
@patch('trustgraph.query.triples.cassandra.service.EntityCentricKnowledgeGraph')
|
||||||
|
|
@ -590,7 +590,7 @@ class TestCassandraQueryProcessor:
|
||||||
limit=100
|
limit=100
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
assert len(result) == 2
|
assert len(result) == 2
|
||||||
assert result[0].o.value == 'object1'
|
assert result[0].o.value == 'object1'
|
||||||
|
|
@ -629,7 +629,7 @@ class TestCassandraQueryPerformanceOptimizations:
|
||||||
limit=50
|
limit=50
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
# Verify get_po was called (should use optimized po_table)
|
# Verify get_po was called (should use optimized po_table)
|
||||||
mock_tg_instance.get_po.assert_called_once_with(
|
mock_tg_instance.get_po.assert_called_once_with(
|
||||||
|
|
@ -670,7 +670,7 @@ class TestCassandraQueryPerformanceOptimizations:
|
||||||
limit=25
|
limit=25
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
# Verify get_os was called (should use optimized subject_table with clustering)
|
# Verify get_os was called (should use optimized subject_table with clustering)
|
||||||
mock_tg_instance.get_os.assert_called_once_with(
|
mock_tg_instance.get_os.assert_called_once_with(
|
||||||
|
|
@ -729,7 +729,7 @@ class TestCassandraQueryPerformanceOptimizations:
|
||||||
limit=10
|
limit=10
|
||||||
)
|
)
|
||||||
|
|
||||||
await processor.query_triples(query)
|
await processor.query_triples('test_user', query)
|
||||||
|
|
||||||
# Verify the correct method was called
|
# Verify the correct method was called
|
||||||
method = getattr(mock_tg_instance, expected_method)
|
method = getattr(mock_tg_instance, expected_method)
|
||||||
|
|
@ -788,7 +788,7 @@ class TestCassandraQueryPerformanceOptimizations:
|
||||||
limit=1000
|
limit=1000
|
||||||
)
|
)
|
||||||
|
|
||||||
result = await processor.query_triples(query)
|
result = await processor.query_triples('large_dataset_user', query)
|
||||||
|
|
||||||
# Verify optimized get_po was used (no ALLOW FILTERING needed!)
|
# Verify optimized get_po was used (no ALLOW FILTERING needed!)
|
||||||
mock_tg_instance.get_po.assert_called_once_with(
|
mock_tg_instance.get_po.assert_called_once_with(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue