Skip to content

Commit 06e9a8f

Browse files
committed
update tests
1 parent da978a8 commit 06e9a8f

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

casparser/regex.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
NAV_RE = r"NAV\s+on\s+(\d{2}-[A-Za-z]{3}-\d{4})\s*:\s*INR\s*([\d,.]+)"
1313

1414
TRANSACTION_RE = (
15-
# r"(\d{2}-[A-Za-z]{3}-\d{4})\t\t([^\t]+?)\t\t([(\d,.]+)\)*\t\t([(\d,.]+)\)*\t\t([(\d,.]+)\)*\t\t([(\d,.]+)\)*"
1615
r"(\d{2}-[A-Za-z]{3}-\d{4})\t\t([^\t]+?)\t\t([(\d,.]+)\)*(?:\t\t([(\d,.]+)\)*\t\t([(\d,.]+)\)*\t\t([(\d,.]+)\)*)*"
1716
)
1817
DIVIDEND_RE = r"dividend.+?(reinvest)*.+?@\s+Rs\.\s*([\d\.]+)\s+per\s+unit"

tests/base.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ def read_pdf(self, filename, password, output="dict"):
2424
return read_cas_pdf(filename, password, output=output, force_pdfminer=use_pdfminer)
2525

2626
def test_read_dict(self):
27-
self.read_pdf(self.cams_file_name, self.cams_password)
28-
self.read_pdf(self.kfintech_file_name, self.kfintech_password)
27+
data = self.read_pdf(self.cams_file_name, self.cams_password)
28+
assert len(data.get('folios', [])) == 10
29+
data = self.read_pdf(self.kfintech_file_name, self.kfintech_password)
30+
assert len(data.get('folios', [])) == 10
2931

3032
def test_read_json(self):
3133
self.read_pdf(self.cams_file_name, self.cams_password, output="json")

tests/test_pdfminer.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from click.testing import CliRunner
2+
from pdfminer.layout import LTTextBoxHorizontal
3+
import pytest
24

5+
from casparser.exceptions import CASParseError
36
from .base import BaseTestClass
47

58

@@ -20,3 +23,12 @@ def test_cli(self):
2023
)
2124
assert result.exit_code == 0
2225
assert "Statement Period:" in result.output
26+
27+
def test_bad_investor_info(self):
28+
from casparser.parsers.pdfminer import parse_investor_info
29+
30+
with pytest.raises(CASParseError) as exc_info:
31+
box = LTTextBoxHorizontal()
32+
box.get_text()
33+
parse_investor_info([], 0, 0)
34+
assert "Unable to parse investor data" in str(exc_info)

tests/test_process.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import pytest
2+
3+
from casparser.exceptions import HeaderParseError
4+
from casparser.process import parse_header
5+
6+
7+
class TestProcessClass:
8+
9+
def test_header_parser(self):
10+
good_header = 'Consolidated Account Statement\n01-Apr-2018 To 31-Mar-2019'
11+
bad_header = 'Consolidated Account Statement\n01-Apr-2018'
12+
13+
header_data = parse_header(good_header)
14+
assert header_data == {"from": "01-Apr-2018", "to": "31-Mar-2019"}
15+
16+
with pytest.raises(HeaderParseError):
17+
parse_header(bad_header)

0 commit comments

Comments
 (0)