File tree Expand file tree Collapse file tree 3 files changed +77
-0
lines changed Expand file tree Collapse file tree 3 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 3
3
# Connection - A class for writing connections to Tableau files
4
4
#
5
5
###############################################################################
6
+ from tableaudocumentapi .dbclass import is_valid_dbclass
6
7
7
8
8
9
class Connection (object ):
@@ -111,3 +112,12 @@ def authentication(self):
111
112
@property
112
113
def dbclass (self ):
113
114
return self ._class
115
+
116
+ @dbclass .setter
117
+ def dbclass (self , value ):
118
+
119
+ if not is_valid_dbclass (value ):
120
+ raise AttributeError ("'{}' is not a valid database type" .format (value ))
121
+
122
+ self ._class = value
123
+ self ._connectionXML .set ('dbclass' , value )
Original file line number Diff line number Diff line change
1
+
2
+
3
+ KNOWN_DB_CLASSES = ('msaccess' ,
4
+ 'msolap' ,
5
+ 'bigquery' ,
6
+ 'asterncluster' ,
7
+ 'bigsql' ,
8
+ 'aurora' ,
9
+ 'awshadoophive' ,
10
+ 'dataengine' ,
11
+ 'DataStax' ,
12
+ 'db2' ,
13
+ 'essbase' ,
14
+ 'exasolution' ,
15
+ 'excel' ,
16
+ 'excel-direct' ,
17
+ 'excel-reader' ,
18
+ 'firebird' ,
19
+ 'powerpivot' ,
20
+ 'genericodbc' ,
21
+ 'google-analytics' ,
22
+ 'googlecloudsql' ,
23
+ 'google-sheets' ,
24
+ 'greenplum' ,
25
+ 'saphana' ,
26
+ 'hadoophive' ,
27
+ 'hortonworkshadoophive' ,
28
+ 'maprhadoophive' ,
29
+ 'marklogic' ,
30
+ 'memsql' ,
31
+ 'mysql' ,
32
+ 'netezza' ,
33
+ 'oracle' ,
34
+ 'paraccel' ,
35
+ 'postgres' ,
36
+ 'progressopenedge' ,
37
+ 'redshift' ,
38
+ 'snowflake' ,
39
+ 'spark' ,
40
+ 'splunk' ,
41
+ 'kognitio' ,
42
+ 'sqlserver' ,
43
+ 'salesforce' ,
44
+ 'sapbw' ,
45
+ 'sybasease' ,
46
+ 'sybaseiq' ,
47
+ 'tbio' ,
48
+ 'teradata' ,
49
+ 'vectorwise' ,
50
+ 'vertica' ,
51
+ 'denormalized-cube' ,
52
+ 'csv' ,
53
+ 'textscan' ,
54
+ 'webdata' ,
55
+ 'webdata-direct' ,
56
+ 'cubeextract' )
57
+
58
+
59
+ def is_valid_dbclass (dbclass ):
60
+ return dbclass in KNOWN_DB_CLASSES
Original file line number Diff line number Diff line change @@ -64,6 +64,13 @@ def test_can_write_attributes_to_connection(self):
64
64
self .assertEqual (conn .username , 'bob' )
65
65
self .assertEqual (conn .server , 'mssql2014.test.tsi.lan' )
66
66
67
+ def test_bad_dbclass_rasies_attribute_error (self ):
68
+ conn = Connection (self .connection )
69
+ conn .dbclass = 'sqlserver'
70
+ self .assertEqual (conn .dbclass , 'sqlserver' )
71
+ with self .assertRaises (AttributeError ):
72
+ conn .dbclass = 'NotReal'
73
+
67
74
68
75
class DatasourceModelTests (unittest .TestCase ):
69
76
You can’t perform that action at this time.
0 commit comments