Exemple #1
0
 def test_parse_usd_as_micro_usd(self):
     self.assertEqual(currency.parse_usd_as_micro_usd('$1.23'), 1230000)
     self.assertEqual(currency.parse_usd_as_micro_usd('$0.00'), 0)
     self.assertEqual(currency.parse_usd_as_micro_usd('-$0.00'), 0)
     self.assertEqual(currency.parse_usd_as_micro_usd('$55'), 55000000)
     self.assertEqual(currency.parse_usd_as_micro_usd('$12.23'), 12230000)
     self.assertEqual(currency.parse_usd_as_micro_usd('-$12.23'), -12230000)
Exemple #2
0
def pythonify_mint_dict(raw_dict):
    # Parse out the date fields into datetime.date objects.
    raw_dict['date'] = parse_mint_date(raw_dict['date'])
    raw_dict['odate'] = parse_mint_date(raw_dict['odate'])

    # Parse the amount into micro usd.
    amount = parse_usd_as_micro_usd(raw_dict['amount'])
    # Adjust credit transactions such that:
    # - debits are positive
    # - credits are negative
    if not raw_dict['isDebit']:
        amount *= -1
    raw_dict['amount'] = amount

    return dict([(convertCamel_to_underscores(k.replace(' ', '_')), v)
                 for k, v in raw_dict.items()])
Exemple #3
0
def pythonify_amazon_dict(raw_dict):
    keys = set(raw_dict.keys())

    # Convert to microdollar ints
    for ck in keys & CURRENCY_FIELD_NAMES:
        raw_dict[ck] = parse_usd_as_micro_usd(raw_dict[ck])

    # Convert to datetime.date
    for dk in keys & DATE_FIELD_NAMES:
        raw_dict[dk] = parse_amazon_date(raw_dict[dk])

    # Rename long or unpythonic names:
    for old_key in keys & RENAME_FIELD_NAMES.keys():
        new_key = RENAME_FIELD_NAMES[old_key]
        raw_dict[new_key] = raw_dict[old_key]
        del raw_dict[old_key]

    if 'Quantity' in keys:
        raw_dict['Quantity'] = int(raw_dict['Quantity'])

    return dict([(k.lower().replace(' ', '_').replace('/', '_'), v)
                 for k, v in raw_dict.items()])