def test_with_gzip(self): args = ['-c', '1,3', 'examples/dummy.csv.gz'] output_file = six.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = six.StringIO(output_file.getvalue()) reader = agate.reader(input_file) self.assertEqual(next(reader), ['a', 'c']) self.assertEqual(next(reader), ['1', '3'])
def test_names(self): args = ['-n', 'examples/dummy.csv'] output_file = six.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = six.StringIO(output_file.getvalue()) self.assertEqual(next(input_file), ' 1: a\n') self.assertEqual(next(input_file), ' 2: b\n') self.assertEqual(next(input_file), ' 3: c\n')
def test_no_header_row(self): args = ['-c', '2', '--no-header-row', 'examples/no_header_row.csv'] output_file = six.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = six.StringIO(output_file.getvalue()) reader = agate.reader(input_file) self.assertEqual(next(reader), ['column2']) self.assertEqual(next(reader), ['2'])
def test_include_and_exclude(self): args = ['-c', '1,3', '-C', '3', 'examples/dummy.csv'] output_file = six.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = six.StringIO(output_file.getvalue()) reader = CSVKitReader(input_file) self.assertEqual(next(reader), ['a']) self.assertEqual(next(reader), ['1'])
def test_simple(self): args = ['-c', '1,3', 'examples/dummy.csv'] output_file = StringIO.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = StringIO.StringIO(output_file.getvalue()) reader = CSVKitReader(input_file) self.assertEqual(reader.next(), ['a', 'c']) self.assertEqual(reader.next(), ['1', '3'])
def test_unicode(self): args = ['-c', '1,3', 'examples/test_utf8.csv'] output_file = six.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = six.StringIO(output_file.getvalue()) reader = agate.reader(input_file) self.assertEqual(next(reader), ['a', 'c']) self.assertEqual(next(reader), ['1', '3']) self.assertEqual(next(reader), ['4', u'ʤ'])
def _get_table_columns(cls, csv_file_path, extra=None): from io import StringIO from csvkit.utilities.csvcut import CSVCut output = StringIO() extra_args = cls._parse_extra_args(extra) if extra else [] args = ['-n', *extra_args, csv_file_path] print(args) csvcut = CSVCut(args=args) csvcut.output_file = output csvcut.run() csv_columns = [ col.split(': ')[1] for col in output.getvalue().splitlines() ] table_columns = [ '"{}"'.format(col) if (col != col.lower() or ' ' in col) else col for col in csv_columns ] return table_columns
def test_invalid_options(self): args = ['-n', '--no-header-row', 'examples/dummy.csv'] output_file = StringIO.StringIO() utility = CSVCut(args, output_file) self.assertRaises(RequiredHeaderError, utility.main)
def test_invalid_column(self): args = ['-c', '0', 'examples/dummy.csv'] output_file = StringIO.StringIO() utility = CSVCut(args, output_file) self.assertRaises(ColumnIdentifierError, utility.main)