Files
@ 4796932cb7a4
Branch filter:
Location: NPO-Accounting/import2ledger/tests/test_main.py - annotation
4796932cb7a4
1.7 KiB
text/x-python
importers.patreon: Handle commas in large amounts.
5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe 5c73c40bccfe ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 ab9c65d20dc5 | import io
import pathlib
import pytest
from . import DATA_DIR, normalize_whitespace
from import2ledger import __main__ as i2lmain
ARGLIST = [
'-C', (DATA_DIR / 'test_main.ini').as_posix(),
]
def run_main(arglist):
stdout = io.StringIO()
stderr = io.StringIO()
exitcode = i2lmain.main(arglist, stdout, stderr)
stdout.seek(0)
stderr.seek(0)
return exitcode, stdout, stderr
def iter_entries(in_file):
lines = []
for line in in_file:
if line == '\n':
if lines:
yield ''.join(lines)
lines = []
else:
lines.append(line)
if lines:
yield ''.join(lines)
def entries2set(in_file):
return set(normalize_whitespace(e) for e in iter_entries(in_file))
def expected_entries(path):
path = pathlib.Path(path)
if not path.is_absolute():
path = DATA_DIR / path
with path.open() as in_file:
return entries2set(in_file)
def test_fees_import():
arglist = ARGLIST + [
'-c', 'One',
pathlib.Path(DATA_DIR, 'PatreonEarnings.csv').as_posix(),
]
exitcode, stdout, _ = run_main(arglist)
assert exitcode == 0
actual = entries2set(stdout)
assert actual == expected_entries('test_main_fees_import.ledger')
def test_date_range_import():
arglist = ARGLIST + [
'-c', 'One',
'--date-range', '2017/10/01-',
pathlib.Path(DATA_DIR, 'PatreonEarnings.csv').as_posix(),
]
exitcode, stdout, _ = run_main(arglist)
assert exitcode == 0
actual = entries2set(stdout)
expected = {entry for entry in expected_entries('test_main_fees_import.ledger')
if entry.startswith('2017/10/')}
assert actual == expected
|