def test_rest_with_data(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: services: REST: classname: programy.utils.services.rest.GenericRESTService method: GET host: 0.0.0.0 """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("services", brain_config) self.assertIsNotNone(services_config) service_config = BrainServiceConfiguration("REST") service_config.load_config_section(yaml, services_config, ".") self.assertEqual("programy.utils.services.rest.GenericRESTService", service_config.classname) self.assertEqual("GET", service_config.method) self.assertEqual("0.0.0.0", service_config.host) self.assertIsNone(service_config.port) self.assertIsNone(service_config.url)
def test_wikipedia_with_data(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: services: Wikipedia: classname: programy.utils.services.wikipediaservice.WikipediaService """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("services", brain_config) self.assertIsNotNone(services_config) service_config = BrainServiceConfiguration("Wikipedia") service_config.load_config_section(yaml, services_config, ".") self.assertEqual( "programy.utils.services.wikipediaservice.WikipediaService", service_config.classname) self.assertIsNone(service_config.method) self.assertIsNone(service_config.host) self.assertIsNone(service_config.port) self.assertIsNone(service_config.url)
def test_pannous_with_data(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: services: Pannous: classname: programy.services.pannous.PannousService url: http://weannie.pannous.com/api """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("services", brain_config) self.assertIsNotNone(services_config) service_config = BrainServiceConfiguration("Pannous") service_config.load_config_section(yaml, services_config, ".") self.assertEqual("programy.services.pannous.PannousService", service_config.classname) self.assertEqual("http://weannie.pannous.com/api", service_config.url) self.assertIsNone(service_config.method) self.assertIsNone(service_config.host) self.assertIsNone(service_config.port)
def test_pandora_with_data(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: services: Pandora: classname: programy.utils.services.pandora.PandoraService url: http://www.pandorabots.com/pandora/talk-xml """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("services", brain_config) self.assertIsNotNone(services_config) service_config = BrainServiceConfiguration("Pandora") service_config.load_config_section(yaml, services_config, ".") self.assertEqual("programy.utils.services.pandora.PandoraService", service_config.classname) self.assertEqual("http://www.pandorabots.com/pandora/talk-xml", service_config.url) self.assertIsNone(service_config.method) self.assertIsNone(service_config.host) self.assertIsNone(service_config.port)
def test_load_services(self): service_config = BrainServiceConfiguration("mock") service_config._classname = 'programytest.services.test_service.MockService' brain_config = BrainConfiguration() brain_config.services._services['mock'] = service_config ServiceFactory.preload_services(brain_config.services) self.assertIsNotNone(ServiceFactory.get_service("mock")) self.assertIsInstance(ServiceFactory.get_service("mock"), MockService)
def load_config_section(self, file_config, brain_config, bot_root): services = file_config.get_section("services", brain_config) if services is not None: service_keys = file_config.get_keys(services) for name in service_keys: service = BrainServiceConfiguration(name) service.load_config_section(file_config, services, bot_root) self._services[name] = service else: if logging.getLogger().isEnabledFor(logging.WARNING): logging.warning("Config section [services] missing from Brain, no services loaded")
def test_service(self): service = BasicPassThroughAuthenticationService( BrainServiceConfiguration("authentication")) self.assertIsNotNone(service) self.assertIsNotNone(service.configuration) self.assertTrue(service.authenticate("console")) self.assertTrue(service.authenticate("anyone"))
def test_service(self): testbot = Bot(Brain(BrainConfiguration()), BotConfiguration()) service = BasicPassThroughAuthenticationService( BrainServiceConfiguration("authentication")) self.assertIsNotNone(service) self.assertIsNotNone(service.configuration) self.assertTrue(service.authenticate(testbot, "console")) self.assertTrue(service.authenticate(testbot, "anyone"))
def test_call_service(self): service_config = BrainServiceConfiguration("mock") service_config._classname = 'programytest.services.test_service.MockService' brain_config = BrainConfiguration() brain_config.services._services['mock'] = service_config ServiceFactory.preload_services(brain_config.services) root = TemplateNode() node = TemplateSRAIXNode() node.service = "mock" root.append(node) node.append(TemplateWordNode("Hello")) self.assertEqual("asked", node.resolve(self.bot, self.clientid))
def test_rest_without_data(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: services: REST: """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("services", brain_config) self.assertIsNotNone(services_config) service_config = BrainServiceConfiguration("REST") service_config.load_config_section(yaml, services_config, ".") self.assertIsNone(service_config.classname) self.assertIsNone(service_config.method) self.assertIsNone(service_config.host) self.assertIsNone(service_config.port) self.assertIsNone(service_config.url)
def test_authorisor(self): service = PassThroughAuthorisationService( BrainServiceConfiguration("authorisation")) self.assertIsNotNone(service) self.assertTrue(service.authorise("console", "sysadmin")) self.assertTrue(service.authorise("anyone", "sysadmin"))