code: def register_tc_plugins(self, plugin_name, plugin_class):
          
          if plugin_name in self.registered_plugins:
              raise PluginException("Plugin {} already registered! Duplicate "
                                    "plugins?".format(plugin_name))
          self.logger.debug("Registering plugin %s", plugin_name)
          plugin_class.init(bench=self.bench)
          if plugin_class.get_bench_api() is not None:
              register_func = self.plugin_types[PluginTypes.BENCH]
              register_func(plugin_name, plugin_class)
          if plugin_class.get_parsers() is not None:
              register_func = self.plugin_types[PluginTypes.PARSER]
              register_func(plugin_name, plugin_class)
          if plugin_class.get_external_services() is not None:
              register_func = self.plugin_types[PluginTypes.EXTSERVICE]
              register_func(plugin_name, plugin_class)
  
          self.registered_plugins.append(plugin_name)
docs: Loads a plugin as a dictionary and attaches needed parts to correct areas for testing
          parts.
  
          :param plugin_name: Name of the plugins
          :param plugin_class: PluginBase
          :return: Nothing