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'])
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)