1919import unittest
2020
2121from ubersmith_remote_module_server .api import Api
22+ from ubersmith_remote_module_server .exceptions import RemoteModuleException
2223
2324
2425class ApiTest (unittest .TestCase ):
@@ -66,6 +67,26 @@ def test_execute_method_returns_string(self):
6667
6768 self .router .invoke_method .assert_called_with (module = self .module2 , method = 'remote_method' , params = [], env = {'variable1' : 'value1' }, callback = {})
6869 assert_that (json .loads (output .data .decode (output .charset )), is_ ('simple string' ))
70+ assert_that (output .status_code , is_ (200 ))
71+
72+ def test_execute_method_raise_an_exception (self ):
73+ self .router .invoke_method .side_effect = RemoteModuleException ('Some Error' )
74+ output = self .api_client .post (self .generate_module_path ('module2' ),
75+ headers = {'Content-Type' : 'application/json' },
76+ data = json .dumps (
77+ {
78+ "method" : "remote_method" ,
79+ "params" : [],
80+ "env" : {
81+ "variable1" : "value1"
82+ },
83+ "callback" : {}
84+ }
85+ ))
86+
87+ self .router .invoke_method .assert_called_with (module = self .module2 , method = 'remote_method' , params = [], env = {'variable1' : 'value1' }, callback = {})
88+ assert_that (json .loads (output .data .decode (output .charset )), is_ ('Some Error' ))
89+ assert_that (output .status_code , is_ (500 ))
6990
7091 def test_execute_method_returns_list (self ):
7192 self .router .invoke_method .return_value = ['a' , 'b' , 'c' ]
@@ -84,6 +105,7 @@ def test_execute_method_returns_list(self):
84105
85106 self .router .invoke_method .assert_called_with (module = self .module2 , method = 'remote_method' , params = [], env = {'variable1' : 'value1' }, callback = {})
86107 assert_that (json .loads (output .data .decode (output .charset )), is_ (['a' , 'b' , 'c' ]))
108+ assert_that (output .status_code , is_ (200 ))
87109
88110 def test_invoking_unknown_module_returns_a_404 (self ):
89111 output = self .api_client .post (self .generate_module_path ('new_module' ),
@@ -106,6 +128,7 @@ def test_listing_unknown_module_returns_a_404(self):
106128
107129 assert_that (output .status_code , is_ (404 ))
108130
131+
109132class NoTrailingSlashApiTest (ApiTest ):
110133 def generate_module_path (self , module_name ):
111134 return '/{0}' .format (module_name )
0 commit comments