Esempio n. 1
0
 def test_since_on_cutoff(self, m):
     m.get(
         'https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions',
         json=EXAMPLE_JSON,
     )
     tellerio.do_import(token='testtoken',
                        account_uuid='11111111-1111-4111-1111-111111111111',
                        bank_account=self.bank,
                        since=date(2017, 3, 27))
     self.assertEqual(StatementLine.objects.count(), 1)
Esempio n. 2
0
 def test_since_none(self, m):
     m.get(
         "https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions",
         json=EXAMPLE_JSON,
     )
     tellerio.do_import(
         token="testtoken",
         account_uuid="11111111-1111-4111-1111-111111111111",
         bank_account=self.bank,
         since=date(2017, 3, 28),
     )
     self.assertEqual(StatementLine.objects.count(), 0)
Esempio n. 3
0
def import_tellerio():
    settings = Settings.objects.get()

    if settings.tellerio_enable:
        first_billing_cycle = BillingCycle.objects.first()
        tellerio.do_import(
            token=settings.tellerio_token,
            account_uuid=settings.tellerio_account_id,
            bank_account=Account.objects.filter(is_bank_account=True)[0],
            since=first_billing_cycle.date_range.lower,
        )
        return True
    else:
        return False
Esempio n. 4
0
    def test_simple(self, m):
        m.get(
            "https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions",
            json=EXAMPLE_JSON,
            headers={"Authorization": "Bearer testtoken"},
        )

        tellerio.do_import(
            token="testtoken",
            account_uuid="11111111-1111-4111-1111-111111111111",
            bank_account=self.bank,
        )

        self.assertEqual(StatementImport.objects.count(), 1)
        self.assertEqual(StatementLine.objects.count(), 3)

        statement_import = StatementImport.objects.get()
        line1, line2, line3 = StatementLine.objects.order_by("-date").all()

        self.assertEqual(statement_import.source, "teller.io")
        self.assertEqual(
            statement_import.extra,
            {"account_uuid": "11111111-1111-4111-1111-111111111111"},
        )

        self.assertEqual(line1.uuid,
                         UUID("11111111-1111-4111-2222-111111111111"))
        self.assertEqual(line1.amount, Decimal("-11.35"))
        self.assertEqual(
            line1.description,
            "MARKS&SPENCER PLC, 3903 24MAR17 CD , MARKS&SPENCER PLC , PANTHEON GB",
        )
        self.assertEqual(line1.type, "card_payment")
        self.assertEqual(line1.statement_import, statement_import)
        self.assertEqual(line1.date, date(2017, 3, 27))
        self.assertEqual(line1.source_data, EXAMPLE_JSON[0])

        self.assertEqual(line2.uuid,
                         UUID("11111111-1111-4111-3333-111111111111"))
        self.assertEqual(line2.amount, Decimal("-22.55"))
        self.assertEqual(
            line2.description,
            "HARE & TORTOISE, 3903 25MAR17 CD , HARE & TORTOISE , BRUNSW , LONDON GB",
        )
        self.assertEqual(line1.type, "card_payment")
        self.assertEqual(line2.statement_import, statement_import)
        self.assertEqual(line2.date, date(2017, 3, 26))
        self.assertEqual(line2.source_data, EXAMPLE_JSON[1])
Esempio n. 5
0
 def test_does_not_duplicate(self, m):
     m.get(
         'https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions',
         json=EXAMPLE_JSON,
     )
     m.get(
         'https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions',
         json=EXAMPLE_JSON,
     )
     tellerio.do_import(token='testtoken',
                        account_uuid='11111111-1111-4111-1111-111111111111',
                        bank_account=self.bank)
     tellerio.do_import(token='testtoken',
                        account_uuid='11111111-1111-4111-1111-111111111111',
                        bank_account=self.bank)
     self.assertEqual(StatementLine.objects.count(), 3)
Esempio n. 6
0
    def test_simple(self, m):
        m.get(
            'https://api.teller.io/accounts/11111111-1111-4111-1111-111111111111/transactions',
            json=EXAMPLE_JSON,
            headers={'Authorization': 'Bearer testtoken'})

        tellerio.do_import(token='testtoken',
                           account_uuid='11111111-1111-4111-1111-111111111111',
                           bank_account=self.bank)

        self.assertEqual(StatementImport.objects.count(), 1)
        self.assertEqual(StatementLine.objects.count(), 3)

        statement_import = StatementImport.objects.get()
        line1, line2, line3 = StatementLine.objects.order_by('-date').all()

        self.assertEqual(statement_import.source, 'teller.io')
        self.assertEqual(
            statement_import.extra, {
                'account_uuid': '11111111-1111-4111-1111-111111111111',
            })

        self.assertEqual(line1.uuid,
                         UUID('11111111-1111-4111-2222-111111111111'))
        self.assertEqual(line1.amount, Decimal('-11.35'))
        self.assertEqual(
            line1.description,
            'MARKS&SPENCER PLC, 3903 24MAR17 CD , MARKS&SPENCER PLC , PANTHEON GB'
        )
        self.assertEqual(line1.type, 'card_payment')
        self.assertEqual(line1.statement_import, statement_import)
        self.assertEqual(line1.date, date(2017, 3, 27))
        self.assertEqual(line1.source_data, EXAMPLE_JSON[0])

        self.assertEqual(line2.uuid,
                         UUID('11111111-1111-4111-3333-111111111111'))
        self.assertEqual(line2.amount, Decimal('-22.55'))
        self.assertEqual(
            line2.description,
            'HARE & TORTOISE, 3903 25MAR17 CD , HARE & TORTOISE , BRUNSW , LONDON GB'
        )
        self.assertEqual(line1.type, 'card_payment')
        self.assertEqual(line2.statement_import, statement_import)
        self.assertEqual(line2.date, date(2017, 3, 26))
        self.assertEqual(line2.source_data, EXAMPLE_JSON[1])