123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import pytest
- from service.kg_node_service import KGNodeService
- from model.kg_node import KGNode
- from sqlalchemy.exc import IntegrityError
- @pytest.fixture(scope="module")
- def kg_node_service():
- from db.session import get_db
- return KGNodeService(next(get_db()))
- @pytest.fixture
- def test_node_data():
- return {
- "name": "测试节点",
- "category": "测试类别",
- "version": "1.0"
- }
- class TestKGNodeServiceCRUD:
- def test_create_and_get_node(self, kg_node_service, test_node_data):
- created = kg_node_service.create_node(test_node_data)
- assert created.id is not None
- retrieved = kg_node_service.get_node(created.id)
- assert retrieved.name == test_node_data['name']
- def test_update_node(self, kg_node_service, test_node_data):
- node = kg_node_service.create_node(test_node_data)
- updated = kg_node_service.update_node(node.id, {"name": "更新后的节点"})
- assert updated.name == "更新后的节点"
- def test_delete_node(self, kg_node_service, test_node_data):
- node = kg_node_service.create_node(test_node_data)
- assert kg_node_service.delete_node(node.id) is None
- with pytest.raises(ValueError):
- kg_node_service.get_node(node.id)
- def test_duplicate_node(self, kg_node_service, test_node_data):
- kg_node_service.create_node(test_node_data)
- with pytest.raises(ValueError):
- kg_node_service.create_node(test_node_data)
- class TestPaginatedSearch:
- def test_paginated_search(self, kg_node_service, test_node_data):
- results = kg_node_service.paginated_search({
- 'keyword': '感染性',
- 'pageNo': 1,
- 'limit': 10
- })
- assert len(results['records']) > 0
- assert results['pagination']['pageNo'] == 1
- class TestBatchProcess:
- def test_batch_process_er_nodes(self, kg_node_service, test_node_data):
- kg_node_service.batch_process_er_nodes()
|