Exemple #1
0
 def test_parses_correct_time(self):
     '''Test whether it can parse correct time for some valid time fields'''
     self.assertEquals(OfxParser.parseOfxDateTime('19881201'),
                       datetime(1988, 12, 1, 0, 0))
     self.assertEquals(OfxParser.parseOfxDateTime('19881201230100'),
                       datetime(1988, 12, 1, 23, 1))
     self.assertEquals(OfxParser.parseOfxDateTime('20120229230100'),
                       datetime(2012, 2, 29, 23, 1))
Exemple #2
0
 def test_parses_correct_time(self):
     '''Test whether it can parse correct time for some valid time fields'''
     self.assertEquals(OfxParser.parseOfxDateTime('19881201'),
                       datetime(1988, 12, 1, 0, 0))
     self.assertEquals(OfxParser.parseOfxDateTime('19881201230100'),
                       datetime(1988, 12, 1, 23, 1))
     self.assertEquals(OfxParser.parseOfxDateTime('20120229230100'),
                       datetime(2012, 2, 29, 23, 1))
Exemple #3
0
 def test_parses_time_offset(self):
     """ Test that we handle GMT offset """
     self.assertEquals(OfxParser.parseOfxDateTime("20001201120000 [0:GMT]"), datetime(2000, 12, 1, 12, 0))
     self.assertEquals(OfxParser.parseOfxDateTime("19991201120000 [1:ITT]"), datetime(1999, 12, 1, 11, 0))
     self.assertEquals(OfxParser.parseOfxDateTime("19881201230100 [-5:EST]"), datetime(1988, 12, 2, 4, 1))
     self.assertEquals(OfxParser.parseOfxDateTime("20120229230100 [-6:CAT]"), datetime(2012, 3, 1, 5, 1))
     self.assertEquals(OfxParser.parseOfxDateTime("20120412120000 [-5.5:XXX]"), datetime(2012, 04, 12, 17, 30))
     self.assertEquals(OfxParser.parseOfxDateTime("20120412120000 [-5:XXX]"), datetime(2012, 04, 12, 17))
     self.assertEquals(OfxParser.parseOfxDateTime("20120922230000 [+9:JST]"), datetime(2012, 9, 22, 14, 0))
Exemple #4
0
    def _create_statement(self, acct, ofx, mtime, filename):
        """
        Create an OFXStatement for this OFX file. If one already exists with
        the same account and filename, raise DuplicateFileException.

        :param acct: the Account this statement is for
        :type acct: biweeklybudget.models.account.Account
        :param ofx: Ofx instance for parsed file
        :type ofx: ``ofxparse.ofxparse.Ofx``
        :param mtime: OFX file modification time (or current time)
        :type mtime: datetime.datetime
        :param filename: OFX file name
        :type filename: str
        :return: the OFXStatement object
        :rtype: biweeklybudget.models.ofx_statement.OFXStatement
        :raises: DuplicateFileException
        """
        ofx_date = OfxParser.parseOfxDateTime(
            ofx.signon.dtserver).replace(tzinfo=UTC)
        stmt = db_session.query(OFXStatement).filter(
            OFXStatement.account_id == acct.id,
            OFXStatement.filename == filename
        ).first()
        if stmt is not None:
            logger.debug('Found existing statement with same as_of date, '
                         'id=%d; raising DuplicateFileException()', stmt.id)
            raise DuplicateFileException(acct.id, filename, stmt.id)
        logger.debug('Creating new OFXStatement account_id=%s filename=%s '
                     'as_of=%s', acct.id, filename, ofx_date)
        a = OFXStatement(
            account_id=acct.id,
            filename=filename,
            file_mtime=mtime,
            as_of=ofx_date,
            currency=ofx.account.curdef,
            acctid=ofx.account.account_id
        )
        if ofx.account.institution is not None:
            a.bankid = ofx.account.institution.fid
        if ofx.account.routing_number is not None:
            a.routing_number = ofx.account.routing_number
        if ofx.account.account_type is not None:
            a.acct_type = ofx.account.account_type
        if hasattr(ofx.account, 'brokerid'):
            a.brokerid = ofx.account.brokerid
        return a
Exemple #5
0
 def test_parses_time_offset(self):
     ''' Test that we handle GMT offset '''
     self.assertEquals( OfxParser.parseOfxDateTime('20001201120000 [0:GMT]'), 
         datetime(2000, 12, 1, 12, 0) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('19991201120000 [1:ITT]'), 
         datetime(1999, 12, 1, 11, 0) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('19881201230100 [-5:EST]'), 
         datetime(1988, 12, 2, 4, 1) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('20120229230100 [-6:CAT]'), 
         datetime(2012, 3, 1, 5, 1) )
     self.assertEquals( OfxParser.parseOfxDateTime('20120412120000 [-5.5:XXX]'),
         datetime(2012, 04, 12, 17, 30))
     self.assertEquals( OfxParser.parseOfxDateTime('20120412120000 [-5:XXX]'),
         datetime(2012, 04, 12, 17))
     self.assertEquals( OfxParser.parseOfxDateTime('20120922230000 [+9:JST]'), 
         datetime(2012, 9, 22, 14, 0) )
Exemple #6
0
 def test_parses_time_offset(self):
     ''' Test that we handle GMT offset '''
     self.assertEquals( OfxParser.parseOfxDateTime('20001201120000 [0:GMT]'), 
         datetime(2000, 12, 1, 12, 0) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('19991201120000 [1:ITT]'), 
         datetime(1999, 12, 1, 11, 0) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('19881201230100 [-5:EST]'), 
         datetime(1988, 12, 2, 4, 1) ) 
     self.assertEquals( OfxParser.parseOfxDateTime('20120229230100 [-6:CAT]'), 
         datetime(2012, 3, 1, 5, 1) )
     self.assertEquals( OfxParser.parseOfxDateTime('20120412120000 [-5.5:XXX]'),
         datetime(2012, 04, 12, 17, 30))
     self.assertEquals( OfxParser.parseOfxDateTime('20120412120000 [-5:XXX]'),
         datetime(2012, 04, 12, 17))
Exemple #7
0
 def test_returns_none(self):
     self.assertIsNone(OfxParser.parseOfxDateTime('00000000'))
Exemple #8
0
 def test_returns_none(self):
     self.assertIsNone(OfxParser.parseOfxDateTime('00000000'))
Exemple #9
0
 def test_parses_correct_time(self):
     """ Test whether it can parse correct time for some valid time fields """
     self.assertEquals(OfxParser.parseOfxDateTime("19881201"), datetime(1988, 12, 1, 0, 0))
     self.assertEquals(OfxParser.parseOfxDateTime("19881201230100"), datetime(1988, 12, 1, 23, 01))
     self.assertEquals(OfxParser.parseOfxDateTime("20120229230100"), datetime(2012, 2, 29, 23, 01))