Пример #1
0
 def setUp(self):
     self.port = 9486
     self.server = MockOfxServer(port=self.port)
     self.mockurl = "http://localhost:" + str(self.port) + "/"
     self.institution = Institution(ofx_org="Test Bank",
                                    ofx_fid="99999",
                                    ofx_url=self.mockurl)
     self.checking_account = Account(acct_number="1122334455",
                                     aba_number="12345678",
                                     acct_type="Checking",
                                     institution=self.institution)
     self.savings_account = Account(acct_number="1122334455",
                                    aba_number="12345678",
                                    acct_type="Savings",
                                    institution=self.institution)
     self.creditcard_account = Account(acct_number="1122334455",
                                       aba_number="12345678",
                                       acct_type="Credit Card",
                                       institution=self.institution)
     self.username = "******"
     self.password = "******"
     self.client = Client()
     self.checking_stmt = get_checking_stmt().decode('utf-8')
     self.savings_stmt = get_savings_stmt().decode('utf-8')
     self.creditcard_stmt = get_creditcard_stmt().decode('utf-8')
Пример #2
0
 def setUp(self):
     self.institution = Institution(name="Test Bank",
                                        ofx_org="Test Bank", 
                                        ofx_url="https://ofx.example.com", 
                                        ofx_fid="9999999")
     self.good_acct = Account(acct_type="CHECKING",
                                  acct_number="1122334455", 
                                  aba_number="123456789", 
                                  institution=self.institution)
     self.bad_acct  = Account(acct_type="Fnargle",
                                  acct_number="", aba_number="", 
                                  institution=None)
Пример #3
0
class AccountTests(unittest.TestCase):
    def setUp(self):
        self.institution = Institution(name="Test Bank",
                                           ofx_org="Test Bank", 
                                           ofx_url="https://ofx.example.com", 
                                           ofx_fid="9999999")
        self.good_acct = Account(acct_type="CHECKING",
                                     acct_number="1122334455", 
                                     aba_number="123456789", 
                                     institution=self.institution)
        self.bad_acct  = Account(acct_type="Fnargle",
                                     acct_number="", aba_number="", 
                                     institution=None)
    
    def test_account_complete(self):
        self.assertEqual(self.good_acct.is_complete(), True)
        self.assertEqual(self.bad_acct.is_complete(), False)
    
    def test_as_dict(self):
        testdict = self.good_acct.as_dict()
        self.assertEqual(testdict["acct_type"], "CHECKING")
        self.assertEqual(testdict["acct_number"], "1122334455")
        self.assertEqual(testdict["aba_number"], "123456789")
        self.assertEqual(testdict["desc"], None)
        self.assertEqual(testdict["balance"], None)
        
        fi_dict = testdict["institution"]
        self.assertEqual(fi_dict["name"], "Test Bank")
        self.assertEqual(fi_dict["ofx_org"], "Test Bank")
        self.assertEqual(fi_dict["ofx_url"], "https://ofx.example.com")
        self.assertEqual(fi_dict["ofx_fid"], "9999999")
    
    def test_load_from_dict(self):
        testdict = self.good_acct.as_dict()
        new_acct = Account.load_from_dict(testdict)
        self.assertEqual(new_acct.acct_type, "CHECKING")
        self.assertEqual(new_acct.acct_number, "1122334455")
        self.assertEqual(new_acct.aba_number, "123456789")
        self.assertEqual(new_acct.desc, None)
        self.assertEqual(new_acct.balance, None)
        
        new_fi = Institution.load_from_dict(testdict['institution'])
        self.assertEqual(new_fi.name, "Test Bank")
        self.assertEqual(new_fi.ofx_org, "Test Bank")
        self.assertEqual(new_fi.ofx_url, "https://ofx.example.com")
        self.assertEqual(new_fi.ofx_fid, "9999999")
Пример #4
0
 def setUp(self):
     self.request = Request()
     self.institution = Institution(ofx_org="fi_name", ofx_fid="1000")
     self.account = Account(acct_number="00112233",
                                aba_number="12345678",
                                acct_type="Checking",
                                institution=self.institution)
     self.username = "******"
     self.password = "******"
     self.parser  = Parser()
Пример #5
0
    def _extract_account(self, acct_block):
        acct_dict = acct_block.asDict()

        if "DESC" in acct_dict:
            desc = acct_dict["DESC"]
        else:
            desc = None

        if "BANKACCTINFO" in acct_dict:
            acctinfo = acct_dict["BANKACCTINFO"]
            return Account(ofx_block=acctinfo["BANKACCTFROM"], desc=desc)

        elif "CCACCTINFO" in acct_dict:
            acctinfo = acct_dict["CCACCTINFO"]
            account = Account(ofx_block=acctinfo["CCACCTFROM"], desc=desc)
            account.acct_type = "CREDITCARD"
            return account

        else:
            return None
Пример #6
0
    def _extract_account(self, acct_block):
        acct_dict = acct_block.asDict()

        if "DESC" in acct_dict:
            desc = acct_dict["DESC"]
        else:
            desc = None

        if "BANKACCTINFO" in acct_dict:
            acctinfo = acct_dict["BANKACCTINFO"]
            return Account(ofx_block=acctinfo["BANKACCTFROM"], desc=desc)

        elif "CCACCTINFO" in acct_dict:
            acctinfo = acct_dict["CCACCTINFO"]
            account = Account(ofx_block=acctinfo["CCACCTFROM"], desc=desc)
            account.acct_type = "CREDITCARD"
            return account

        else:
            return None
Пример #7
0
    def __init__(self, statement):
        self.parse_result = statement
        self.parse_dict = self.parse_result.asDict()

        if "STMTRS" in self.parse_dict:
            stmt = self.parse_dict["STMTRS"]
            self.account = Account(ofx_block=stmt["BANKACCTFROM"])
        elif "CCSTMTRS" in self.parse_dict:
            stmt = self.parse_dict["CCSTMTRS"]
            self.account = Account(ofx_block=stmt["CCACCTFROM"])
            self.account.acct_type = "CREDITCARD"
        else:
            error = ValueError("Unknown statement type: %s." % statement)
            raise error

        self.currency = self._get(stmt, "CURDEF")
        self.begin_date = self._get(stmt["BANKTRANLIST"], "DTSTART")
        self.end_date = self._get(stmt["BANKTRANLIST"], "DTEND")
        self.balance = self._get(stmt["LEDGERBAL"], "BALAMT")
        self.bal_date = self._get(stmt["LEDGERBAL"], "DTASOF")
Пример #8
0
 def test_load_from_dict(self):
     testdict = self.good_acct.as_dict()
     new_acct = Account.load_from_dict(testdict)
     self.assertEqual(new_acct.acct_type, "CHECKING")
     self.assertEqual(new_acct.acct_number, "1122334455")
     self.assertEqual(new_acct.aba_number, "123456789")
     self.assertEqual(new_acct.desc, None)
     self.assertEqual(new_acct.balance, None)
     
     new_fi = Institution.load_from_dict(testdict['institution'])
     self.assertEqual(new_fi.name, "Test Bank")
     self.assertEqual(new_fi.ofx_org, "Test Bank")
     self.assertEqual(new_fi.ofx_url, "https://ofx.example.com")
     self.assertEqual(new_fi.ofx_fid, "9999999")