8000 adding oracle param support related to #137 (#149) · fossabot/document-api-python@5d1a81e · GitHub
[go: up one dir, main page]

Skip to content

Commit 5d1a81e

Browse files
Kevin Glinskit8y8
Kevin Glinski
authored andcommitted
adding oracle param support related to tableau#137 (tableau#149)
* adding oracle param support related to tableau#137 * fix copy paste error
1 parent 4d39126 commit 5d1a81e

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

tableaudocumentapi/connection.py

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ def __init__(self, connxml):
1616
self._server = connxml.get('server')
1717
self._username = connxml.get('username')
1818
self._authentication = connxml.get('authentication')
19+
self._schema = connxml.get('schema')
20+
self._service = connxml.get('service')
1921
self._class = connxml.get('class')
2022
self._port = connxml.get('port', None)
2123
self._query_band = connxml.get('query-band-spec', None)
@@ -26,7 +28,7 @@ def __repr__(self):
2628

2729
@classmethod
2830
def from_attributes(cls, server, dbname, username, dbclass, port=None, query_band=None,
29-
initial_sql=None, authentication=''):
31+
initial_sql=None, authentication='', schema='', service=''):
3032
"""Creates a new connection that can be added into a Data Source.
3133
defaults to `''` which will be treated as 'prompt' by Tableau."""
3234

@@ -35,6 +37,8 @@ def from_attributes(cls, server, dbname, username, dbclass, port=None, query_ban
3537
xml.server = server
3638
xml.dbname = dbname
3739
xml.username = username
40+
xml.schema = schema
41+
xml.service = service
3842
xml.dbclass = dbclass
3943
xml.port = port
4044
xml.query_band = query_band
@@ -206,3 +210,43 @@ def initial_sql(self, value):
206210
pass
207211
else:
208212
self._connectionXML.set('one-time-sql', value)
213+
214+
@property
215+
def schema(self):
216+
"""Database schema for the connection. Not the table name."""
217+
return self._schema
218+
219+
@schema.setter
220+
def schema(self, value):
221+
"""
222+
Set the connection's schema property.
223+
224+
Args:
225+
value: New name of the database schema. String.
226+
227+
Returns:
228+
Nothing.
229+
230+
"""
231+
self._schema = value
232+
self._connectionXML.set('schema', value)
233+
234+
@property
235+
def service(self):
236+
"""Database service for the connection. Not the table name."""
237+
return self._service
238+
239+
@service.setter
240+
def service(self, value):
241+
"""
242+
Set the connection's service property.
243+
244+
Args:
245+
value: New name of the database service. String.
246+
247+
Returns:
248+
Nothing.
249+
250+
"""
251+
self._service = value
252+
self._connectionXML.set('service', value)

test/bvt.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@ def test_can_create_connection_from_scratch(self):
112112
self.assertEqual(conn.dbclass, 'mysql')
113113
self.assertEqual(conn.authentication, 'd')
114114

115+
def test_can_create_oracle_connection_from_scratch(self):
116+
conn = Connection.from_attributes(
117+
server='a', dbname='b', username='c', dbclass='oracle', schema='d', service='e')
118+
self.assertEqual(conn.server, 'a')
119+
self.assertEqual(conn.schema, 'd')
120+
self.assertEqual(conn.service, 'e')
121+
115122
def test_can_create_datasource_from_connections(self):
116123
conn1 = Connection.from_attributes(
117124
server='a', dbname='b', username='c', dbclass='mysql', authentication='d')

0 commit comments

Comments
 (0)
0