def test_with_bzip2(self): args = ["-c", "1,3", "examples/dummy.csv.bz2"] 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_names(self): args = ["-n", "examples/dummy.csv"] output_file = StringIO.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = StringIO.StringIO(output_file.getvalue()) self.assertEqual(input_file.next(), " 1: a\n") self.assertEqual(input_file.next(), " 2: b\n") self.assertEqual(input_file.next(), " 3: c\n")
def test_include_and_exclude(self): args = ["-c", "1,3", "-C", "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"]) self.assertEqual(reader.next(), ["1"])
def test_no_header_row(self): args = ["-c", "2", "--no-header-row", "examples/no_header_row.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(), ["column2"]) self.assertEqual(reader.next(), ["2"])
def test_names(self): args = ['-n', 'examples/dummy.csv'] output_file = StringIO.StringIO() utility = CSVCut(args, output_file) utility.main() input_file = StringIO.StringIO(output_file.getvalue()) self.assertEqual(input_file.next(), ' 1: a\n') self.assertEqual(input_file.next(), ' 2: b\n') self.assertEqual(input_file.next(), ' 3: c\n')
def test_exclude(self): args = ['-C', '1,3', 'examples/dummy.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), ['b']) self.assertEqual(next(reader), ['2'])
def test_with_bzip2(self): args = ['-c', '1,3', 'examples/dummy.csv.bz2'] 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_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_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_with_bzip2(self): args = ['-c', '1,3', 'examples/dummy.csv.bz2'] 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_include_and_exclude(self): args = ['-c', '1,3', '-C', '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']) self.assertEqual(reader.next(), ['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_no_header_row(self): args = ['-c', '2', '--no-header-row', 'examples/no_header_row.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(), ['column2']) self.assertEqual(reader.next(), ['2'])
def test_exclude(self): args = ['-C', '1,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), ['b']) self.assertEqual(next(reader), ['2'])
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_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)