Ejemplo n.º 1
0
 def setUp(self):
     self.sort_helper = ValidMarkerSortHelper()
Ejemplo n.º 2
0
class ValidMarkerSortHelperTest(unittest.TestCase):
    """
    Test ValidMarkerSortHelper.sort()
    """
    
    def setUp(self):
        self.sort_helper = ValidMarkerSortHelper()
        
    def tearDown(self):
        pass
    
    # helpers
    def _mock_marker(self, _marker_key, featuretypes):
        """
        Create a mock marker object for testing
        """
        marker = Marker()
        marker.symbol = "Test (key=%s)" % _marker_key
        marker._marker_key = _marker_key
        marker.featuretype_vocterms = self._create_feature_types(featuretypes)
        
        return marker
    
    
    def _create_feature_types(self, terms):
        """
        Create list of feature type vocterm objects
        """
        featuretype_vocterms = []
        
        for term in terms:
            vocterm = VocTerm()
            vocterm.term = term
            featuretype_vocterms.append(vocterm)
            
        return featuretype_vocterms
    
    
    # Tests
    def test_basic_protein_coding_sort(self):
        """
        protein coding genes always sort first
        """
        marker1 = self._mock_marker(1, ['non-coding gene'])
        marker2 = self._mock_marker(2, ['protein coding gene'])
        markers = [marker1, marker2]
        
        self.sort_helper.sort(markers)
        
        self.assertEqual([marker2, marker1], markers)
        
    def test_multiple_featuretypes(self):
        """
        protein coding genes always sort first
        """
        
        marker1 = self._mock_marker(1, ['non-coding gene', 'test feature type'])
        marker2 = self._mock_marker(2, ['test feature type', 'protein coding gene'])
        markers = [marker1, marker2]
        
        self.sort_helper.sort(markers)
        
        self.assertEqual([marker2, marker1], markers)
        
        
    def test_same_featuretype(self):
        
        marker1 = self._mock_marker(1, ['non-coding gene'])
        marker2 = self._mock_marker(2, ['non-coding gene'])
        markers = [marker1, marker2]
        
        self.sort_helper.sort(markers)
        
        self.assertEqual([marker1, marker2], markers)
        
    
    def test_same_protein_coding_featuretype(self):
        
        marker1 = self._mock_marker(1, ['protein coding gene'])
        marker2 = self._mock_marker(2, ['protein coding gene'])
        markers = [marker1, marker2]
        
        self.sort_helper.sort(markers)
        
        self.assertEqual([marker1, marker2], markers)
        
        
    def test_no_featuretype(self):
        
        marker1 = self._mock_marker(1, [])
        marker2 = self._mock_marker(2, [])
        markers = [marker1, marker2]
        
        self.sort_helper.sort(markers)
        
        self.assertEqual([marker1, marker2], markers)