Skip to content

Commit d53b39d

Browse files
author
KP
committed
add basic proxy server tests
1 parent 3e820b2 commit d53b39d

File tree

2 files changed

+132
-13
lines changed

2 files changed

+132
-13
lines changed

tests/tests_proxy.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#! /opt/local/bin/python
2+
import unittest
3+
import sys
4+
from mock import patch, Mock
5+
import base
6+
import shotgun_api3 as api
7+
8+
9+
class ServerConnectionTest(base.TestBase):
10+
'''Tests for server connection'''
11+
def setUp(self):
12+
super(ServerConnectionTest, self).setUp()
13+
14+
def test_connection(self):
15+
'''Tests server connects and returns nothing'''
16+
result = self.sg.connect()
17+
self.assertEqual(result, None)
18+
19+
def test_proxy_info(self):
20+
'''check proxy value depending http_proxy setting in config'''
21+
self.sg.connect()
22+
if self.config.http_proxy:
23+
sys.stderr.write("[WITH PROXY] ")
24+
self.assertTrue(isinstance(self.sg._connection.proxy_info,
25+
api.lib.httplib2.ProxyInfo))
26+
else:
27+
sys.stderr.write("[NO PROXY] ")
28+
self.assertEqual(self.sg._connection.proxy_info, False)
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+

tests/tests_unit.py

Lines changed: 94 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,105 @@
55

66
class TestShotgunInit(unittest.TestCase):
77
'''Test case for Shotgun.__init__'''
8-
9-
def test_http_proxy(self):
10-
'''test_http_proxy tests setting of http proxy attributes.'''
11-
server_path = 'http://server_path'
12-
script_name = 'script_name'
13-
api_key = 'api_key'
14-
proxy_server = 'somedomain.com'
15-
proxy_port = 3000
16-
http_proxy = 'https://%s:%s/somepage.html' % (proxy_server, proxy_port)
17-
18-
sg = api.Shotgun(server_path,
19-
script_name,
20-
api_key,
8+
def setUp(self):
9+
self.server_path = 'http://server_path'
10+
self.script_name = 'script_name'
11+
self.api_key = 'api_key'
12+
13+
# Proxy Server Tests
14+
def test_http_proxy_server(self):
15+
proxy_server = "someserver.com"
16+
http_proxy = proxy_server
17+
sg = api.Shotgun(self.server_path,
18+
self.script_name,
19+
self.api_key,
20+
http_proxy=http_proxy,
21+
connect=False)
22+
self.assertEquals(sg.config.proxy_server, proxy_server)
23+
self.assertEquals(sg.config.proxy_port, 8080)
24+
proxy_server = "123.456.789.012"
25+
http_proxy = proxy_server
26+
sg = api.Shotgun(self.server_path,
27+
self.script_name,
28+
self.api_key,
29+
http_proxy=http_proxy,
30+
connect=False)
31+
self.assertEquals(sg.config.proxy_server, proxy_server)
32+
self.assertEquals(sg.config.proxy_port, 8080)
33+
34+
def test_http_proxy_server_and_port(self):
35+
proxy_server = "someserver.com"
36+
proxy_port = 1234
37+
http_proxy = "%s:%d" % (proxy_server, proxy_port)
38+
sg = api.Shotgun(self.server_path,
39+
self.script_name,
40+
self.api_key,
41+
http_proxy=http_proxy,
42+
connect=False)
43+
self.assertEquals(sg.config.proxy_server, proxy_server)
44+
self.assertEquals(sg.config.proxy_port, proxy_port)
45+
proxy_server = "123.456.789.012"
46+
proxy_port = 1234
47+
http_proxy = "%s:%d" % (proxy_server, proxy_port)
48+
sg = api.Shotgun(self.server_path,
49+
self.script_name,
50+
self.api_key,
2151
http_proxy=http_proxy,
2252
connect=False)
2353
self.assertEquals(sg.config.proxy_server, proxy_server)
2454
self.assertEquals(sg.config.proxy_port, proxy_port)
2555

56+
def test_http_proxy_server_and_port_with_authentication(self):
57+
proxy_server = "someserver.com"
58+
proxy_port = 1234
59+
proxy_user = "user"
60+
proxy_pass = "password"
61+
http_proxy = "%s:%s@%s:%d" % (proxy_user, proxy_pass, proxy_server,
62+
proxy_port)
63+
sg = api.Shotgun(self.server_path,
64+
self.script_name,
65+
self.api_key,
66+
http_proxy=http_proxy,
67+
connect=False)
68+
self.assertEquals(sg.config.proxy_server, proxy_server)
69+
self.assertEquals(sg.config.proxy_port, proxy_port)
70+
self.assertEquals(sg.config.proxy_user, proxy_user)
71+
self.assertEquals(sg.config.proxy_pass, proxy_pass)
72+
proxy_server = "123.456.789.012"
73+
proxy_port = 1234
74+
proxy_user = "user"
75+
proxy_pass = "password"
76+
http_proxy = "%s:%s@%s:%d" % (proxy_user, proxy_pass, proxy_server,
77+
proxy_port)
78+
sg = api.Shotgun(self.server_path,
79+
self.script_name,
80+
self.api_key,
81+
http_proxy=http_proxy,
82+
connect=False)
83+
self.assertEquals(sg.config.proxy_server, proxy_server)
84+
self.assertEquals(sg.config.proxy_port, proxy_port)
85+
self.assertEquals(sg.config.proxy_user, proxy_user)
86+
self.assertEquals(sg.config.proxy_pass, proxy_pass)
87+
88+
def test_malformatted_proxy_info(self):
89+
proxy_server = "someserver.com"
90+
proxy_port = 1234
91+
proxy_user = "user"
92+
proxy_pass = "password"
93+
http_proxy = "%s:%s@%s:%d" % (proxy_user, proxy_pass, proxy_server,
94+
proxy_port)
95+
conn_info = {
96+
'base_url': self.server_path,
97+
'script_name': self.script_name,
98+
'api_key': self.api_key,
99+
'connect': False,
100+
}
101+
conn_info['http_proxy'] = 'http://someserver.com'
102+
self.assertRaises(ValueError, api.Shotgun, **conn_info)
103+
conn_info['http_proxy'] = 'user@someserver.com'
104+
self.assertRaises(ValueError, api.Shotgun, **conn_info)
105+
conn_info['http_proxy'] = 'someserver.com:1234:5678'
106+
self.assertRaises(ValueError, api.Shotgun, **conn_info)
26107

27108
class TestShotgunSummarize(unittest.TestCase):
28109
'''Test case for _create_summary_request function and parameter

0 commit comments

Comments
 (0)