|
@@ -0,0 +1,148 @@
|
|
|
+import unittest
|
|
|
+
|
|
|
+from httpretty import httpretty
|
|
|
+
|
|
|
+from core.NeuronModule import InvalidParameterException
|
|
|
+from neurons.uri.uri import Uri
|
|
|
+
|
|
|
+
|
|
|
+class TestUri(unittest.TestCase):
|
|
|
+
|
|
|
+ def setUp(self):
|
|
|
+ self.test_url = "http://kalliope.fr/voices/"
|
|
|
+
|
|
|
+ def testGet(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.GET, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testGetRaw(self):
|
|
|
+ expected_content = 'raw line'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.GET, self.test_url, body=expected_content)
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url
|
|
|
+ }
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.content, expected_content)
|
|
|
+
|
|
|
+ def testPost(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.POST, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "POST"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testPut(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.PUT, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "PUT"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testDelete(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.DELETE, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "DELETE"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testOptions(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.OPTIONS, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "OPTIONS"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testHead(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.HEAD, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "HEAD"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.status_code, 200)
|
|
|
+
|
|
|
+ def testPatch(self):
|
|
|
+ expected_content = '{"voice": "nico"}'
|
|
|
+ httpretty.enable()
|
|
|
+ httpretty.register_uri(httpretty.PATCH, self.test_url, body=expected_content)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "PATCH"
|
|
|
+ }
|
|
|
+
|
|
|
+ uri_neuron = Uri(**parameters)
|
|
|
+ self.assertEqual(uri_neuron.text, expected_content)
|
|
|
+
|
|
|
+ def testParameters(self):
|
|
|
+ def run_test(parameters):
|
|
|
+ with self.assertRaises(InvalidParameterException):
|
|
|
+ Uri(**parameters)
|
|
|
+
|
|
|
+ parameters = dict()
|
|
|
+ run_test(parameters)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "headers": 1
|
|
|
+ }
|
|
|
+ run_test(parameters)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "timeout": "string"
|
|
|
+ }
|
|
|
+ run_test(parameters)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "data": "this is a data",
|
|
|
+ "data_from_file": "this is another data"
|
|
|
+ }
|
|
|
+ run_test(parameters)
|
|
|
+
|
|
|
+ parameters = {
|
|
|
+ "url": self.test_url,
|
|
|
+ "method": "NONEXIST"
|
|
|
+ }
|
|
|
+ run_test(parameters)
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ unittest.main()
|