Esempio n. 1
0
 def test_read_deleted(self, fh):
     dbf = YDbfReader(fh)
     reference_data = [
         {
             '_deletion_flag': u'',
             'INT_FLD': 25,
             'FLT_FLD': decimal.Decimal('12.34'),
             'CHR_FLD': u'test',
             'DTE_FLD': datetime.date(2006, 5, 7),
             'BLN_FLD': True
         },
         {
             '_deletion_flag': u'',
             'INT_FLD': 113,
             'FLT_FLD': decimal.Decimal('1.01'),
             'CHR_FLD': u'del',
             'DTE_FLD': datetime.date(2006, 12, 23),
             'BLN_FLD': False
         },
         {
             '_deletion_flag': u'*',
             'INT_FLD': 7436,
             'FLT_FLD': decimal.Decimal('0.50'),
             'CHR_FLD': u'ex.',
             'DTE_FLD': datetime.date(2006, 7, 15),
             'BLN_FLD': True
         },
     ]
     self.assertEqual(list(dbf.records(show_deleted=True)), reference_data)
Esempio n. 2
0
 def test_call(self, fh):
     dbf = YDbfReader(fh)
     reference_data = [{'INT_FLD': 25,
                        'FLT_FLD': decimal.Decimal('12.34'),
                        'CHR_FLD': u'test',
                        'DTE_FLD': datetime.date(2006,  5,  7),
                        'BLN_FLD': True},
                       {'INT_FLD': 113,
                        'FLT_FLD': decimal.Decimal('1.01'),
                        'CHR_FLD': u'del',
                        'DTE_FLD': datetime.date(2006, 12, 23),
                        'BLN_FLD': False},
                            # skipped deleted line
                      ]
     self.assertEqual(list(dbf), reference_data)
     self.assertEqual(list(dbf.records(start_from=1)),
                      [reference_data[1]])
     self.assertEqual(list(dbf.records(start_from=0, limit=1)),
                      [reference_data[0]])
Esempio n. 3
0
File: test.py Progetto: gbtami/ydbf
 def test_ooo_num_bug(self, fh):
     # OpenOffice produces wrong dbfs: it justify numbers on left and fill
     # it zeros (0x00)
     dbf = YDbfReader(fh)
     reference_data = [{'INT_FLD': 25,
                        'FLT_FLD': decimal.Decimal('12.34'),
                        'CHR_FLD': u'test',
                        'DTE_FLD': datetime.date(2006,  5,  7),
                        'BLN_FLD': True},
                       {'INT_FLD': 113,
                        'FLT_FLD': decimal.Decimal('1.01'),
                        'CHR_FLD': u'del',
                        'DTE_FLD': datetime.date(2006, 12, 23),
                        'BLN_FLD': False},
                      ]
     self.assertEqual(list(dbf), reference_data)
     self.assertEqual(list(dbf.records(start_from=1)),
                      [reference_data[1]])
     self.assertEqual(list(dbf.records(start_from=0, limit=1)),
                      [reference_data[0]])
Esempio n. 4
0
 def test_read_deleted(self, fh):
     dbf = YDbfReader(fh)
     reference_data = [{'_deletion_flag': u'',
                        'INT_FLD': 25,
                        'FLT_FLD': decimal.Decimal('12.34'),
                        'CHR_FLD': u'test',
                        'DTE_FLD': datetime.date(2006,  5,  7),
                        'BLN_FLD': True},
                       {'_deletion_flag': u'',
                        'INT_FLD': 113,
                        'FLT_FLD': decimal.Decimal('1.01'),
                        'CHR_FLD': u'del',
                        'DTE_FLD': datetime.date(2006, 12, 23),
                        'BLN_FLD': False},
                       {'_deletion_flag': u'*',
                        'INT_FLD': 7436,
                        'FLT_FLD': decimal.Decimal('0.50'),
                        'CHR_FLD': u'ex.',
                        'DTE_FLD': datetime.date(2006, 7, 15),
                        'BLN_FLD': True},
                      ]
     self.assertEqual(list(dbf.records(show_deleted=True)), reference_data)
Esempio n. 5
0
 def test_ooo_num_bug(self, fh):
     # OpenOffice produces wrong dbfs: it justify numbers on left and fill
     # it zeros (0x00)
     dbf = YDbfReader(fh)
     reference_data = [
         {
             'INT_FLD': 25,
             'FLT_FLD': decimal.Decimal('12.34'),
             'CHR_FLD': u'test',
             'DTE_FLD': datetime.date(2006, 5, 7),
             'BLN_FLD': True
         },
         {
             'INT_FLD': 113,
             'FLT_FLD': decimal.Decimal('1.01'),
             'CHR_FLD': u'del',
             'DTE_FLD': datetime.date(2006, 12, 23),
             'BLN_FLD': False
         },
     ]
     self.assertEqual(list(dbf), reference_data)
     self.assertEqual(list(dbf.records(start_from=1)), [reference_data[1]])
     self.assertEqual(list(dbf.records(start_from=0, limit=1)),
                      [reference_data[0]])
Esempio n. 6
0
 def test_header(self, fh):
     dbf = YDbfReader(fh)
     self.assertEqual(dbf._fields, [('_deletion_flag', 'C', 1, 0),
                                     ('INT_FLD',      'N', 4, 0),
                                     ('FLT_FLD',      'N', 5, 2),
                                     ('CHR_FLD',      'C', 6, 0),
                                     ('DTE_FLD',      'D', 8, 0),
                                     ('BLN_FLD',      'L', 1, 0)])
     self.assertEqual(dbf.fields, [('INT_FLD',      'N', 4, 0),
                                    ('FLT_FLD',      'N', 5, 2),
                                    ('CHR_FLD',      'C', 6, 0),
                                    ('DTE_FLD',      'D', 8, 0),
                                    ('BLN_FLD',      'L', 1, 0)])
     self.assertEqual(dbf.numrec, 3)
     self.assertEqual(dbf.stop_at, 3)
     self.assertEqual(dbf.lenheader, 193)
     self.assertEqual(dbf.numfields, 5)
     self.assertEqual(dbf.recsize, 25)
     self.assertEqual(dbf.recfmt, '1s4s5s6s8s1s')
     self.assertEqual(dbf.field_names, ['INT_FLD', 'FLT_FLD',
                                         'CHR_FLD', 'DTE_FLD',
                                         'BLN_FLD'])
Esempio n. 7
0
 def test_constructor(self, fh):
     """
     Unit-test for reader's constructor
     """
     dbf_data = fh.read()
     self.assertEquals(YDbfReader(StringIO(dbf_data)).raw_lang,
                       0)
     self.assertEquals(YDbfReader(StringIO(dbf_data), use_unicode=True).raw_lang,
                       0)
     self.assertEquals(YDbfReader(StringIO(dbf_data), use_unicode=True).encoding,
                       'ascii')
     self.assertEquals(YDbfReader(StringIO(dbf_data), use_unicode=False, ).encoding,
                       None)
     # without unicode encoding means nothing
     self.assertEquals(YDbfReader(StringIO(dbf_data), use_unicode=False, encoding='cp866').encoding, 
                       None)
     self.assertEquals(YDbfReader(StringIO(dbf_data), use_unicode=True, encoding='cp866').encoding, 
                       'cp866')
Esempio n. 8
0
 def test_len(self, fh):
     dbf = YDbfReader(fh)
     self.assertEqual(len(dbf), 3)
Esempio n. 9
0
 def test_dbf2date(self, fh):
     dbf = YDbfReader(fh)
     self.assertEqual(dbf.dbf2date, dbf2date)
Esempio n. 10
0
 def setUp(self, fh):
     self.dbf = YDbfReader(fh, use_unicode=False)
     self.sizes = {}
     for name, typ, size, dec in self.dbf.fields:
         self.sizes[name] = size, dec
Esempio n. 11
0
 def setUp(self, fh):
     self.dbf = YDbfReader(fh)
     self.sizes = {}
     for name, typ, size, dec in self.dbf.fields:
         self.sizes[name] = size, dec