コード例 #1
0
ファイル: test_transaction.py プロジェクト: tdryer/truenorth
def test_parse_csv_file():
    csv_file = io.StringIO(
        'DateTime,Location,Transaction,Product,Amount\n'
        'Nov-27-2015 09:00 AM,Main Street Stn,Tap out at Main Street Stn,'
        'Stored Value,-1.05\n'
        'Nov-27-2015 05:00 PM,Main Street Stn,Tap in at Main Street Stn,'
        'Stored Value,0\n'
    )
    txn_list = list(parse_csv_file(csv_file))
    assert txn_list == [
        Transaction(
            datetime.datetime(2015, 11, 27, 9, 00),
            Location('Main Street Stn'),
            TransactionType.tap_out,
            Product.stored_value,
            -105
        ),
        Transaction(
            datetime.datetime(2015, 11, 27, 17, 00),
            Location('Main Street Stn'),
            TransactionType.tap_in,
            Product.stored_value,
            0
        ),
    ]
コード例 #2
0
ファイル: __main__.py プロジェクト: tdryer/truenorth
def main():
    """Main entry point."""
    parser = argparse.ArgumentParser()
    parser.add_argument('csvfile')
    txn_type_names = [member.name for member in transaction.TransactionType]
    parser.add_argument('--transaction-type', action='append',
                        choices=txn_type_names)
    parser.add_argument('--location', action='append')
    parser.add_argument('--sum-amounts', action='store_true')
    args = parser.parse_args()
    with open(args.csvfile) as csv_file:
        txns = filter_txns(transaction.parse_csv_file(csv_file),
                           args.transaction_type, args.location)
        if args.sum_amounts:
            print(sum(txn.amount for txn in txns))
        else:
            for txn in txns:
                print(txn)