def test_decode_class_name(self):
     """Test decoding of class names."""
     for (class_name, encoded_class_name) in self.class_names:
         self.assertEqual(ft.decode_class_name(encoded_class_name),
                          class_name)
         self.assertEqual(
             ft.decode_class_name(ft.encode_class_name(class_name)),
             class_name)
def get_module_path(name, generic=False, decode=True):
    """
    Determine the module path for a given easyblock or software name,
    based on the encoded class name.
    """
    if name is None:
        return None

    # example: 'EB_VSC_minus_tools' should result in 'vsc_tools'
    if decode:
        name = decode_class_name(name)
    module_name = remove_unwanted_chars(name.replace('-', '_')).lower()

    modpath = ['easybuild', 'easyblocks']
    if generic:
        modpath.append('generic')

    return '.'.join(modpath + [module_name])
 def test_encode_class_name(self):
     """Test encoding of class names."""
     for (class_name, encoded_class_name) in self.class_names:
         self.assertEqual(ft.encode_class_name(class_name), encoded_class_name)
         self.assertEqual(ft.encode_class_name(ft.decode_class_name(encoded_class_name)), encoded_class_name)