Beispiel #1
0
    def test_unhandled_types(self):
        """Should raise error, not return a generator."""
        with self.assertRaises(TypeError):
            get_reader(object())

        with self.assertRaises(TypeError):
            get_reader([object(), object()])
Beispiel #2
0
    def test_csv(self):
        reader = get_reader('sample_text_utf8.csv', encoding='utf-8')
        expected = [
            ['col1', 'col2'],
            ['utf8', chr(0x003b1)],  # chr(0x003b1) -> α
        ]
        self.assertEqual(list(reader), expected)

        reader = get_reader('sample_text_iso88591.csv', encoding='iso8859-1')
        expected = [
            ['col1', 'col2'],
            ['iso88591', chr(0xe6)],  # chr(0xe6) -> æ
        ]
        self.assertEqual(list(reader), expected)

        path = 'sample_text_utf8.csv'
        encoding = 'utf-8'

        def open_file(path, encoding):  # <- Helper function.
            if PY2:
                return open(path, 'rb')
            return open(path, 'rt', encoding=encoding, newline='')

        with open_file(path, encoding) as fh:
            reader = get_reader(fh, encoding=encoding)
            expected = [
                ['col1', 'col2'],
                ['utf8', chr(0x003b1)],  # chr(0x003b1) -> α
            ]
            self.assertEqual(list(reader), expected)
Beispiel #3
0
    def test_readerlike_wrapping(self):
        """Reader-like lists should simply be wrapped."""
        readerlike = [['col1', 'col2'], [1, 'a'], [2, 'b']]
        reader = get_reader(readerlike)
        self.assertEqual(list(reader), readerlike)

        readerlike = [('col1', 'col2'), (1, 'a'), (2, 'b')]
        reader = get_reader(readerlike)
        self.assertEqual(list(reader), readerlike)
Beispiel #4
0
    def test_datatest(self):
        select = datatest.Selector([['A', 'B'], ['x', 1], ['y', 2]])
        query = select('A')
        reader = get_reader(query)
        self.assertEqual(list(reader), [['A'], ['x'], ['y']])

        select = datatest.Selector([['A', 'B'], ['x', 1], ['y', 2]])
        query = select({'A': 'B'})
        reader = get_reader(query)
        self.assertEqual(list(reader), [['A', 'B'], ['x', 1], ['y', 2]])
Beispiel #5
0
    def test_datatest(self):
        select = datatest.Selector([['A', 'B'], ['x', 1], ['y', 2]])

        query = select(('A', 'B'))
        reader = get_reader(query)  # <- datatest.Query
        self.assertEqual(list(reader), [('A', 'B'), ('x', 1), ('y', 2)])

        reader = get_reader(select)  # <- datatest.Selector
        self.assertEqual(list(reader), [('A', 'B'), ('x', 1), ('y', 2)])

        result = select({'A': 'B'}).execute()
        reader = get_reader(query)  # <- datatest.Result
        self.assertEqual(list(reader), [('A', 'B'), ('x', 1), ('y', 2)])
Beispiel #6
0
    def test_excel(self):
        reader = get_reader('sample_excel2007.xlsx')
        expected = [
            ['col1', 'col2'],
            ['excel2007', 1],
        ]
        self.assertEqual(list(reader), expected)

        reader = get_reader('sample_excel1997.xls')
        expected = [
            ['col1', 'col2'],
            ['excel1997', 1],
        ]
        self.assertEqual(list(reader), expected)
Beispiel #7
0
 def test_dbf(self):
     reader = get_reader('sample_dbase.dbf')
     expected = [
         ['COL1', 'COL2'],
         ['dBASE', 1],
     ]
     self.assertEqual(list(reader), expected)
Beispiel #8
0
    def test_namedtuples(self):
        ntup = namedtuple('ntup', ['col1', 'col2'])

        records = [ntup(1, 'a'), ntup(2, 'b')]
        reader = get_reader(records)

        expected = [('col1', 'col2'), (1, 'a'), (2, 'b')]
        self.assertEqual(list(reader), expected)
Beispiel #9
0
 def test_dicts(self):
     records = [
         {
             'col1': 'first'
         },
         {
             'col1': 'second'
         },
     ]
     reader = get_reader(records)
     expected = [['col1'], ['first'], ['second']]
     self.assertEqual(list(reader), expected)
Beispiel #10
0
 def test_pandas(self):
     df = pandas.DataFrame({
         'col1': (1, 2, 3),
         'col2': ('a', 'b', 'c'),
     })
     reader = get_reader(df, index=False)
     expected = [
         ['col1', 'col2'],
         [1, 'a'],
         [2, 'b'],
         [3, 'c'],
     ]
     self.assertEqual(list(reader), expected)