|
1 | 1 | import io |
| 2 | +import json |
2 | 3 | import os |
3 | 4 | import re |
4 | 5 |
|
@@ -31,9 +32,25 @@ def read_pdf(self, filename, password, output="dict"): |
31 | 32 | use_pdfminer = self.mode == "pdfminer" |
32 | 33 | return read_cas_pdf(filename, password, output=output, force_pdfminer=use_pdfminer) |
33 | 34 |
|
| 35 | + def test_output_json(self): |
| 36 | + for filename, password in self.pdf_files: |
| 37 | + json_data = self.read_pdf(filename, password, output="json") |
| 38 | + data = json.loads(json_data) |
| 39 | + assert len(data.get("folios", [])) == 10 |
| 40 | + for folio in data["folios"]: |
| 41 | + for scheme in folio.get("schemes", []): |
| 42 | + assert scheme["isin"] is not None |
| 43 | + assert scheme["amfi"] is not None |
| 44 | + assert data.get("investor_info", {}).get("mobile") not in (None, "") |
| 45 | + assert data["cas_type"] == "DETAILED" |
| 46 | + |
34 | 47 | def test_read_summary(self): |
35 | 48 | data = self.read_pdf(self.cams_summary_file_name, self.cams_password) |
36 | 49 | assert len(data.get("folios", [])) == 4 |
| 50 | + for folio in data["folios"]: |
| 51 | + for scheme in folio.get("schemes", []): |
| 52 | + assert scheme["isin"] is not None |
| 53 | + assert scheme["amfi"] is not None |
37 | 54 | assert data.get("investor_info", {}).get("mobile") not in (None, "") |
38 | 55 | assert data["cas_type"] == "SUMMARY" |
39 | 56 |
|
|
0 commit comments