From ba006bdd5ae2053575e11539186d5c5041f070c1 Mon Sep 17 00:00:00 2001 From: BonfaceKilz Date: Tue, 1 Mar 2022 16:49:54 +0300 Subject: Fill in empty values in csv text with: "x" * gn3/csvcmp.py (fill_csv): Update this function to allow empty lists to be filled with the default value(set in the args). * tests/unit/test_csvcmp.py (test_fill_csv): Update test to capture above. --- gn3/csvcmp.py | 6 +++++- tests/unit/test_csvcmp.py | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gn3/csvcmp.py b/gn3/csvcmp.py index 360a101..eef64b5 100644 --- a/gn3/csvcmp.py +++ b/gn3/csvcmp.py @@ -92,6 +92,10 @@ def fill_csv(csv_text, width, value="x"): if line.startswith("Strain") or line.startswith("#"): data.append(line) elif line: + _n = line.split(",") + for i, val in enumerate(_n): + if not val.strip(): + _n[i] = value data.append( - ",".join((_n:=line.split(",")) + [value] * (width - len(_n)))) + ",".join(_n + [value] * (width - len(_n)))) return "\n".join(data) diff --git a/tests/unit/test_csvcmp.py b/tests/unit/test_csvcmp.py index fd7aa28..3c9ba33 100644 --- a/tests/unit/test_csvcmp.py +++ b/tests/unit/test_csvcmp.py @@ -9,10 +9,10 @@ import pytest @pytest.mark.unit_test def test_fill_csv(): test_input = """ -Strain Name,Value,SE,Count -BXD1,18,x,0 -BXD12,16,x,x -BXD14,15,x,x +Strain Name,Value,SE,Count,Sex +BXD1,18,x,0, +BXD12,16,x,x, +BXD14,15,x,x, BXD15,14,x,x """ expected_output = """Strain Name,Value,SE,Count,Sex @@ -20,7 +20,7 @@ BXD1,18,x,0,x BXD12,16,x,x,x BXD14,15,x,x,x BXD15,14,x,x,x""" - assert(fill_csv(test_input, width=5, value="x")) + assert(fill_csv(test_input, width=5, value="x") == expected_output) @pytest.mark.unit_test def test_remove_insignificant_data(): -- cgit v1.2.3