From 347203b5f42024d475d6c5e144d2a67ce709a57f 2020-10-05 17:49:39 From: Brett Smith Date: 2020-10-05 17:49:39 Subject: [PATCH] patreon: Update importer for recent patron changes. RT#12747 All they did was change a couple of column names. --- diff --git a/import2ledger/importers/patreon.py b/import2ledger/importers/patreon.py index 5588a1e65805d4e2d9ca908c30c84b0cc03b9fed..85f6a5a1040c05e310df2367b387e21ea8a3a1bb 100644 --- a/import2ledger/importers/patreon.py +++ b/import2ledger/importers/patreon.py @@ -6,8 +6,8 @@ from .. import strparse class IncomeImporter(_csv.CSVImporterBase): AMOUNT_KEY = 'Pledge $' - DATE_KEY = 'Charged On Date' - STATUS_KEY = 'Charge Status' + DATE_KEY = 'Last Charge Date' + STATUS_KEY = 'Last Charge Status' NEEDED_FIELDS = frozenset([ AMOUNT_KEY, DATE_KEY, @@ -93,6 +93,16 @@ class VATImporter(FeeImporterBase): } +class Income2020AugustImporter(IncomeImporter): + DATE_KEY = 'Charged On Date' + STATUS_KEY = 'Charge Status' + NEEDED_FIELDS = frozenset([ + IncomeImporter.AMOUNT_KEY, + DATE_KEY, + STATUS_KEY, + ]) + + class Income2017Importer(_csv.CSVImporterBase): NEEDED_FIELDS = frozenset([ 'FirstName', diff --git a/setup.py b/setup.py index 178dbc57538b0eb6fa22e58af83b7e6fbc6ff539..be18bfef6810891fd954716c6de24ece728660f6 100755 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ REQUIREMENTS['tests_require'] = [ setup( name='import2ledger', description="Import different sources of financial data to Ledger", - version='1.1.0', + version='1.2.0', author='Brett Smith', author_email='brettcsmith@brettcsmith.org', license='GNU AGPLv3+', diff --git a/tests/data/PatreonPatronReport_2020-10-01.csv b/tests/data/PatreonPatronReport_2020-10-01.csv new file mode 100644 index 0000000000000000000000000000000000000000..cf50f4a557fd330e9f4ab9179f660e796ed5bf8b --- /dev/null +++ b/tests/data/PatreonPatronReport_2020-10-01.csv @@ -0,0 +1,3 @@ +Name,Email,Twitter,Patron Status,Follows You,Lifetime $,Pledge $,Charge Frequency,Tier,Addressee,Street,City,State,Zip,Country,Phone,Patronage Since Date,Max Amount,Last Charge Date,Last Charge Status,Additional Details,User ID,Last Updated +Alex Jones,ajones@example.com,,Active patron,No,$28,$2,monthly,Even tier,,,,,,,,2019-10-30 18:25:15.457830,$2,2020-08-01 18:21:04,Paid,,1234567,2020-08-12 12:34:31.348413 +Breonna,breonna@example.org,patreonb,Active patron,No,$5,$5,monthly,Odd tier,,,,,,,,2020-08-02 11:59:15.365305,$5,2020-08-02 12:00:02,Paid,,234567,2020-08-12 12:43:08.745681 diff --git a/tests/data/imports.yml b/tests/data/imports.yml index 144c57967895afd7ff8c417ea86b6df9fc880630..9a5a5f833d44bc764b5984c84b577cfba6436e5a 100644 --- a/tests/data/imports.yml +++ b/tests/data/imports.yml @@ -11,6 +11,24 @@ currency: USD - source: PatreonPatronReport_2020-08-01.csv + importer: patreon.Income2020AugustImporter + expect: + - payee: Alex Jones + email: ajones@example.com + tier: Even tier + patreon_id: "1234567" + date: !!python/object/apply:datetime.date [2020, 8, 1] + amount: !!python/object/apply:decimal.Decimal ["2"] + currency: USD + - payee: Breonna + email: breonna@example.org + tier: Odd tier + patreon_id: "234567" + date: !!python/object/apply:datetime.date [2020, 8, 2] + amount: !!python/object/apply:decimal.Decimal ["5.00"] + currency: USD + +- source: PatreonPatronReport_2020-10-01.csv importer: patreon.IncomeImporter expect: - payee: Alex Jones