port = int(sys.argv[1])
else:
port = 0
- server_address = ('127.0.0.1', port)
+server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
-sa = httpd.socket.getsockname()
-print "Serving HTTP on", sa[0], "port", sa[1], "..."
+ip, port = httpd.socket.getsockname()[0:2]
+print ("Server started, http://%s:%s/" % (ip, port))
+# Flush in case we're in full buffering mode (instead of line
+# buffering), this might happen if python is a cygwin program and we
+# run it from a native w32 program.
+sys.stdout.flush()
httpd.serve_forever()
"package-server" "package-server-buffer"
(executable-find "python2")
"package-test-server.py"))
- port)
+ (addr nil))
(unwind-protect
(progn
(with-current-buffer "package-server-buffer"
(should
(with-timeout (10 nil)
- (while (not port)
+ (while (not addr)
(accept-process-output nil 1)
(goto-char (point-min))
- (if (re-search-forward "Serving HTTP on .* port \\([0-9]+\\) "
- nil t)
- (setq port (match-string 1))))
- port)))
- (with-package-test (:basedir
- package-test-data-dir
- :location (format "http://0.0.0.0:%s/" port))
+ (when (re-search-forward "Server started, \\(.*\\)\n" nil t)
+ (setq addr (match-string 1))))
+ addr)))
+ (with-package-test (:basedir package-test-data-dir :location addr)
(list-packages)
(should package--downloads-in-progress)
(should mode-line-process)