Skip to content
This repository was archived by the owner on Jan 21, 2026. It is now read-only.

Commit 22e3833

Browse files
committed
all done
1 parent 8fddb3e commit 22e3833

1 file changed

Lines changed: 58 additions & 73 deletions

File tree

tests/test_validation.py

Lines changed: 58 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -57,29 +57,25 @@ def test_validate_peptide_sequence_invalid_amino_acids(self, sequence):
5757
("PEPTIDE[Amidated]", "PEPTIDE"),
5858
],
5959
)
60+
@patch("src.peptide_calculator.parse_square_bracket_modifications")
6061
def test_validate_peptide_sequence_with_modifications(
61-
self, sequence, expected_clean
62+
self, mock_parse, sequence, expected_clean
6263
):
63-
with patch(
64-
"src.peptide_calculator.parse_square_bracket_modifications"
65-
) as mock_parse:
66-
mock_parse.return_value = (expected_clean, f"Modified_{expected_clean}")
64+
mock_parse.return_value = (expected_clean, f"Modified_{expected_clean}")
6765

68-
is_valid, clean_seq = validate_peptide_sequence(sequence)
69-
assert is_valid is True
70-
assert clean_seq == expected_clean
71-
mock_parse.assert_called_once_with(sequence)
66+
is_valid, clean_seq = validate_peptide_sequence(sequence)
67+
assert is_valid is True
68+
assert clean_seq == expected_clean
69+
mock_parse.assert_called_once_with(sequence)
7270

73-
def test_validate_peptide_sequence_with_leading_dot(self):
71+
@patch("src.peptide_calculator.parse_square_bracket_modifications")
72+
def test_validate_peptide_sequence_with_leading_dot(self, mock_parse):
7473
# Test validation with leading dot for N-terminal modifications
75-
with patch(
76-
"src.peptide_calculator.parse_square_bracket_modifications"
77-
) as mock_parse:
78-
mock_parse.return_value = ("PEPTIDE", ".(Acetyl)PEPTIDE")
74+
mock_parse.return_value = ("PEPTIDE", ".(Acetyl)PEPTIDE")
7975

80-
is_valid, clean_seq = validate_peptide_sequence(".[Acetyl]PEPTIDE")
81-
assert is_valid is True
82-
assert clean_seq == "PEPTIDE"
76+
is_valid, clean_seq = validate_peptide_sequence(".[Acetyl]PEPTIDE")
77+
assert is_valid is True
78+
assert clean_seq == "PEPTIDE"
8379

8480
@pytest.mark.parametrize(
8581
"sequence",
@@ -95,17 +91,15 @@ def test_validate_peptide_sequence_case_and_characters(self, sequence):
9591
assert isinstance(is_valid, bool)
9692
assert isinstance(clean_seq, str)
9793

98-
def test_validate_peptide_sequence_parse_exception(self):
94+
@patch("src.peptide_calculator.parse_square_bracket_modifications")
95+
def test_validate_peptide_sequence_parse_exception(self, mock_parse):
9996
# Test fallback behavior when parsing fails
100-
with patch(
101-
"src.peptide_calculator.parse_square_bracket_modifications"
102-
) as mock_parse:
103-
mock_parse.side_effect = Exception("Parse error")
97+
mock_parse.side_effect = Exception("Parse error")
10498

105-
# Test with a simple valid sequence to ensure fallback works
106-
is_valid, clean_seq = validate_peptide_sequence("PEPTIDE")
107-
assert isinstance(is_valid, bool)
108-
assert isinstance(clean_seq, str)
99+
# Test with a simple valid sequence to ensure fallback works
100+
is_valid, clean_seq = validate_peptide_sequence("PEPTIDE")
101+
assert isinstance(is_valid, bool)
102+
assert isinstance(clean_seq, str)
109103

110104
def test_validate_peptide_sequence_fallback_validation(self):
111105
# Test that fallback validation works correctly without mocking
@@ -123,21 +117,19 @@ def test_validate_peptide_sequence_fallback_validation(self):
123117
("SEQUENCE3", "SEQUENCE", 3),
124118
],
125119
)
120+
@patch("src.peptide_calculator.parse_sequence_with_mods_and_charge")
126121
def test_validate_peptide_sequence_with_mods_valid(
127-
self, sequence, expected_clean, expected_charge
122+
self, mock_parse, sequence, expected_clean, expected_charge
128123
):
129-
with patch(
130-
"src.peptide_calculator.parse_sequence_with_mods_and_charge"
131-
) as mock_parse:
132-
mock_parse.return_value = (expected_clean, expected_clean, expected_charge)
124+
mock_parse.return_value = (expected_clean, expected_clean, expected_charge)
133125

134-
is_valid, clean_seq, openms_seq, charge = (
135-
validate_peptide_sequence_with_mods(sequence)
136-
)
137-
assert is_valid is True
138-
assert clean_seq == expected_clean
139-
assert charge == expected_charge
140-
mock_parse.assert_called_once_with(sequence)
126+
is_valid, clean_seq, openms_seq, charge = validate_peptide_sequence_with_mods(
127+
sequence
128+
)
129+
assert is_valid is True
130+
assert clean_seq == expected_clean
131+
assert charge == expected_charge
132+
mock_parse.assert_called_once_with(sequence)
141133

142134
@pytest.mark.parametrize(
143135
"invalid_sequence,expected_clean",
@@ -147,33 +139,29 @@ def test_validate_peptide_sequence_with_mods_valid(
147139
("INVALIDZ123", "INVALIDZ"),
148140
],
149141
)
142+
@patch("src.peptide_calculator.parse_sequence_with_mods_and_charge")
150143
def test_validate_peptide_sequence_with_mods_invalid(
151-
self, invalid_sequence, expected_clean
144+
self, mock_parse, invalid_sequence, expected_clean
152145
):
153-
with patch(
154-
"src.peptide_calculator.parse_sequence_with_mods_and_charge"
155-
) as mock_parse:
156-
mock_parse.return_value = (expected_clean, invalid_sequence, 1)
146+
mock_parse.return_value = (expected_clean, invalid_sequence, 1)
157147

158-
is_valid, clean_seq, openms_seq, charge = (
159-
validate_peptide_sequence_with_mods(invalid_sequence)
160-
)
161-
# Should detect that the clean sequence contains invalid amino acids
162-
assert is_valid is False
148+
is_valid, clean_seq, openms_seq, charge = validate_peptide_sequence_with_mods(
149+
invalid_sequence
150+
)
151+
# Should detect that the clean sequence contains invalid amino acids
152+
assert is_valid is False
163153

164-
def test_validate_peptide_sequence_with_mods_exception_handling(self):
165-
with patch(
166-
"src.peptide_calculator.parse_sequence_with_mods_and_charge"
167-
) as mock_parse:
168-
mock_parse.side_effect = Exception("Parse error")
154+
@patch("src.peptide_calculator.parse_sequence_with_mods_and_charge")
155+
def test_validate_peptide_sequence_with_mods_exception_handling(self, mock_parse):
156+
mock_parse.side_effect = Exception("Parse error")
169157

170-
is_valid, clean_seq, openms_seq, charge = (
171-
validate_peptide_sequence_with_mods("INVALID")
172-
)
173-
assert is_valid is False
174-
assert clean_seq == ""
175-
assert openms_seq == ""
176-
assert charge == 1
158+
is_valid, clean_seq, openms_seq, charge = validate_peptide_sequence_with_mods(
159+
"INVALID"
160+
)
161+
assert is_valid is False
162+
assert clean_seq == ""
163+
assert openms_seq == ""
164+
assert charge == 1
177165

178166
def test_validate_very_long_sequence(self):
179167
long_sequence = "A" * 1000
@@ -207,27 +195,24 @@ def test_validate_peptide_sequence_unicode_characters(self):
207195
assert isinstance(is_valid, bool)
208196
assert isinstance(clean_seq, str)
209197

210-
def test_validate_peptide_sequence_with_complex_modifications(self):
198+
@patch("src.peptide_calculator.parse_sequence_with_mods_and_charge")
199+
def test_validate_peptide_sequence_with_complex_modifications(self, mock_parse):
211200
# Test validation with complex modification patterns
212201
complex_sequences = [
213202
".[Acetyl]M[Oxidation]PEPTIDEC[Carbamidomethyl]/2",
214203
"EM[+15.9949]EVEES[-79.9663]PEK",
215204
"ALSSC[UNIMOD:4]VVDEEQDVER/2",
216205
]
217206

207+
mock_parse.return_value = ("PEPTIDE", "PEPTIDE", 2)
218208
for sequence in complex_sequences:
219-
with patch(
220-
"src.peptide_calculator.parse_sequence_with_mods_and_charge"
221-
) as mock_parse:
222-
mock_parse.return_value = ("PEPTIDE", "PEPTIDE", 2)
223-
224-
is_valid, clean_seq, openms_seq, charge = (
225-
validate_peptide_sequence_with_mods(sequence)
226-
)
227-
assert isinstance(is_valid, bool)
228-
assert isinstance(clean_seq, str)
229-
assert isinstance(openms_seq, str)
230-
assert isinstance(charge, int)
209+
is_valid, clean_seq, openms_seq, charge = (
210+
validate_peptide_sequence_with_mods(sequence)
211+
)
212+
assert isinstance(is_valid, bool)
213+
assert isinstance(clean_seq, str)
214+
assert isinstance(openms_seq, str)
215+
assert isinstance(charge, int)
231216

232217
def test_validate_peptide_sequence_error_messages(self):
233218
# Test that appropriate error context is maintained

0 commit comments

Comments
 (0)