test_kg_node_service.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import pytest
  2. from service.kg_node_service import KGNodeService
  3. from model.trunks_model import KGNode
  4. from sqlalchemy.exc import IntegrityError
  5. @pytest.fixture(scope="module")
  6. def kg_node_service():
  7. return KGNodeService()
  8. @pytest.fixture
  9. def test_node_data():
  10. return {
  11. "name": "测试节点",
  12. "category": "测试类别",
  13. "version": "1.0"
  14. }
  15. class TestKGNodeServiceCRUD:
  16. def test_create_and_get_node(self, kg_node_service, test_node_data):
  17. created = kg_node_service.create_node(test_node_data)
  18. assert created.id is not None
  19. retrieved = kg_node_service.get_node(created.id)
  20. assert retrieved.name == test_node_data['name']
  21. def test_update_node(self, kg_node_service, test_node_data):
  22. node = kg_node_service.create_node(test_node_data)
  23. updated = kg_node_service.update_node(node.id, {"name": "更新后的节点"})
  24. assert updated.name == "更新后的节点"
  25. def test_delete_node(self, kg_node_service, test_node_data):
  26. node = kg_node_service.create_node(test_node_data)
  27. assert kg_node_service.delete_node(node.id) is None
  28. with pytest.raises(ValueError):
  29. kg_node_service.get_node(node.id)
  30. def test_duplicate_node(self, kg_node_service, test_node_data):
  31. kg_node_service.create_node(test_node_data)
  32. with pytest.raises(ValueError):
  33. kg_node_service.create_node(test_node_data)
  34. class TestPaginatedSearch:
  35. def test_paginated_search(self, kg_node_service, test_node_data):
  36. results = kg_node_service.paginated_search({
  37. 'keyword': '感染性',
  38. 'pageNo': 1,
  39. 'limit': 10
  40. })
  41. assert len(results['records']) > 0
  42. assert results['pagination']['pageNo'] == 1
  43. class TestBatchProcess:
  44. def test_batch_process_er_nodes(self, kg_node_service, test_node_data):
  45. kg_node_service.batch_process_er_nodes()