File tree Expand file tree Collapse file tree 2 files changed +16
-9
lines changed Expand file tree Collapse file tree 2 files changed +16
-9
lines changed Original file line number Diff line number Diff line change @@ -171,8 +171,6 @@ def _redux_allele(
171171 :rtype: str
172172 """
173173
174- validate_reduction_type (redux_type )
175-
176174 # deal with leading 'HLA-'
177175 if HLA_regex .search (allele ):
178176 hla , allele_name = allele .split ("-" )
@@ -646,14 +644,18 @@ def _is_valid(self, allele: str) -> bool:
646644 if allele .endswith (("P" , "G" )):
647645 # remove the last character
648646 allele = allele [:- 1 ]
649- if self ._is_valid_allele (allele ):
650- return True
651- else :
652- allele = get_2field_allele (allele )
653- if self ._is_valid_allele (allele ):
654- return True
647+ # validate format: there are no empty fields eg, 2 :: together
648+ if "*" in allele :
649+ _ , fields = allele .split ("*" )
650+ if not all (map (str .isalnum , fields .split (":" ))):
651+ return False
652+ # The allele is valid as whole or as a 2 field version
653+ if self ._is_valid_allele (allele ):
654+ return True
655+ else :
656+ allele = get_2field_allele (allele )
657+ return self ._is_valid_allele (allele )
655658
656- return self ._is_valid_allele (allele )
657659 return True
658660
659661 def _is_valid_gl (self , glstring : str ) -> bool :
Original file line number Diff line number Diff line change @@ -142,6 +142,11 @@ def test_fp_allele(self):
142142 with self .assertRaises (InvalidTypingError ):
143143 self .ard .redux ("A*0.123" , "lgx" )
144144
145+ def test_empty_fields (self ):
146+ with self .assertRaises (InvalidTypingError ):
147+ # : without any data
148+ self .ard .redux ("DQA1*01:01:01:G" , "lgx" )
149+
145150 def test_invalid_serology (self ):
146151 # Test that A10 works and the first one is 'A*25:01'
147152 serology_a10 = self .ard .redux ("A10" , "lgx" )
You can’t perform that action at this time.
0 commit comments