/test/programytest/config/brain/test_services.py

https://github.com/keiffster/program-y · Python · 103 lines · 80 code · 23 blank · 0 comment · 0 complexity · f889eff48a711cd586e2657eb05b03d1 MD5 · raw file

  1. import unittest
  2. from programy.clients.events.console.config import ConsoleConfiguration
  3. from programy.config.brain.services import BrainServicesConfiguration
  4. from programy.config.file.yaml_file import YamlConfigurationFile
  5. class BrainServicesConfigurationTests(unittest.TestCase):
  6. def test_with_data(self):
  7. yaml = YamlConfigurationFile()
  8. self.assertIsNotNone(yaml)
  9. yaml.load_from_text("""
  10. brain:
  11. services:
  12. REST:
  13. classname: programy.services.rest.GenericRESTService
  14. method: GET
  15. host: 0.0.0.0
  16. Pannous:
  17. classname: programy.services.pannous.PannousService
  18. url: http://weannie.pannous.com/api
  19. Pandora:
  20. classname: programy.services.pandora.PandoraService
  21. url: http://www.pandorabots.com/pandora/talk-xml
  22. Wikipedia:
  23. classname: programy.services.wikipediaservice.WikipediaService
  24. """, ConsoleConfiguration(), ".")
  25. brain_config = yaml.get_section("brain")
  26. services_config = BrainServicesConfiguration()
  27. services_config.load_config_section(yaml, brain_config, ".")
  28. self.assertTrue(services_config.exists("REST"))
  29. self.assertTrue(services_config.exists("Pannous"))
  30. self.assertTrue(services_config.exists("Pandora"))
  31. self.assertTrue(services_config.exists("Wikipedia"))
  32. self.assertFalse(services_config.exists("Other"))
  33. self.assertIsNotNone(services_config.service("REST"))
  34. self.assertIsNone(services_config.service("REST2"))
  35. def test_without_data(self):
  36. yaml = YamlConfigurationFile()
  37. self.assertIsNotNone(yaml)
  38. yaml.load_from_text("""
  39. brain:
  40. services:
  41. """, ConsoleConfiguration(), ".")
  42. brain_config = yaml.get_section("brain")
  43. services_config = BrainServicesConfiguration()
  44. services_config.load_config_section(yaml, brain_config, ".")
  45. self.assertFalse(services_config.exists("REST"))
  46. self.assertFalse(services_config.exists("Pannous"))
  47. self.assertFalse(services_config.exists("Pandora"))
  48. self.assertFalse(services_config.exists("Wikipedia"))
  49. self.assertFalse(services_config.exists("Other"))
  50. def test_with_no_data(self):
  51. yaml = YamlConfigurationFile()
  52. self.assertIsNotNone(yaml)
  53. yaml.load_from_text("""
  54. brain:
  55. """, ConsoleConfiguration(), ".")
  56. brain_config = yaml.get_section("brain")
  57. services_config = BrainServicesConfiguration()
  58. services_config.load_config_section(yaml, brain_config, ".")
  59. self.assertFalse(services_config.exists("REST"))
  60. self.assertFalse(services_config.exists("Pannous"))
  61. self.assertFalse(services_config.exists("Pandora"))
  62. self.assertFalse(services_config.exists("Wikipedia"))
  63. self.assertFalse(services_config.exists("Other"))
  64. def test_defaults(self):
  65. services_config = BrainServicesConfiguration()
  66. data = {}
  67. services_config.to_yaml(data, True)
  68. BrainServicesConfigurationTests.assert_defaults(self, data)
  69. @staticmethod
  70. def assert_defaults(test, data):
  71. test.assertEquals(data['REST']['classname'], 'programy.services.rest.GenericRESTService')
  72. test.assertEquals(data['REST']['method'], 'GET')
  73. test.assertEquals(data['REST']['host'], '0.0.0.0')
  74. test.assertEquals(data['Pannous']['classname'], 'programy.services.pannous.PannousService')
  75. test.assertEquals(data['Pannous']['url'], 'http://weannie.pannous.com/api')
  76. test.assertEquals(data['Pandora']['classname'], 'programy.services.pandora.PandoraService')
  77. test.assertEquals(data['Pandora']['url'], 'http://www.pandorabots.com/pandora/talk-xml')
  78. test.assertEquals(data['Wikipedia']['classname'], 'programy.services.wikipediaservice.WikipediaService')
  79. test.assertEquals(data['DuckDuckGo']['classname'], 'programy.services.duckduckgo.DuckDuckGoService')
  80. test.assertEquals(data['DuckDuckGo']['url'], 'http://api.duckduckgo.com')