|
10 | 10 |
|
11 | 11 | TABLEAU_93_TDS = '''<?xml version='1.0' encoding='utf-8' ?><datasource formatted-name='sqlserver.17u3bqc16tjtxn14e2hxh19tyvpo' inline='true' source-platform='mac' version='9.3' xmlns:user='http://www.tableausoftware.com/xml/user'><connection authentication='sspi' class='sqlserver' dbname='TestV1' odbc-native-protocol='yes' one-time-sql='' server='mssql2012.test.tsi.lan' username=''></connection></datasource>'''
|
12 | 12 |
|
13 |
| -TABLEAU_10_TDS = '''<?xml version='1.0' encoding='utf-8' ?><datasources><datasource caption='xy+ (Multiple Connections)' inline='true' name='federated.1s4nxn20cywkdv13ql0yk0g1mpdx' version='10.0'><connection class='federated'><named-connections><named-connection caption='mysql55.test.tsi.lan' name='mysql.1ewmkrw0mtgsev1dnurma1blii4x'><connection class='mysql' dbname='testv1' odbc-native-protocol='yes' port='3306' server='mysql55.test.tsi.lan' source-charset='' username='test' /></named-connection><named-connection caption='mssql2012.test.tsi.lan' name='sqlserver.1erdwp01uqynlb14ul78p0haai2r'><connection authentication='sqlserver' class='sqlserver' dbname='TestV1' odbc-native-protocol='yes' one-time-sql='' server='mssql2012.test.tsi.lan' username='test' /></named-connection></named-connections></connection></datasource></datasources>''' |
| 13 | +TABLEAU_10_TDS = '''<?xml version='1.0' encoding='utf-8' ?><datasource caption='xy+ (Multiple Connections)' inline='true' name='federated.1s4nxn20cywkdv13ql0yk0g1mpdx' version='10.0'><connection class='federated'><named-connections><named-connection caption='mysql55.test.tsi.lan' name='mysql.1ewmkrw0mtgsev1dnurma1blii4x'><connection class='mysql' dbname='testv1' odbc-native-protocol='yes' port='3306' server='mysql55.test.tsi.lan' source-charset='' username='test' /></named-connection><named-connection caption='mssql2012.test.tsi.lan' name='sqlserver.1erdwp01uqynlb14ul78p0haai2r'><connection authentication='sqlserver' class='sqlserver' dbname='TestV1' odbc-native-protocol='yes' one-time-sql='' server='mssql2012.test.tsi.lan' username='test' /></named-connection></named-connections></connection></datasource>''' |
14 | 14 |
|
15 | 15 | TABLEAU_10_WORKBOOK = '''<?xml version='1.0' encoding='utf-8' ?><workbook source-build='0.0.0 (0000.16.0510.1300)' source-platform='mac' version='10.0' xmlns:user='http://www.tableausoftware.com/xml/user'><datasources><datasource caption='xy+ (Multiple Connections)' inline='true' name='federated.1s4nxn20cywkdv13ql0yk0g1mpdx' version='10.0'><connection class='federated'><named-connections><named-connection caption='mysql55.test.tsi.lan' name='mysql.1ewmkrw0mtgsev1dnurma1blii4x'><connection class='mysql' dbname='testv1' odbc-native-protocol='yes' port='3306' server='mysql55.test.tsi.lan' source-charset='' username='test' /></named-connection><named-connection caption='mssql2012.test.tsi.lan' name='sqlserver.1erdwp01uqynlb14ul78p0haai2r'><connection authentication='sqlserver' class='sqlserver' dbname='TestV1' odbc-native-protocol='yes' one-time-sql='' server='mssql2012.test.tsi.lan' username='test' /></named-connection></named-connections></connection></datasource></datasources></workbook>'''
|
16 | 16 |
|
@@ -58,13 +58,16 @@ def test_can_read_attributes_from_connection(self):
|
58 | 58 | self.assertEqual(conn.dbname, 'TestV1')
|
59 | 59 | self.assertEqual(conn.username, '')
|
60 | 60 | self.assertEqual(conn.server, 'mssql2012.test.tsi.lan')
|
| 61 | + self.assertEqual(conn.dbclass, 'sqlserver') |
| 62 | + self.assertEqual(conn.authentication, 'sspi') |
61 | 63 |
|
62 | 64 | def test_can_write_attributes_to_connection(self):
|
63 | 65 | conn = Connection(self.connection)
|
64 | 66 | conn.dbname = 'BubblesInMyDrink'
|
65 | 67 | conn.server = 'mssql2014.test.tsi.lan'
|
| 68 | + conn.username = 'bob' |
66 | 69 | self.assertEqual(conn.dbname, 'BubblesInMyDrink')
|
67 |
| - self.assertEqual(conn.username, '') |
| 70 | + self.assertEqual(conn.username, 'bob') |
68 | 71 | self.assertEqual(conn.server, 'mssql2014.test.tsi.lan')
|
69 | 72 |
|
70 | 73 |
|
@@ -109,6 +112,36 @@ def test_save_has_xml_declaration(self):
|
109 | 112 | first_line, "<?xml version='1.0' encoding='utf-8'?>")
|
110 | 113 |
|
111 | 114 |
|
| 115 | +class DatasourceModelV10Tests(unittest.TestCase): |
| 116 | + |
| 117 | + def setUp(self): |
| 118 | + self.tds_file = io.FileIO('test10.tds', 'w') |
| 119 | + self.tds_file.write(TABLEAU_10_TDS.encode('utf8')) |
| 120 | + self.tds_file.seek(0) |
| 121 | + |
| 122 | + def tearDown(self): |
| 123 | + self.tds_file.close() |
| 124 | + os.unlink(self.tds_file.name) |
| 125 | + |
| 126 | + def test_can_extract_datasource_from_file(self): |
| 127 | + ds = Datasource.from_file(self.tds_file.name) |
| 128 | + self.assertEqual(ds.name, 'federated.1s4nxn20cywkdv13ql0yk0g1mpdx') |
| 129 | + self.assertEqual(ds.version, '10.0') |
| 130 | + |
| 131 | + def test_can_extract_connection(self): |
| 132 | + ds = Datasource.from_file(self.tds_file.name) |
| 133 | + self.assertIsInstance(ds.connections[0], Connection) |
| 134 | + self.assertIsInstance(ds.connections, list) |
| 135 | + |
| 136 | + def test_can_save_tds(self): |
| 137 | + original_tds = Datasource.from_file(self.tds_file.name) |
| 138 | + original_tds.connections[0].dbname = 'newdb.test.tsi.lan' |
| 139 | + original_tds.save() |
| 140 | + |
| 141 | + new_tds = Datasource.from_file(self.tds_file.name) |
| 142 | + self.assertEqual(new_tds.connections[0].dbname, 'newdb.test.tsi.lan') |
| 143 | + |
| 144 | + |
112 | 145 | class WorkbookModelTests(unittest.TestCase):
|
113 | 146 |
|
114 | 147 | def setUp(self):
|
|
0 commit comments