From cec9cc4057ebc9be533089487ee59e019b80c261 Mon Sep 17 00:00:00 2001 From: kevinglinski Date: Tue, 1 May 2018 08:59:01 -0400 Subject: [PATCH] adding oracle param support related to #137 in development branch --- tableaudocumentapi/connection.py | 46 +++++++++++++++++++++++++++++++- test/bvt.py | 7 +++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/tableaudocumentapi/connection.py b/tableaudocumentapi/connection.py index 30343b5..648ef71 100644 --- a/tableaudocumentapi/connection.py +++ b/tableaudocumentapi/connection.py @@ -17,6 +17,8 @@ def __init__(self, connxml): self._username = connxml.get('username') self._authentication = connxml.get('authentication') self._class = connxml.get('class') + self._schema = connxml.get('schema') + self._service = connxml.get('service') self._port = connxml.get('port', None) self._query_band = connxml.get('query-band-spec', None) self._initial_sql = connxml.get('one-time-sql', None) @@ -26,7 +28,7 @@ def __repr__(self): @classmethod def from_attributes(cls, server, dbname, username, dbclass, port=None, query_band=None, - initial_sql=None, authentication=''): + initial_sql=None, authentication='', schema='', service=''): """Creates a new connection that can be added into a Data Source. defaults to `''` which will be treated as 'prompt' by Tableau.""" @@ -35,6 +37,8 @@ def from_attributes(cls, server, dbname, username, dbclass, port=None, query_ban xml.server = server xml.dbname = dbname xml.username = username + xml.schema = schema + xml.service = service xml.dbclass = dbclass xml.port = port xml.query_band = query_band @@ -206,3 +210,43 @@ def initial_sql(self, value): pass else: self._connectionXML.set('one-time-sql', value) + + @property + def schema(self): + """Database schema for the connection. Not the table name.""" + return self._schema + + @schema.setter + def schema(self, value): + """ + Set the connection's schema property. + + Args: + value: New name of the database schema. String. + + Returns: + Nothing. + + """ + self._schema = value + self._connectionXML.set('schema', value) + + @property + def service(self): + """Database service for the connection. Not the table name.""" + return self._service + + @service.setter + def service(self, value): + """ + Set the connection's service property. + + Args: + value: New name of the database service. String. + + Returns: + Nothing. + + """ + self._service = value + self._connectionXML.set('service', value) diff --git a/test/bvt.py b/test/bvt.py index b2fb4af..e4bdad8 100644 --- a/test/bvt.py +++ b/test/bvt.py @@ -112,6 +112,13 @@ def test_can_create_connection_from_scratch(self): self.assertEqual(conn.dbclass, 'mysql') self.assertEqual(conn.authentication, 'd') + def test_can_create_oracle_connection_from_scratch(self): + conn = Connection.from_attributes( + server='a', dbname='b', username='c', dbclass='oracle', schema='d', service='e') + self.assertEqual(conn.server, 'a') + self.assertEqual(conn.schema, 'd') + self.assertEqual(conn.service, 'e') + def test_can_create_datasource_from_connections(self): conn1 = Connection.from_attributes( server='a', dbname='b', username='c', dbclass='mysql', authentication='d') pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy