From 07158c8d0d9492aa0ab7607288ef0eae0a8f1fc2 Mon Sep 17 00:00:00 2001
From: Nicolas MAILLET <nicolas.maillet@pasteur.fr>
Date: Thu, 7 Mar 2019 14:49:46 +0100
Subject: [PATCH] Modify output of __repr__ for a rule

---
 rpg/rule.py                          |  6 +++---
 tests/test_RapidPeptidesGenerator.py | 27 +++++++++++++++------------
 tests/test_enzyme.py                 |  7 ++++---
 tests/test_rule.py                   | 27 ++++++++++++++-------------
 4 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/rpg/rule.py b/rpg/rule.py
index ffd6328..aa52e4f 100644
--- a/rpg/rule.py
+++ b/rpg/rule.py
@@ -60,13 +60,13 @@ class Rule:
         ret += "index=" + str(self.index) + "\n"
         for _ in range(lvl):
             ret += "\t"
-        ret += "letter=" + str(self.letter) + "\n"
+        ret += "amino_acid=" + str(self.letter) + "\n"
         for _ in range(lvl):
             ret += "\t"
-        ret += "cut=" + str(self.cut) + "\n"
+        ret += "cleavage=" + str(self.cut) + "\n"
         for _ in range(lvl):
             ret += "\t"
-        ret += "pos=" + str(self.pos) + "\n"
+        ret += "position=" + str(self.pos) + "\n"
         # Sub-rules
         for i in self.rules:
             ret += str(i.__repr__(lvl + 1))
diff --git a/tests/test_RapidPeptidesGenerator.py b/tests/test_RapidPeptidesGenerator.py
index 1f1cbf5..450c17a 100644
--- a/tests/test_RapidPeptidesGenerator.py
+++ b/tests/test_RapidPeptidesGenerator.py
@@ -64,21 +64,24 @@ def test_create_enzymes_to_use(capsys):
     enzymes = [23, 31, 29]
     miscleavage = [1.1, 20]
     res = RapidPeptidesGenerator.create_enzymes_to_use(enzymes, miscleavage)
-    assert res.__repr__() == "[Id: 23\nName: Glu-C\nRatio Miscleavage: 1.1"\
-                           "0%\nRules: [index=0\nletter=D\ncut=True\npos=1\n,"\
-                           " index=0\nletter=E\ncut=True\npos=1\n]\n, Id: 31"\
-                           "\nName: NTCB\nRatio Miscleavage: 20.00%\nRules"\
-                           ": [index=0\nletter=C\ncut=True\npos=0\n]\n, Id: "\
-                           "29\nName: Lys-N\nRatio Miscleavage: 0.00%\nRul"\
-                           "es: [index=0\nletter=K\ncut=True\npos=0\n]\n]"
+    assert res.__repr__() == "[Id: 23\nName: Glu-C\nRatio Miscleavage: 1.10%"\
+                             "\nRules: [index=0\namino_acid=D\ncleavage=True"\
+                             "\nposition=1\n, index=0\namino_acid=E\ncleavage"\
+                             "=True\nposition=1\n]\n, Id: 31\nName: NTCB\nRat"\
+                             "io Miscleavage: 20.00%\nRules: [index=0\namino_"\
+                             "acid=C\ncleavage=True\nposition=0\n]\n, Id: 29"\
+                             "\nName: Lys-N\nRatio Miscleavage: 0.00%\nRules:"\
+                             " [index=0\namino_acid=K\ncleavage=True\npositio"\
+                             "n=0\n]\n]"
     enzymes = [23, 31]
     miscleavage = [1.1, 20, 40]
     res = RapidPeptidesGenerator.create_enzymes_to_use(enzymes, miscleavage)
     _, err = capsys.readouterr()
     assert err == "Warning: Too much miscleavage values. Last values will "\
                   "be ignored.\n"
-    assert res.__repr__() == "[Id: 23\nName: Glu-C\nRatio Miscleavage: 1.1"\
-                           "0%\nRules: [index=0\nletter=D\ncut=True\npos=1\n,"\
-                           " index=0\nletter=E\ncut=True\npos=1\n]\n, Id: 31"\
-                           "\nName: NTCB\nRatio Miscleavage: 20.00%\nRules"\
-                           ": [index=0\nletter=C\ncut=True\npos=0\n]\n]"
+    assert res.__repr__() == "[Id: 23\nName: Glu-C\nRatio Miscleavage: 1.10%"\
+                             "\nRules: [index=0\namino_acid=D\ncleavage=True"\
+                             "\nposition=1\n, index=0\namino_acid=E\ncleavage"\
+                             "=True\nposition=1\n]\n, Id: 31\nName: NTCB\nRat"\
+                             "io Miscleavage: 20.00%\nRules: [index=0\namino_"\
+                             "acid=C\ncleavage=True\nposition=0\n]\n]"
diff --git a/tests/test_enzyme.py b/tests/test_enzyme.py
index 0b8fcc7..8d87cde 100644
--- a/tests/test_enzyme.py
+++ b/tests/test_enzyme.py
@@ -17,9 +17,10 @@ def test_enzyme(tmpdir):
 
     # Test function '__repr__()'
     res = enz0.__repr__()
-    assert res == "Id: -1\nName: fake_enzyme1\nRatio Miscleavage: 0.00%\nR"\
-                  "ules: [index=0\nletter=D\ncut=True\npos=1\n\tindex=-1\n\tl"\
-                  "etter=S\n\tcut=False\n\tpos=-1\n]\n"
+    assert res == "Id: -1\nName: fake_enzyme1\nRatio Miscleavage: 0.00%\nRule"\
+                  "s: [index=0\namino_acid=D\ncleavage=True\nposition=1\n\tin"\
+                  "dex=-1\n\tamino_acid=S\n\tcleavage=False\n\tposition=-1\n]"\
+                  "\n"
 
     dict_rule = {}
     rule_txt = "(D,)"
diff --git a/tests/test_rule.py b/tests/test_rule.py
index dd10b89..fc451f9 100644
--- a/tests/test_rule.py
+++ b/tests/test_rule.py
@@ -15,7 +15,7 @@ def test_rule():
 
     # Test function '__repr__()'
     print_res = rule0.__repr__()
-    assert print_res == "index=0\nletter=D\ncut=True\npos=0\n"
+    assert print_res == "index=0\namino_acid=D\ncleavage=True\nposition=0\n"
 
     # Simple rule1
     index = 2
@@ -24,7 +24,7 @@ def test_rule():
     pos = 1
     rule1 = rule.Rule(index, letter, cut, pos)
     print_res = rule1.__repr__()
-    assert print_res == "index=2\nletter=Q\ncut=False\npos=1\n"
+    assert print_res == "index=2\namino_acid=Q\ncleavage=False\nposition=1\n"
 
     # Simple rule2 identical to 1
     index = 0
@@ -40,8 +40,9 @@ def test_rule():
 
     # Test __repr__
     print_res = rule2.__repr__()
-    assert print_res == "index=0\nletter=D\ncut=True\npos=0\n\tindex=2"\
-                        "\n\tletter=Q\n\tcut=False\n\tpos=1\n"
+    assert print_res == "index=0\namino_acid=D\ncleavage=True\nposition=0\n\t"\
+                        "index=2\n\tamino_acid=Q\n\tcleavage=False\n\tpositio"\
+                        "n=1\n"
 
     # Test function '__ne__()'
     assert rule0 != rule2
@@ -72,19 +73,19 @@ def test_rule():
     # Test function 'format_a_rule(prev_name, prev_com)'
     res = rule2.format_a_rule(prev_name, prev_com)
     assert res == ['D_0', ' # Always cleaves before D, except...',
-                   'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D, '
-                   'except...']
+                   'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D'
+                   ', except...']
     res = rule1.format_a_rule(prev_name, prev_com)
     assert res == ['1Q2', ' # Never cleaves after Q, except...',
-                   '1Q2 = rule.Rule(2, "Q", False, 1) # Never cleaves after Q, '
-                   'except...']
+                   '1Q2 = rule.Rule(2, "Q", False, 1) # Never cleaves after Q,'
+                   ' except...']
 
     # Test function 'format_rule()'
     res = rule2.format_rule()
-    assert res == 'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D, ex'\
-                  'cept...\nD_0Q2 = rule.Rule(2, "Q", False, 1) # Never cleaves b'\
-                  'efore D, followed by Q, except...\nD_0.rules.append(D_0Q2)'\
-                  '\nENZ.append(D_0)\n\n'
+    assert res == 'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D'\
+                  ', except...\nD_0Q2 = rule.Rule(2, "Q", False, 1) # Never c'\
+                  'leaves before D, followed by Q, except...\nD_0.rules.appen'\
+                  'd(D_0Q2)\nENZ.append(D_0)\n\n'
 
 def test_check_rule():
     """Test function 'check_rule(exprule)'."""
@@ -374,7 +375,7 @@ def test_create_rules():
     assert len(res) == 7
 
     # Double comma and 'or'
-    # Cleaves after I or J, except if a K is after, but cleaves if a L is before
+    # Cleaves after I or J, except if K is after, but cleaves if a L is before
     all_rules = {}
     rule6 = "(,I or J,)"
     all_rules[rule6] = True
-- 
GitLab