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))
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))
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
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) )
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))
def test_returns_none(self): self.assertIsNone(OfxParser.parseOfxDateTime('00000000'))
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))