test_uri_neuron.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. import unittest
  2. from httpretty import httpretty
  3. from core.NeuronModule import InvalidParameterException
  4. from neurons.uri.uri import Uri
  5. class TestUri(unittest.TestCase):
  6. def setUp(self):
  7. self.test_url = "http://kalliope.fr/voices/"
  8. def testGet(self):
  9. expected_content = '{"voice": "nico"}'
  10. httpretty.enable()
  11. httpretty.register_uri(httpretty.GET, self.test_url, body=expected_content)
  12. parameters = {
  13. "url": self.test_url
  14. }
  15. uri_neuron = Uri(**parameters)
  16. self.assertEqual(uri_neuron.text, expected_content)
  17. def testGetRaw(self):
  18. expected_content = 'raw line'
  19. httpretty.enable()
  20. httpretty.register_uri(httpretty.GET, self.test_url, body=expected_content)
  21. parameters = {
  22. "url": self.test_url
  23. }
  24. uri_neuron = Uri(**parameters)
  25. self.assertEqual(uri_neuron.content, expected_content)
  26. def testPost(self):
  27. expected_content = '{"voice": "nico"}'
  28. httpretty.enable()
  29. httpretty.register_uri(httpretty.POST, self.test_url, body=expected_content)
  30. parameters = {
  31. "url": self.test_url,
  32. "method": "POST"
  33. }
  34. uri_neuron = Uri(**parameters)
  35. self.assertEqual(uri_neuron.text, expected_content)
  36. def testPut(self):
  37. expected_content = '{"voice": "nico"}'
  38. httpretty.enable()
  39. httpretty.register_uri(httpretty.PUT, self.test_url, body=expected_content)
  40. parameters = {
  41. "url": self.test_url,
  42. "method": "PUT"
  43. }
  44. uri_neuron = Uri(**parameters)
  45. self.assertEqual(uri_neuron.text, expected_content)
  46. def testDelete(self):
  47. expected_content = '{"voice": "nico"}'
  48. httpretty.enable()
  49. httpretty.register_uri(httpretty.DELETE, self.test_url, body=expected_content)
  50. parameters = {
  51. "url": self.test_url,
  52. "method": "DELETE"
  53. }
  54. uri_neuron = Uri(**parameters)
  55. self.assertEqual(uri_neuron.text, expected_content)
  56. def testOptions(self):
  57. expected_content = '{"voice": "nico"}'
  58. httpretty.enable()
  59. httpretty.register_uri(httpretty.OPTIONS, self.test_url, body=expected_content)
  60. parameters = {
  61. "url": self.test_url,
  62. "method": "OPTIONS"
  63. }
  64. uri_neuron = Uri(**parameters)
  65. self.assertEqual(uri_neuron.text, expected_content)
  66. def testHead(self):
  67. expected_content = '{"voice": "nico"}'
  68. httpretty.enable()
  69. httpretty.register_uri(httpretty.HEAD, self.test_url, body=expected_content)
  70. parameters = {
  71. "url": self.test_url,
  72. "method": "HEAD"
  73. }
  74. uri_neuron = Uri(**parameters)
  75. self.assertEqual(uri_neuron.status_code, 200)
  76. def testPatch(self):
  77. expected_content = '{"voice": "nico"}'
  78. httpretty.enable()
  79. httpretty.register_uri(httpretty.PATCH, self.test_url, body=expected_content)
  80. parameters = {
  81. "url": self.test_url,
  82. "method": "PATCH"
  83. }
  84. uri_neuron = Uri(**parameters)
  85. self.assertEqual(uri_neuron.text, expected_content)
  86. def testParameters(self):
  87. def run_test(parameters):
  88. with self.assertRaises(InvalidParameterException):
  89. Uri(**parameters)
  90. parameters = dict()
  91. run_test(parameters)
  92. parameters = {
  93. "url": self.test_url,
  94. "headers": 1
  95. }
  96. run_test(parameters)
  97. parameters = {
  98. "url": self.test_url,
  99. "timeout": "string"
  100. }
  101. run_test(parameters)
  102. parameters = {
  103. "url": self.test_url,
  104. "data": "this is a data",
  105. "data_from_file": "this is another data"
  106. }
  107. run_test(parameters)
  108. parameters = {
  109. "url": self.test_url,
  110. "method": "NONEXIST"
  111. }
  112. run_test(parameters)
  113. if __name__ == '__main__':
  114. unittest.main()