Merge lp:~pedronis/u1db/streamline-testing-servers-creation into lp:u1db

Proposed by Samuele Pedroni
Status: Merged
Approved by: Samuele Pedroni
Approved revision: 421
Merged at revision: 416
Proposed branch: lp:~pedronis/u1db/streamline-testing-servers-creation
Merge into: lp:u1db
Diff against target: 130 lines (+23/-25)
5 files modified
u1db/tests/__init__.py (+12/-14)
u1db/tests/commandline/test_client.py (+4/-3)
u1db/tests/test_http_client.py (+2/-3)
u1db/tests/test_https.py (+2/-3)
u1db/tests/test_test_infrastructure.py (+3/-2)
To merge this branch: bzr merge lp:~pedronis/u1db/streamline-testing-servers-creation
Reviewer Review Type Date Requested Status
Samuele Pedroni Approve
Review via email: mp+127492@code.launchpad.net

Commit message

streamline testing servers creation, let them compute/provide directly what they consider their base_url

Description of the change

streamline testing servers creation, let them compute/provide directly what they consider their base_url

To post a comment you must log in.
Revision history for this message
Samuele Pedroni (pedronis) wrote :

affects only tests

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'u1db/tests/__init__.py'
2--- u1db/tests/__init__.py 2012-09-25 20:04:08 +0000
3+++ u1db/tests/__init__.py 2012-10-02 14:00:32 +0000
4@@ -344,7 +344,8 @@
5 @staticmethod
6 def server_def():
7 # hook point
8- # should return (ServerClass, "shutdown method name", "url_scheme")
9+ # should return (make_server() -> (server, base_url),
10+ # "shutdown method name")
11 class _RequestHandler(simple_server.WSGIRequestHandler):
12 def log_request(*args):
13 pass # suppress
14@@ -352,13 +353,11 @@
15 def make_server(host_port, application):
16 assert application, "forgot to override make_app(_with_state)?"
17 srv = simple_server.WSGIServer(host_port, _RequestHandler)
18- # patch the value in if it's None
19- if getattr(application, 'base_url', 1) is None:
20- application.base_url = "http://%s:%s" % srv.server_address
21+ base_url = "http://%s:%s" % srv.server_address
22 srv.set_app(application)
23- return srv
24+ return srv, base_url
25
26- return make_server, "shutdown", "http"
27+ return make_server, "shutdown"
28
29 @staticmethod
30 def make_app_with_state(state):
31@@ -374,15 +373,15 @@
32 super(TestCaseWithServer, self).setUp()
33 self.server = self.server_thread = None
34
35- @property
36- def url_scheme(self):
37- return self.server_def()[-1]
38-
39 def startServer(self):
40 server_def = self.server_def()
41- server_class, shutdown_meth, _ = server_def
42+ server_maker, shutdown_meth = server_def
43 application = self.make_app()
44- self.server = server_class(('127.0.0.1', 0), application)
45+ self.server, self.base_url = server_maker(('127.0.0.1', 0),
46+ application)
47+ # patch the value in if it's None
48+ if getattr(application, 'base_url', 1) is None:
49+ application.base_url = self.base_url
50 self.server_thread = threading.Thread(target=self.server.serve_forever,
51 kwargs=dict(poll_interval=0.01))
52 self.server_thread.start()
53@@ -390,10 +389,9 @@
54 self.addCleanup(getattr(self.server, shutdown_meth))
55
56 def getURL(self, path=None):
57- host, port = self.server.server_address
58 if path is None:
59 path = ''
60- return '%s://%s:%s/%s' % (self.url_scheme, host, port, path)
61+ return '%s/%s' % (self.base_url, path)
62
63
64 def socket_pair():
65
66=== modified file 'u1db/tests/commandline/test_client.py'
67--- u1db/tests/commandline/test_client.py 2012-09-24 09:36:54 +0000
68+++ u1db/tests/commandline/test_client.py 2012-10-02 14:00:32 +0000
69@@ -875,9 +875,10 @@
70
71 def server_def(self):
72 def make_server(host_port, _application):
73- return serve.make_server(host_port[0], host_port[1],
74- self.working_dir)
75- return make_server, "shutdown", "http"
76+ srv = serve.make_server(host_port[0], host_port[1],
77+ self.working_dir)
78+ return srv, "http://%s:%d" % srv.server_address
79+ return make_server, "shutdown"
80
81 def setUp(self):
82 super(TestHTTPIntegration, self).setUp()
83
84=== modified file 'u1db/tests/test_http_client.py'
85--- u1db/tests/test_http_client.py 2012-09-24 15:34:16 +0000
86+++ u1db/tests/test_http_client.py 2012-10-02 14:00:32 +0000
87@@ -143,9 +143,8 @@
88 self.assertIs(None, cli._conn)
89
90 def test_parse_url(self):
91- cli = http_client.HTTPClientBase(
92- '%s://127.0.0.1:12345/' % self.url_scheme)
93- self.assertEqual(self.url_scheme, cli._url.scheme)
94+ cli = http_client.HTTPClientBase('http://127.0.0.1:12345/')
95+ self.assertEqual('http', cli._url.scheme)
96 self.assertEqual('127.0.0.1', cli._url.hostname)
97 self.assertEqual(12345, cli._url.port)
98 self.assertEqual('/', cli._url.path)
99
100=== modified file 'u1db/tests/test_https.py'
101--- u1db/tests/test_https.py 2012-09-24 09:36:54 +0000
102+++ u1db/tests/test_https.py 2012-10-02 14:00:32 +0000
103@@ -39,9 +39,8 @@
104 srv.close_request(req)
105
106 srv.shutdown_request = shutdown_request
107- application.base_url = "https://localhost:%s" % srv.server_address[1]
108- return srv
109- return make_server, "shutdown", "https"
110+ return srv, "https://localhost:%s" % srv.server_address[1]
111+ return make_server, "shutdown"
112
113
114 def oauth_https_sync_target(test, host, path):
115
116=== modified file 'u1db/tests/test_test_infrastructure.py'
117--- u1db/tests/test_test_infrastructure.py 2012-09-24 09:36:54 +0000
118+++ u1db/tests/test_test_infrastructure.py 2012-10-02 14:00:32 +0000
119@@ -32,8 +32,9 @@
120 def server_def():
121 def make_server(host_port, application):
122 assert application == "app"
123- return simple_server.WSGIServer(host_port, None)
124- return (make_server, "shutdown", "http")
125+ srv =simple_server.WSGIServer(host_port, None)
126+ return srv, "http://%s:%s" % srv.server_address
127+ return (make_server, "shutdown")
128
129 def test_getURL(self):
130 self.startServer()

Subscribers

People subscribed via source and target branches