mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-25 14:55:00 +00:00
Implemented a test for the cmd_scrape
command that ensures playwright can be imported after running cmd_web
.
This commit is contained in:
parent
3e7663e914
commit
74f4bd106a
1 changed files with 32 additions and 32 deletions
|
@ -1,46 +1,46 @@
|
||||||
import unittest
|
import unittest
|
||||||
from unittest.mock import patch, MagicMock
|
from unittest.mock import patch
|
||||||
|
import sys
|
||||||
|
import io
|
||||||
|
|
||||||
from aider.commands import Commands
|
from aider.commands import Commands
|
||||||
|
from aider.io import InputOutput
|
||||||
|
|
||||||
|
|
||||||
class TestScrape(unittest.TestCase):
|
class TestScrape(unittest.TestCase):
|
||||||
@patch("aider.commands.install_playwright")
|
def setUp(self):
|
||||||
@patch("aider.commands.Scraper")
|
self.io = InputOutput()
|
||||||
def test_cmd_web_imports_playwright(self, mock_scraper, mock_install_playwright):
|
self.commands = Commands(self.io, None)
|
||||||
# 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
|
def test_cmd_web_imports_playwright(self):
|
||||||
commands = Commands(mock_io, mock_coder)
|
# Capture stdout to suppress output during the test
|
||||||
|
captured_output = io.StringIO()
|
||||||
|
sys.stdout = captured_output
|
||||||
|
|
||||||
# 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:
|
try:
|
||||||
import playwright # noqa: F401
|
# Run the cmd_web command
|
||||||
playwright_imported = True
|
self.commands.cmd_web("https://example.com")
|
||||||
except ImportError:
|
|
||||||
playwright_imported = False
|
|
||||||
|
|
||||||
# Assert that playwright was successfully imported
|
# Try to import playwright
|
||||||
self.assertTrue(
|
try:
|
||||||
playwright_imported,
|
import playwright
|
||||||
"Playwright should be importable after running cmd_web command"
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check if the content from example.com was scraped
|
||||||
|
output = captured_output.getvalue()
|
||||||
|
self.assertIn("This domain is for use in illustrative examples in documents.", output)
|
||||||
|
|
||||||
|
finally:
|
||||||
|
# Restore stdout
|
||||||
|
sys.stdout = sys.__stdout__
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue