Skip to content

Commit f6510d9

Browse files
committed
First run at new system
1 parent cbbfa0b commit f6510d9

File tree

5 files changed

+81
-62
lines changed

5 files changed

+81
-62
lines changed

setup.py

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,8 @@
11
try:
2-
from setuptools import setup, Command
2+
from setuptools import setup
33
except ImportError:
44
from distutils.core import setup
55

6-
7-
class LiveTestCommand(Command):
8-
9-
description = "Run tests against a live server"
10-
11-
# [('long', 'short', 'description')]
12-
user_options = [('server=', 's', "Server to connect to"),
13-
('site=', 't', "Sute to connect to"),
14-
('username=', 'u', "Username for tests (system admin)")]
15-
16-
def initialize_options(self):
17-
self.server = None
18-
self.username = None
19-
self.password = None
20-
self.site = None
21-
22-
def finalize_options(self):
23-
if self.server is None:
24-
self.server = "DEFAULT SERVER"
25-
if self.username is None:
26-
self.username = "DEFAULT USERNAME"
27-
if self.site is None:
28-
self.site = ""
29-
30-
import getpass
31-
self.password = getpass.getpass()
32-
33-
def run(self):
34-
import subprocess as sp
35-
import os
36-
37-
with open(os.devnull, 'wb') as silent:
38-
sp.check_call(['python', 'smoke.py', self.server, self.username, self.password, self.site], stdout=silent)
39-
40-
416
setup(
427
name='tableauserverclient',
438
version='0.3',
@@ -54,6 +19,5 @@ def run(self):
5419
],
5520
tests_require=[
5621
'requests-mock>=1.0,<1.1a0'
57-
],
58-
cmdclass={'livetest': LiveTestCommand}
22+
]
5923
)

smoke.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

smoke/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . smoke import *

smoke/smoke.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import os
2+
import unittest
3+
4+
import tableauserverclient as TSC
5+
6+
class SignInSignOutSmokeTest(unittest.TestCase):
7+
8+
def setUp(self):
9+
self.username = os.environ.get('TABLEAU_USERNAME', None)
10+
self.server = os.environ.get('TABLEAU_SERVER', None)
11+
self.password = os.environ.get('TABLEAU_PASSWORD', None)
12+
self.site_id = os.environ.get('TABLEAU_SITE_ID', '')
13+
14+
if not (self.username and self.server and self.password):
15+
raise unittest.SkipTest("Environment variables must be set when run from inside UnitTest")
16+
17+
18+
def test_sign_in_sign_out(self):
19+
20+
authz = TSC.TableauAuth(self.username, self.password)
21+
server = TSC.Server(self.server)
22+
23+
server.auth.sign_in(authz)
24+
server.auth.sign_out()
25+
26+
def test_sign_in_get_sign_out(self):
27+
28+
authz = TSC.TableauAuth(self.username, self.password)
29+
server = TSC.Server(self.server)
30+
31+
server.auth.sign_in(authz)
32+
33+
for w in TSC.Pager(server.workbooks):
34+
print(w.name)
35+
36+
for u in TSC.Pager(server.users):
37+
print(u.name)
38+
39+
for p in TSC.Pager(server.projects):
40+
print(p.name)
41+
42+
for h in TSC.Pager(server.schedules):
43+
print(h.name)
44+
45+
server.auth.sign_out()
46+
47+
if __name__ == "__main__":
48+
import argparse
49+
import sys
50+
51+
parser = argparse.ArgumentParser(description='Initialize a server with content.')
52+
parser.add_argument('--server', '-s', default=None, help='server address')
53+
parser.add_argument('--site-id', '-si', default=None, help='site to use')
54+
parser.add_argument('--username', '-u', default=None, help='username to sign into server')
55+
parser.add_argument('unittest_args', nargs='*')
56+
args = parser.parse_args()
57+
58+
59+
# This could probably be made smarter, but after trying too hard
60+
# to be clever, I opted for this simple and readable approach.
61+
# This will merge whatever is provided in the command line into
62+
# your environment variables
63+
64+
if os.environ.get('TABLEAU_SERVER', None) is None:
65+
os.environ['TABLEAU_SERVER'] = args.server
66+
67+
if os.environ.get('TABLEAU_USERNAME', None) is None:
68+
os.environ['TABLEAU_USERNAME'] = args.username
69+
70+
if os.environ.get('TABLEAU_PASSWORD', None) is None:
71+
import getpass
72+
password = getpass.getpass("Password: ")
73+
os.environ['TABLEAU_PASSWORD'] = password
74+
75+
# Makes unittest and standalone play nice see http://stackoverflow.com/questions/1029891/
76+
sys.argv[1:] = args.unittest_args
77+
unittest.main()

tableauserverclient/server/server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def _clear_auth(self):
5151
self._site_id = None
5252
self._user_id = None
5353
self._auth_token = None
54+
self._session.close()
5455
self._session = requests.Session()
5556

5657
def _set_auth(self, site_id, user_id, auth_token):

0 commit comments

Comments
 (0)