|
| 1 | +import sys, unittest |
| 2 | +sys.path.insert(0, str(__import__("pathlib").Path(__file__).parent.parent / "skills" / "system" / "pypi-scout")) |
| 3 | +from scihub_bridge import SciHubBridge, PaperMetadata |
| 4 | + |
| 5 | +class TestSciHubBridge(unittest.TestCase): |
| 6 | + @classmethod |
| 7 | + def setUpClass(cls): cls.bridge = SciHubBridge() |
| 8 | + def test_bridge_initialized(self): self.assertIsNotNone(self.bridge) |
| 9 | + def test_sources_discovered(self): self.assertGreaterEqual(len(self.bridge.available_sources), 3) |
| 10 | + def test_download_dir_exists(self): self.assertTrue(self.bridge.download_dir.exists()) |
| 11 | + def test_get_status(self): self.assertIn("total_sources", self.bridge.get_status()) |
| 12 | + def test_paper_metadata_dataclass(self): |
| 13 | + p = PaperMetadata(doi="10.1234/t", title="T", authors=["A"], year=2024, source="t") |
| 14 | + self.assertEqual(p.doi, "10.1234/t") |
| 15 | + def test_verify_doi_format(self): |
| 16 | + r = self.bridge.verify_doi("10.1234/fake") |
| 17 | + self.assertIn("valid", r); self.assertIn("sources_checked", r) |
| 18 | + def test_verify_references_batch(self): self.assertEqual(len(self.bridge.verify_references(["10.1/t1","10.1/t2"])), 2) |
| 19 | + def test_hash_file_empty(self): self.assertEqual(self.bridge._hash_file(Path("nonexistent.pdf")), "") |
| 20 | + def test_no_duplicate_sources(self): self.assertEqual(len(self.bridge.available_sources), len(set(self.bridge.available_sources))) |
| 21 | + def test_scihub_domains_https(self): |
| 22 | + for d in self.bridge.SCIHUB_DOMAINS: self.assertTrue(d.startswith("https://")) |
0 commit comments