Set up test fixtures.
(self)
| 21 | """Test suite for FetchNode timeout configuration and usage.""" |
| 22 | |
| 23 | def setUp(self): |
| 24 | """Set up test fixtures.""" |
| 25 | # Mock all the heavy external dependencies at import time |
| 26 | self.mock_modules = {} |
| 27 | for module in ['langchain_core', 'langchain_core.documents', |
| 28 | 'langchain_community', 'langchain_community.document_loaders', |
| 29 | 'langchain_openai', 'minify_html', 'pydantic', |
| 30 | 'langchain', 'langchain.prompts']: |
| 31 | if module not in sys.modules: |
| 32 | sys.modules[module] = MagicMock() |
| 33 | |
| 34 | # Create mock Document class |
| 35 | class MockDocument: |
| 36 | def __init__(self, page_content, metadata=None): |
| 37 | self.page_content = page_content |
| 38 | self.metadata = metadata or {} |
| 39 | |
| 40 | sys.modules['langchain_core.documents'].Document = MockDocument |
| 41 | |
| 42 | # Create mock PyPDFLoader |
| 43 | class MockPyPDFLoader: |
| 44 | def __init__(self, source): |
| 45 | self.source = source |
| 46 | |
| 47 | def load(self): |
| 48 | time.sleep(0.1) # Simulate some work |
| 49 | return [MockDocument(page_content=f"PDF content from {self.source}")] |
| 50 | |
| 51 | sys.modules['langchain_community.document_loaders'].PyPDFLoader = MockPyPDFLoader |
| 52 | |
| 53 | # Now import FetchNode |
| 54 | from scrapegraphai.nodes.fetch_node import FetchNode |
| 55 | self.FetchNode = FetchNode |
| 56 | |
| 57 | def tearDown(self): |
| 58 | """Clean up after tests.""" |
nothing calls this directly
no outgoing calls
no test coverage detected