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
=== modified file 'u1db/tests/__init__.py'
--- u1db/tests/__init__.py 2012-09-25 20:04:08 +0000
+++ u1db/tests/__init__.py 2012-10-02 14:00:32 +0000
@@ -344,7 +344,8 @@
344 @staticmethod344 @staticmethod
345 def server_def():345 def server_def():
346 # hook point346 # hook point
347 # should return (ServerClass, "shutdown method name", "url_scheme")347 # should return (make_server() -> (server, base_url),
348 # "shutdown method name")
348 class _RequestHandler(simple_server.WSGIRequestHandler):349 class _RequestHandler(simple_server.WSGIRequestHandler):
349 def log_request(*args):350 def log_request(*args):
350 pass # suppress351 pass # suppress
@@ -352,13 +353,11 @@
352 def make_server(host_port, application):353 def make_server(host_port, application):
353 assert application, "forgot to override make_app(_with_state)?"354 assert application, "forgot to override make_app(_with_state)?"
354 srv = simple_server.WSGIServer(host_port, _RequestHandler)355 srv = simple_server.WSGIServer(host_port, _RequestHandler)
355 # patch the value in if it's None356 base_url = "http://%s:%s" % srv.server_address
356 if getattr(application, 'base_url', 1) is None:
357 application.base_url = "http://%s:%s" % srv.server_address
358 srv.set_app(application)357 srv.set_app(application)
359 return srv358 return srv, base_url
360359
361 return make_server, "shutdown", "http"360 return make_server, "shutdown"
362361
363 @staticmethod362 @staticmethod
364 def make_app_with_state(state):363 def make_app_with_state(state):
@@ -374,15 +373,15 @@
374 super(TestCaseWithServer, self).setUp()373 super(TestCaseWithServer, self).setUp()
375 self.server = self.server_thread = None374 self.server = self.server_thread = None
376375
377 @property
378 def url_scheme(self):
379 return self.server_def()[-1]
380
381 def startServer(self):376 def startServer(self):
382 server_def = self.server_def()377 server_def = self.server_def()
383 server_class, shutdown_meth, _ = server_def378 server_maker, shutdown_meth = server_def
384 application = self.make_app()379 application = self.make_app()
385 self.server = server_class(('127.0.0.1', 0), application)380 self.server, self.base_url = server_maker(('127.0.0.1', 0),
381 application)
382 # patch the value in if it's None
383 if getattr(application, 'base_url', 1) is None:
384 application.base_url = self.base_url
386 self.server_thread = threading.Thread(target=self.server.serve_forever,385 self.server_thread = threading.Thread(target=self.server.serve_forever,
387 kwargs=dict(poll_interval=0.01))386 kwargs=dict(poll_interval=0.01))
388 self.server_thread.start()387 self.server_thread.start()
@@ -390,10 +389,9 @@
390 self.addCleanup(getattr(self.server, shutdown_meth))389 self.addCleanup(getattr(self.server, shutdown_meth))
391390
392 def getURL(self, path=None):391 def getURL(self, path=None):
393 host, port = self.server.server_address
394 if path is None:392 if path is None:
395 path = ''393 path = ''
396 return '%s://%s:%s/%s' % (self.url_scheme, host, port, path)394 return '%s/%s' % (self.base_url, path)
397395
398396
399def socket_pair():397def socket_pair():
400398
=== modified file 'u1db/tests/commandline/test_client.py'
--- u1db/tests/commandline/test_client.py 2012-09-24 09:36:54 +0000
+++ u1db/tests/commandline/test_client.py 2012-10-02 14:00:32 +0000
@@ -875,9 +875,10 @@
875875
876 def server_def(self):876 def server_def(self):
877 def make_server(host_port, _application):877 def make_server(host_port, _application):
878 return serve.make_server(host_port[0], host_port[1],878 srv = serve.make_server(host_port[0], host_port[1],
879 self.working_dir)879 self.working_dir)
880 return make_server, "shutdown", "http"880 return srv, "http://%s:%d" % srv.server_address
881 return make_server, "shutdown"
881882
882 def setUp(self):883 def setUp(self):
883 super(TestHTTPIntegration, self).setUp()884 super(TestHTTPIntegration, self).setUp()
884885
=== modified file 'u1db/tests/test_http_client.py'
--- u1db/tests/test_http_client.py 2012-09-24 15:34:16 +0000
+++ u1db/tests/test_http_client.py 2012-10-02 14:00:32 +0000
@@ -143,9 +143,8 @@
143 self.assertIs(None, cli._conn)143 self.assertIs(None, cli._conn)
144144
145 def test_parse_url(self):145 def test_parse_url(self):
146 cli = http_client.HTTPClientBase(146 cli = http_client.HTTPClientBase('http://127.0.0.1:12345/')
147 '%s://127.0.0.1:12345/' % self.url_scheme)147 self.assertEqual('http', cli._url.scheme)
148 self.assertEqual(self.url_scheme, cli._url.scheme)
149 self.assertEqual('127.0.0.1', cli._url.hostname)148 self.assertEqual('127.0.0.1', cli._url.hostname)
150 self.assertEqual(12345, cli._url.port)149 self.assertEqual(12345, cli._url.port)
151 self.assertEqual('/', cli._url.path)150 self.assertEqual('/', cli._url.path)
152151
=== modified file 'u1db/tests/test_https.py'
--- u1db/tests/test_https.py 2012-09-24 09:36:54 +0000
+++ u1db/tests/test_https.py 2012-10-02 14:00:32 +0000
@@ -39,9 +39,8 @@
39 srv.close_request(req)39 srv.close_request(req)
4040
41 srv.shutdown_request = shutdown_request41 srv.shutdown_request = shutdown_request
42 application.base_url = "https://localhost:%s" % srv.server_address[1]42 return srv, "https://localhost:%s" % srv.server_address[1]
43 return srv43 return make_server, "shutdown"
44 return make_server, "shutdown", "https"
4544
4645
47def oauth_https_sync_target(test, host, path):46def oauth_https_sync_target(test, host, path):
4847
=== modified file 'u1db/tests/test_test_infrastructure.py'
--- u1db/tests/test_test_infrastructure.py 2012-09-24 09:36:54 +0000
+++ u1db/tests/test_test_infrastructure.py 2012-10-02 14:00:32 +0000
@@ -32,8 +32,9 @@
32 def server_def():32 def server_def():
33 def make_server(host_port, application):33 def make_server(host_port, application):
34 assert application == "app"34 assert application == "app"
35 return simple_server.WSGIServer(host_port, None)35 srv =simple_server.WSGIServer(host_port, None)
36 return (make_server, "shutdown", "http")36 return srv, "http://%s:%s" % srv.server_address
37 return (make_server, "shutdown")
3738
38 def test_getURL(self):39 def test_getURL(self):
39 self.startServer()40 self.startServer()

Subscribers

People subscribed via source and target branches