def test_handle_request_method_raise_delugeerror(self): json = JSON() def get_session_id(s_id): return s_id self.patch(deluge.ui.web.auth, 'get_session_id', get_session_id) auth_conf = {'session_timeout': 10, 'sessions': {}} auth = Auth(auth_conf) request = Request(MagicMock(), False) request.base = '' auth._create_session(request) methods = yield json.get_remote_methods() # Verify the function has been registered self.assertTrue('testclass.test' in methods) request = MagicMock() request.getCookie = MagicMock(return_value=list(auth.config['sessions'])[0]) json_data = {'method': 'testclass.test', 'id': 0, 'params': []} request.json = json_lib.dumps(json_data) request_id, result, error = json._handle_request(request) result.addCallback(self.fail) def on_error(error): self.assertEqual(error.type, DelugeError) result.addErrback(on_error) yield result
def test_get_request_data(self): req = Request(None, True) headers = req.requestHeaders for key, value in self.sample_req_headers.items(): headers.addRawHeader(key, value) data = self.transport.get_request_data(req) self.assertEqual(data, { 'X-Device-User-Agent': 'ua', 'X-Mxit-Contact': 'contact', 'X-Mxit-Location': { 'cell_id': 'ci', 'city': 'c', 'city_code': 'cc', 'client_features_bitset': 'cfb', 'country_code': 'cc', 'country_name': 'cn', 'network_operator_id': 'noi', 'subdivision_code': 'sc', 'subdivision_name': 'sn', }, 'X-Mxit-Nick': 'nick', 'X-Mxit-Profile': { 'country_code': 'cc', 'date_of_birth': 'dob', 'gender': 'gender', 'language_code': 'lc', 'tariff_plan': 'tariff', }, 'X-Mxit-USERID-R': 'user-id', 'X-Mxit-User-Input': u'<&>', })
def test_formatting(self): """ ``_LogFormatter.json_access_log`` returns a JSON-encoded object with the usual http access log information as properties. """ when = 123456789 json_access_log = _LogFormatter( lambda: datetime.utcfromtimestamp(when), ).json_access_log ip = "192.0.2.1" channel = HTTPChannel() transport = StringTransport(peerAddress=IPv4Address("TCP", ip, 12345)) channel.makeConnection(transport) request = Request(channel) request.gotLength(None) request.requestReceived("GET", "/", "HTTP/1.1") event = json_access_log(datetimeToLogString(when), request) self.assertThat( loads(event), MatchesDict( dict( timestamp=Equals("1973-11-29T21:33:09"), ip=Equals(ip), method=Equals("GET"), uri=Equals("/"), protocol=Equals("HTTP/1.1"), code=Equals(200), length=Equals(None), referrer=Equals(None), agent=Equals(None), )), )
def test_is_mxit_request(self): req = Request(None, True) self.assertFalse(self.transport.is_mxit_request(req)) req.requestHeaders.addRawHeader('X-Mxit-Contact', 'foo') self.assertTrue(self.transport.is_mxit_request(req))
def test_get_request_content_when_missing(self): req = Request(None, True) self.assertEqual(self.transport.get_request_content(req), None)
def test_get_request_content_from_args(self): req = Request(None, True) req.args = {'input': ['bar']} self.assertEqual(self.transport.get_request_content(req), 'bar')
def test_get_quoted_request_content_from_header(self): req = Request(None, True) req.requestHeaders.addRawHeader('X-Mxit-User-Input', 'foo%20bar') self.assertEqual( self.transport.get_request_content(req), 'foo bar')
def test_without_header(self): self.assertIsNone(extract_client(Request(DummyChannel(), False)))
def request_with_session(sid, method="GET"): r = Request(DummyChannel(), False) r.method = method r.requestHeaders = Headers({'Bloc-Session-ID': [sid]}) return r
def txrequest(): tcp_channel = DummyChannel.TCP() http_channel = http.HTTPChannel() http_channel.makeConnection(tcp_channel) return Request(http_channel)