def testPositiveBalanceNov2015NoCompleted(self):
     """Statement is missing a completed date for the latest line in the new November 2015 CSV format."""
     stmt = BettermentPlugin(None, {}).get_parser(NOV_2015_CSV_PATH_NO_COMPLETED).parse()
     self.assertAlmostEqual(1631.25, stmt.start_balance)
     self.assertAlmostEqual(1240.33, stmt.end_balance)
     self.assertEqual(date(2015, 10, 29), to_date(stmt.start_date))
     self.assertEqual(date(2015, 11, 10), to_date(stmt.end_date))
     self.assertEqual(11, len(stmt.lines))
     for stline in stmt.lines:
         self.assertTrue(stline.memo in ('Initial Deposit from ****', 'Market Change', 'Dividend'))
         self.assertFalse(is_zero(stline.amount))
         self.assertTrue(date(2015, 11, 10) >= to_date(stline.date) >= date(2015, 10, 29))
 def testPositiveBalance(self):
     """Statement starts with a positive balance."""
     stmt = BettermentPlugin(None, {}).get_parser(POS_CSV_PATH).parse()
     self.assertAlmostEqual(1000.0, stmt.start_balance)
     self.assertAlmostEqual(1817.44, stmt.end_balance)
     self.assertEqual(date(2015, 9, 22), to_date(stmt.start_date))
     self.assertEqual(date(2015, 9, 25), to_date(stmt.end_date))
     self.assertEqual(5, len(stmt.lines))
     for stline in stmt.lines:
         self.assertTrue(stline.memo in ('Initial Deposit from ****', 'Market Change'))
         self.assertFalse(is_zero(stline.amount))
         self.assertTrue(date(2015, 9, 25) >= to_date(stline.date) >= date(2015, 9, 22))
 def testPositiveBalanceNov2015(self):
     """Statement starts with a positive balance and the new November 2015 CSV format."""
     stmt = BettermentPlugin(None, {}).get_parser(NOV_2015_CSV_PATH).parse()
     self.assertAlmostEqual(1631.25, stmt.start_balance)
     self.assertAlmostEqual(1254.43, stmt.end_balance)
     self.assertEqual(date(2015, 10, 29), to_date(stmt.start_date))
     self.assertEqual(date(2015, 11, 11), to_date(stmt.end_date))
     self.assertEqual(12, len(stmt.lines))
     for stline in stmt.lines:
         self.assertTrue(stline.memo in ('Initial Deposit from ****', 'Market Change', 'Dividend'))
         self.assertFalse(is_zero(stline.amount))
         self.assertTrue(date(2015, 11, 11) >= to_date(stline.date) >= date(2015, 10, 29))
 def testEmptyEndingBalance(self):
     """Strip out pending transactions."""
     stmt = BettermentPlugin(None, {}).get_parser(BLANK_BAL_PATH).parse()
     self.assertAlmostEqual(1319.74, stmt.start_balance)
     self.assertAlmostEqual(1692.68, stmt.end_balance)
     self.assertEqual(date(2015, 10, 2), to_date(stmt.start_date))
     self.assertEqual(date(2015, 10, 2), to_date(stmt.end_date))
     self.assertEqual(3, len(stmt.lines))
     for stline in stmt.lines:
         self.assertTrue(stline.memo in ('Dividend Reinvestment', 'Market Change'))
         self.assertFalse(is_zero(stline.amount))
         self.assertEqual(date(2015, 10, 2), to_date(stline.date))