dataimport/test/test_pgstore.py
changeset 10810 0768bf2333a7
parent 10591 8e46ed1a0b8a
child 10943 1079d68130e1
equal deleted inserted replaced
10809:359cbdf3a515 10810:0768bf2333a7
    30 
    30 
    31     # test converters
    31     # test converters
    32 
    32 
    33     def test_convert_none(self):
    33     def test_convert_none(self):
    34         cnvt = pgstore._copyfrom_buffer_convert_None
    34         cnvt = pgstore._copyfrom_buffer_convert_None
    35         self.assertEqual('NULL', cnvt(None))
    35         self.assertEqual(u'NULL', cnvt(None))
    36 
    36 
    37     def test_convert_number(self):
    37     def test_convert_number(self):
    38         cnvt = pgstore._copyfrom_buffer_convert_number
    38         cnvt = pgstore._copyfrom_buffer_convert_number
    39         self.assertEqual('42', cnvt(42))
    39         self.assertEqual(u'42', cnvt(42))
    40         if PY2:
    40         if PY2:
    41             self.assertEqual('42', cnvt(long(42)))
    41             self.assertEqual(u'42', cnvt(long(42)))
    42         self.assertEqual('42.42', cnvt(42.42))
    42         self.assertEqual(u'42.42', cnvt(42.42))
    43 
    43 
    44     def test_convert_string(self):
    44     def test_convert_string(self):
    45         cnvt = pgstore._copyfrom_buffer_convert_string
    45         cnvt = pgstore._copyfrom_buffer_convert_string
    46         # simple
    46         # simple
    47         self.assertEqual('babar', cnvt('babar'))
    47         self.assertEqual(u'babar', cnvt('babar'))
    48         # unicode
    48         # unicode
    49         self.assertEqual('\xc3\xa9l\xc3\xa9phant', cnvt(u'éléphant'))
    49         self.assertEqual(u'éléphant', cnvt(u'éléphant'))
    50         self.assertEqual('\xe9l\xe9phant', cnvt(u'éléphant', encoding='latin1'))
       
    51         # escaping
    50         # escaping
    52         self.assertEqual('babar\\tceleste\\n', cnvt('babar\tceleste\n'))
    51         self.assertEqual(u'babar\\tceleste\\n', cnvt(u'babar\tceleste\n'))
    53         self.assertEqual(r'C:\\new\tC:\\test', cnvt('C:\\new\tC:\\test'))
    52         self.assertEqual(u'C:\\\\new\\tC:\\\\test', cnvt(u'C:\\new\tC:\\test'))
    54 
    53 
    55     def test_convert_date(self):
    54     def test_convert_date(self):
    56         cnvt = pgstore._copyfrom_buffer_convert_date
    55         cnvt = pgstore._copyfrom_buffer_convert_date
    57         self.assertEqual('0666-01-13', cnvt(DT.date(666, 1, 13)))
    56         self.assertEqual('0666-01-13', cnvt(DT.date(666, 1, 13)))
    58 
    57 
    71                  DT.datetime(666, 6, 13, 6, 6, 6)),
    70                  DT.datetime(666, 6, 13, 6, 6, 6)),
    72                 (6, l(6), 6.6, u'babar', DT.date(2014, 1, 14), DT.time(4, 2, 1),
    71                 (6, l(6), 6.6, u'babar', DT.date(2014, 1, 14), DT.time(4, 2, 1),
    73                  DT.datetime(2014, 1, 1, 0, 0, 0)))
    72                  DT.datetime(2014, 1, 1, 0, 0, 0)))
    74         results = pgstore._create_copyfrom_buffer(data)
    73         results = pgstore._create_copyfrom_buffer(data)
    75         # all columns
    74         # all columns
    76         expected = '''42\t42\t42.42\téléphant\t0666-01-13\t06:06:06.000000\t0666-06-13 06:06:06.000000
    75         expected = u'''42\t42\t42.42\téléphant\t0666-01-13\t06:06:06.000000\t0666-06-13 06:06:06.000000
    77 6\t6\t6.6\tbabar\t2014-01-14\t04:02:01.000000\t2014-01-01 00:00:00.000000'''
    76 6\t6\t6.6\tbabar\t2014-01-14\t04:02:01.000000\t2014-01-01 00:00:00.000000'''
    78         self.assertMultiLineEqual(expected, results.getvalue())
    77         self.assertMultiLineEqual(expected, results.getvalue())
    79         # selected columns
    78         # selected columns
    80         results = pgstore._create_copyfrom_buffer(data, columns=(1, 3, 6))
    79         results = pgstore._create_copyfrom_buffer(data, columns=(1, 3, 6))
    81         expected = '''42\téléphant\t0666-06-13 06:06:06.000000
    80         expected = u'''42\téléphant\t0666-06-13 06:06:06.000000
    82 6\tbabar\t2014-01-01 00:00:00.000000'''
    81 6\tbabar\t2014-01-01 00:00:00.000000'''
    83         self.assertMultiLineEqual(expected, results.getvalue())
    82         self.assertMultiLineEqual(expected, results.getvalue())
    84 
    83 
    85     def test_create_copyfrom_buffer_dict(self):
    84     def test_create_copyfrom_buffer_dict(self):
    86         data = (dict(integer=42, double=42.42, text=u'éléphant',
    85         data = (dict(integer=42, double=42.42, text=u'éléphant',
    87                      date=DT.datetime(666, 6, 13, 6, 6, 6)),
    86                      date=DT.datetime(666, 6, 13, 6, 6, 6)),
    88                 dict(integer=6, double=6.6, text=u'babar',
    87                 dict(integer=6, double=6.6, text=u'babar',
    89                      date=DT.datetime(2014, 1, 1, 0, 0, 0)))
    88                      date=DT.datetime(2014, 1, 1, 0, 0, 0)))
    90         results = pgstore._create_copyfrom_buffer(data, ('integer', 'text'))
    89         results = pgstore._create_copyfrom_buffer(data, ('integer', 'text'))
    91         expected = '''42\téléphant\n6\tbabar'''
    90         expected = u'''42\téléphant\n6\tbabar'''
    92         self.assertMultiLineEqual(expected, results.getvalue())
    91         self.assertEqual(expected, results.getvalue())
    93 
    92 
    94 if __name__ == '__main__':
    93 if __name__ == '__main__':
    95     unittest_main()
    94     unittest_main()