Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _detect_test_wrap(self, table, dialect):
tmpfname = self._build_file(table, dialect)
exp = "Detected: " + str(dialect)
application = build_application()
command = application.find("detect")
tester = CommandTester(command)
tester.execute(tmpfname)
try:
output = tester.io.fetch_output().strip()
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)
def test_code_2(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
application = build_application()
command = application.find("code")
tester = CommandTester(command)
tester.execute(f"-p {tmpfname}")
exp = f"""\
# Code generated with CleverCSV version {__version__}
import clevercsv
df = clevercsv.read_dataframe("{tmpfname}", delimiter=";", quotechar="", escapechar="")
"""
try:
output = tester.io.fetch_output()
self.assertEqual(exp, output)
def test_standardize_2(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
tmpfd, tmpoutname = tempfile.mkstemp(prefix="ccsv_", suffix=".csv")
os.close(tmpfd)
application = build_application()
command = application.find("standardize")
tester = CommandTester(command)
tester.execute(f"-o {tmpoutname} {tmpfname}")
# Excel format (i.e. RFC4180) *requires* CRLF
crlf = "\r\n"
exp = crlf.join(["A,B,C", "1,2,3", "4,5,6", ""])
with open(tmpoutname, "r", newline="") as fp:
output = fp.read()
try:
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)
os.unlink(tmpoutname)
def test_standardize_1(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
application = build_application()
command = application.find("standardize")
tester = CommandTester(command)
tester.execute(tmpfname)
# Excel format (i.e. RFC4180) *requires* CRLF
crlf = "\r\n"
exp = crlf.join(["A,B,C", "1,2,3", "4,5,6"])
# add line terminator of last row
exp += crlf
try:
output = tester.io.fetch_output()
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)
def test_code_3(self):
table = [["Å", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
encoding = "ISO-8859-1"
tmpfname = self._build_file(table, dialect, encoding=encoding)
application = build_application()
command = application.find("code")
tester = CommandTester(command)
tester.execute(tmpfname)
exp = f"""\
# Code generated with CleverCSV version {__version__}
import clevercsv
with open("{tmpfname}", "r", newline="", encoding="{encoding}") as fp:
reader = clevercsv.reader(fp, delimiter=";", quotechar="", escapechar="")
rows = list(reader)
"""
try:
def test_detect_opts_1(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
encoding = "windows-1252"
tmpfname = self._build_file(table, dialect, encoding=encoding)
application = build_application()
command = application.find("detect")
tester = CommandTester(command)
tester.execute(f"--encoding '{encoding}' {tmpfname}")
exp = "Detected: " + str(dialect)
try:
output = tester.io.fetch_output().strip()
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)
def test_code_5(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter="\t", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
application = build_application()
command = application.find("code")
tester = CommandTester(command)
tester.execute(tmpfname)
exp = f"""\
# Code generated with CleverCSV version {__version__}
import clevercsv
with open("{tmpfname}", "r", newline="", encoding="ascii") as fp:
reader = clevercsv.reader(fp, delimiter="\\t", quotechar="", escapechar="")
rows = list(reader)
"""
try:
def test_detect_opts_2(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
application = build_application()
command = application.find("detect")
tester = CommandTester(command)
tester.execute(f"--num-chars 5 {tmpfname}")
exp = "Detected: " + str(dialect)
try:
output = tester.io.fetch_output().strip()
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)
def test_detect_opts_3(self):
table = [["A", "B", "C"], [1, 2, 3], [4, 5, 6]]
dialect = SimpleDialect(delimiter=";", quotechar="", escapechar="")
tmpfname = self._build_file(table, dialect)
application = build_application()
command = application.find("detect")
tester = CommandTester(command)
tester.execute(f"--plain {tmpfname}")
exp = """\
delimiter = ;
quotechar =
escapechar ="""
try:
output = tester.io.fetch_output().strip()
self.assertEqual(exp, output)
finally:
os.unlink(tmpfname)