Skip to content

Commit 66edb23

Browse files
authored
Merge pull request #58 from rosette-api/AdvancedMode
RCB-492 Advanced mode
2 parents a4a2644 + f371fa5 commit 66edb23

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[![Build Status](https://travis-ci.org/rosette-api/python.svg?branch=master)](https://travis-ci.org/rosette-api/python)
22

33
# This is the Python client binding for Rosette API.
4+
See the wiki for more information.
45

56
Installation
67
------------

rosette/api.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,7 @@ def __init__(
525525
self.connection_refresh_duration = refresh_duration
526526
self.options = {}
527527
self.customHeaders = {}
528+
self.urlParameters = {}
528529
self.maxPoolSize = 1
529530
self.session = requests.Session()
530531

@@ -549,7 +550,11 @@ def _make_request(self, op, url, data, headers):
549550
rdata = None
550551
response_headers = {}
551552

552-
request = requests.Request(op, url, data=data, headers=headers)
553+
payload = None
554+
if (self.urlParameters):
555+
payload = self.urlParameters
556+
557+
request = requests.Request(op, url, data=data, headers=headers, params=payload)
553558
session = requests.Session()
554559
prepared_request = session.prepare_request(request)
555560

@@ -659,6 +664,37 @@ def clearOptions(self):
659664
"""
660665
self.options.clear()
661666

667+
def setUrlParameter(self, name, value):
668+
"""
669+
Sets a URL parameter
670+
671+
@param name: name of parameter
672+
@param value: value of parameter
673+
"""
674+
if value is None:
675+
self.urlParameters.pop(name, None)
676+
else:
677+
self.urlParameters[name] = value
678+
679+
def getUrlParameter(self, name):
680+
"""
681+
Gets a URL parameter
682+
683+
@param name: name of parameter
684+
685+
@return: value of parameter
686+
"""
687+
if name in self.urlParameters.keys():
688+
return self.urlParameters[name]
689+
else:
690+
return None
691+
692+
def clearUrlParameters(self):
693+
"""
694+
Clears all options
695+
"""
696+
self.urlParameters.clear()
697+
662698
def setCustomHeaders(self, name, value):
663699
"""
664700
Sets custom headers

tests/test_rosette_api.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ def test_option_clear_single_option(api):
8282
api.setOption('test', None)
8383
assert api.getOption('test') is None
8484

85+
# Test the URL parameter set/get/clear
86+
87+
88+
def test_UrlParameter_get_set_clear(api):
89+
api.setUrlParameter('test', 'foo')
90+
assert 'foo' == api.getUrlParameter('test')
91+
92+
api.clearUrlParameters()
93+
assert api.getUrlParameter('test') is None
94+
95+
96+
def test_UrlParameter_clear_single_option(api):
97+
api.setUrlParameter('test', 'foo')
98+
assert 'foo' == api.getUrlParameter('test')
99+
100+
api.setUrlParameter('test', None)
101+
assert api.getUrlParameter('test') is None
102+
85103
# Test the custom header set/get/clear
86104

87105

0 commit comments

Comments
 (0)