aider/tests/scrape/test_scrape.py

46 lines
1.4 KiB
Python

import unittest
from unittest.mock import patch, MagicMock
from aider.commands import Commands
class TestScrape(unittest.TestCase):
@patch("aider.commands.install_playwright")
@patch("aider.commands.Scraper")
def test_cmd_web_imports_playwright(self, mock_scraper, mock_install_playwright):
# Mock the necessary objects and methods
mock_io = MagicMock()
mock_coder = MagicMock()
mock_install_playwright.return_value = True
mock_scraper_instance = MagicMock()
mock_scraper.return_value = mock_scraper_instance
mock_scraper_instance.scrape.return_value = "Mocked content"
# Create a Commands instance
commands = Commands(mock_io, mock_coder)
# Run the cmd_web command
commands.cmd_web("https://example.com")
# Check that install_playwright was called
mock_install_playwright.assert_called_once()
# Check that Scraper was instantiated
mock_scraper.assert_called_once()
# Try to import playwright
try:
import playwright # noqa: F401
playwright_imported = True
except ImportError:
playwright_imported = False
# Assert that playwright was successfully imported
self.assertTrue(
playwright_imported,
"Playwright should be importable after running cmd_web command"
)
if __name__ == "__main__":
unittest.main()