GodsDevProject commited on
Commit
aca2945
·
verified ·
1 Parent(s): b75db41

Create test_adapters.py

Browse files
Files changed (1) hide show
  1. tests/test_adapters.py +29 -0
tests/test_adapters.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ import pytest
3
+
4
+ from ingest.cia_reading_room import CIAAdapter
5
+ from ingest.fbi_vault import FBIAdapter
6
+
7
+
8
+ REQUIRED_KEYS = {"source", "title", "url", "snippet", "live"}
9
+
10
+
11
+ @pytest.mark.asyncio
12
+ @pytest.mark.parametrize(
13
+ "adapter_cls",
14
+ [CIAAdapter, FBIAdapter]
15
+ )
16
+ async def test_adapter_contract(adapter_cls):
17
+ adapter = adapter_cls()
18
+ results = await adapter.search("test")
19
+
20
+ assert isinstance(results, list)
21
+
22
+ for r in results:
23
+ assert isinstance(r, dict)
24
+ assert REQUIRED_KEYS.issubset(r.keys())
25
+ assert isinstance(r["source"], str)
26
+ assert isinstance(r["title"], str)
27
+ assert isinstance(r["url"], str)
28
+ assert isinstance(r["snippet"], str)
29
+ assert isinstance(r["live"], bool)