diff options
-rw-r--r-- | gn3/computations/diff.py | 12 | ||||
-rw-r--r-- | tests/unit/computations/test_diff.py | 28 |
2 files changed, 40 insertions, 0 deletions
diff --git a/gn3/computations/diff.py b/gn3/computations/diff.py new file mode 100644 index 0000000..b5da68a --- /dev/null +++ b/gn3/computations/diff.py @@ -0,0 +1,12 @@ +"""This module contains code that's used for generating diffs""" +from typing import Optional + +from gn3.commands import run_cmd + + +def generate_diff(data: str, edited_data: str) -> Optional[str]: + """Generate the diff between 2 files""" + results = run_cmd(f"diff {data} {edited_data}") + if results.get("code", -1) > 0: + return results.get("output") + return None diff --git a/tests/unit/computations/test_diff.py b/tests/unit/computations/test_diff.py new file mode 100644 index 0000000..e4f5dde --- /dev/null +++ b/tests/unit/computations/test_diff.py @@ -0,0 +1,28 @@ +"""This contains unit-tests for gn3.computations.diff""" +import unittest +import os + +from gn3.computations.diff import generate_diff + +TESTDIFF = """3,4c3,4 +< C57BL/6J,x,x,x +< BXD1,18.700,x,x +--- +> C57BL/6J,19.000,x,x +> BXD1,15.700,x,x +6c6 +< BXD11,18.900,x,x +--- +> BXD11,x,x,x +""" + + +class TestDiff(unittest.TestCase): + """Test cases for computations.diff""" + def test_generate_diff(self): + """Test that the correct diff is generated""" + data = os.path.join(os.path.dirname(__file__).split("unit")[0], + "test_data/trait_data_10007.csv") + edited_data = os.path.join(os.path.dirname(__file__).split("unit")[0], + "test_data/edited_trait_data_10007.csv") + self.assertEqual(generate_diff(data, edited_data), TESTDIFF) |