Exemple #1
0
    def test_normalize_config__with_skip_and_header(self):
        head = textwrap.dedent("""\
          Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          Aliquam lorem erat, bibendum sed arcu at, tempor commodo tortor.
          Phasellus consectetur, nisl quis vestibulum ornare, mi velit imperdiet arcu, eu mattis nulla augue nec ex.

          Details,Posting Date,"Description",Amount,Type,Balance,Check or Slip #,
          DEBIT,3/18/2016,"Payment to Chafe card ending in 1234 03/18",-2680.89,ACCT_XFER,3409.86,,
          CREDIT,3/15/2016,"EMPLOYER INC    DIRECT DEP                 PPD ID: 1111111111",2590.73,ACH_CREDIT,6090.75,,
          DEBIT,3/14/2016,"INVESTMENT SEC   TRANSFER   A5144608        WEB ID: 1234456789",-150.00,ACH_DEBIT,3500.02,,
        """)
        iconfig, has_header = csv.normalize_config({Col.DATE: 'Posting Date'},
                                                   head,
                                                   skip_lines=4)
        self.assertEqual({Col.DATE: 1}, iconfig)
        self.assertTrue(has_header)

        iconfig, _ = csv.normalize_config({Col.NARRATION: 'Description'},
                                          head,
                                          skip_lines=4)
        self.assertEqual({Col.NARRATION: 2}, iconfig)

        iconfig, _ = csv.normalize_config(
            {
                Col.DATE: 1,
                Col.NARRATION: 'Check or Slip #'
            },
            head,
            skip_lines=4)
        self.assertEqual({Col.DATE: 1, Col.NARRATION: 6}, iconfig)

        iconfig, _ = csv.normalize_config({Col.DATE: 1}, head, skip_lines=4)
        self.assertEqual({Col.DATE: 1}, iconfig)
Exemple #2
0
 def test_normalize_config__without_header(self):
     head = textwrap.dedent("""\
       DEBIT,3/18/2016,"Payment to Chafe card ending in 1234 03/18",-2680.89,ACCT_XFER,3409.86,,
       CREDIT,3/15/2016,"EMPLOYER INC    DIRECT DEP                 PPD ID: 1111111111",2590.73,ACH_CREDIT,6090.75,,
       DEBIT,3/14/2016,"INVESTMENT SEC   TRANSFER   A5144608        WEB ID: 1234456789",-150.00,ACH_DEBIT,3500.02,,
     """)
     iconfig, has_header = csv.normalize_config({Col.DATE: 1}, head)
     self.assertEqual({Col.DATE: 1}, iconfig)
     self.assertFalse(has_header)
     with self.assertRaises(ValueError):
         csv.normalize_config({Col.DATE: 'Posting Date'}, head)
Exemple #3
0
    def test_normalize_config__with_skip_and_without_header(self):
        head = textwrap.dedent("""\
          Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          Aliquam lorem erat, bibendum sed arcu at, tempor commodo tortor.
          Phasellus consectetur, nisl quis vestibulum ornare, mi velit imperdiet arcu, eu mattis nulla augue nec ex.

          DEBIT,3/18/2016,"Payment to Chafe card ending in 1234 03/18",-2680.89,ACCT_XFER,3409.86,,
          CREDIT,3/15/2016,"EMPLOYER INC    DIRECT DEP                 PPD ID: 1111111111",2590.73,ACH_CREDIT,6090.75,,
          DEBIT,3/14/2016,"INVESTMENT SEC   TRANSFER   A5144608        WEB ID: 1234456789",-150.00,ACH_DEBIT,3500.02,,
        """)
        iconfig, has_header = csv.normalize_config({Col.DATE: 1},
                                                   head,
                                                   skip_lines=4)
        self.assertEqual({Col.DATE: 1}, iconfig)
        self.assertFalse(has_header)
        with self.assertRaises(ValueError):
            csv.normalize_config({Col.DATE: 'Posting Date'},
                                 head,
                                 skip_lines=4)
Exemple #4
0
    def test_normalize_config__with_header(self):
        head = textwrap.dedent("""\
          Details,Posting Date,"Description",Amount,Type,Balance,Check or Slip #,
          DEBIT,3/18/2016,"Payment to Chafe card ending in 1234 03/18",-2680.89,ACCT_XFER,3409.86,,
          CREDIT,3/15/2016,"EMPLOYER INC    DIRECT DEP                 PPD ID: 1111111111",2590.73,ACH_CREDIT,6090.75,,
          DEBIT,3/14/2016,"INVESTMENT SEC   TRANSFER   A5144608        WEB ID: 1234456789",-150.00,ACH_DEBIT,3500.02,,
        """)
        iconfig, has_header = csv.normalize_config({Col.DATE: 'Posting Date'},
                                                   head)
        self.assertEqual({Col.DATE: 1}, iconfig)
        self.assertTrue(has_header)

        iconfig, _ = csv.normalize_config({Col.NARRATION: 'Description'}, head)
        self.assertEqual({Col.NARRATION: 2}, iconfig)

        iconfig, _ = csv.normalize_config(
            {
                Col.DATE: 1,
                Col.NARRATION: 'Check or Slip #'
            }, head)
        self.assertEqual({Col.DATE: 1, Col.NARRATION: 6}, iconfig)

        iconfig, _ = csv.normalize_config({Col.DATE: 1}, head)
        self.assertEqual({Col.DATE: 1}, iconfig)