22 lines
897 B
Python
22 lines
897 B
Python
import unittest
|
|
|
|
from crawler_platform.app.config.loader import load_project_config
|
|
from crawler_platform.app.core.crawler.fetchers import RequestsFetcher
|
|
from crawler_platform.app.domains.perfume.extractor import PerfumeRuleBasedExtractor
|
|
|
|
|
|
class SmokeTest(unittest.TestCase):
|
|
def test_config_fetch_and_extract_without_network(self):
|
|
config = load_project_config("configs/perfume_subscription.yaml")
|
|
fetch_result = RequestsFetcher().fetch("tests/fixtures/sample_perfume.html")
|
|
bundle = PerfumeRuleBasedExtractor().extract(fetch_result.html, config)
|
|
|
|
self.assertEqual(config.domain, "perfume")
|
|
self.assertEqual(fetch_result.status_code, 200)
|
|
self.assertIn("hasTopNote", {claim.predicate for claim in bundle.claims})
|
|
self.assertIn("hasPrice", {claim.predicate for claim in bundle.claims})
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|