Пример #1
0
    def test_load_data(self):
        select = Select()  # <- Empty select.
        self.assertEqual(select.fieldnames, [])

        readerlike1 = [['col1', 'col2'], ['a', 1], ['b', 2]]
        select.load_data(readerlike1)
        self.assertEqual(select.fieldnames, ['col1', 'col2'])

        readerlike2 = [['col1', 'col3'], ['c', 'x'], ['d', 'y']]
        select.load_data(readerlike2)
        self.assertEqual(select.fieldnames, ['col1', 'col2', 'col3'])
Пример #2
0
    def test_repr(self):
        data = [['A', 'B'], ['x', 100], ['y', 200]]

        # Empty select.
        select = Select()
        self.assertEqual(repr(select), '<Select (no data loaded)>')

        # Data-only (no args)
        select = Select(data)
        expected = "<Select [['A', 'B'], ['x', 100], ['y', 200]]>"
        self.assertEqual(repr(select), expected)

        # Data with args (args don't affect repr)
        iterable = iter(data)
        select = Select(iterable, 'foo', bar='baz')
        regex = '<Select <[a-z_]+ object at [^\n>]+>>'
        self.assertRegex(repr(select), regex)

        # Extended after instantiation.
        select = Select()
        select.load_data([['A', 'B'], ['z', 300]])
        select.load_data([['A', 'B'], ['y', 200]])
        select.load_data([['A', 'B'], ['x', 100]])

        expected = (
            "<Select (3 sources):\n"
            "    [['A', 'B'], ['x', 100]]\n"
            "    [['A', 'B'], ['y', 200]]\n"
            "    [['A', 'B'], ['z', 300]]>"
        )
        self.assertEqual(repr(select), expected)

        # Test long repr truncation.
        select = Select([
            ['xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
            ['yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'],
        ])

        self.assertEqual(len(repr(select)), 72)

        expected = "<Select [['xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'], ['yyyyyyyyyyyyy...yyyyy']]>"
        self.assertEqual(repr(select), expected)