Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTimofey <t.danshin@corp.mail.ru>2015-06-03 21:07:22 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:50:10 +0300
commit5184858593eef278b0d2ae412bbc44745608089f (patch)
treee8336c66264ccd48d96a7a5df1d9960e3ac18ebd /tools
parent86d1bf8389a49a05eebaacca5fe6c231e251775d (diff)
Here we have fixed all downloader tests but one.
Diffstat (limited to 'tools')
-rw-r--r--tools/testserver.py87
1 files changed, 65 insertions, 22 deletions
diff --git a/tools/testserver.py b/tools/testserver.py
index be05057a4d..aa01e49a2d 100644
--- a/tools/testserver.py
+++ b/tools/testserver.py
@@ -41,8 +41,10 @@ import sys
import thread
from threading import Timer
import threading
+import time
import types
import urllib2
+from scipy.stats.stats import trim_mean
PORT = 34568
@@ -108,6 +110,7 @@ class TestServer:
except socket.error:
print("Killing siblings")
self.kill_siblings()
+ time.sleep(1)
self.init_server()
@@ -155,30 +158,46 @@ def gen_to_list(generator):
l.append(i)
return l
+
+BIG_FILE_SIZE = 47684
class PostHandler(BaseHTTPRequestHandler):
+
+ def init_vars(self):
+ self.byterange = None
+ self.is_chunked = False
+ self.response_code = 200
+
def do_POST(self):
+ self.init_vars()
self.server.reset_selfdestruct_timer()
print("URL is: " + self.path)
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
+
+# print ("My ctype == {}".format(ctype))
if ctype == 'multipart/form-data':
self.send_response(500)
self.end_headers()
- elif ctype == 'application/x-www-form-urlencoded':
+ elif ctype == 'application/json':
length = int(self.headers.getheader('content-length'))
data = self.rfile.read(length)
self.send_response(200)
- self.send_header("Content-Length", length + 1)
+ self.send_header("Content-Length", length)
self.end_headers()
- self.wfile.write(data + "\n")
+ self.wfile.write(data)
+
+# print("\n\n~~~\n\n")
def do_GET(self):
+ self.init_vars()
+ self.chunk_requested()
+
self.server.reset_selfdestruct_timer()
switch = {"/unit_tests/1.txt": self.test1,
"/unit_tests/notexisting_unittest": self.test_404,
@@ -188,37 +207,47 @@ class PostHandler(BaseHTTPRequestHandler):
"/kill": self.kill,
}
switch[self.path]()
- return
+# print("\n\n~~~\n\n")
+# return
+ def chunk_requested(self):
+
+ the_range = self.headers.get('Range')
+ if the_range is not None:
+ self.is_chunked = True
+ self.response_code = 206
+ meaningful_string = the_range[6:]
+ first, last = meaningful_string.split("-")
+ self.byterange = (int(first), int(last))
+
+# print("My headers are: {0}".format( self.headers))
+
+ def trim_message(self, message):
+ if not self.is_chunked:
+ return message
+ m = message[self.byterange[0]: self.byterange[1] + 1]
+ return m
+
def pong(self):
self.server.clients += 1
- self.send_200()
+ self.send_response(200)
+ self.end_headers()
self.wfile.write("pong")
def test1(self):
message = "Test1"
+ message = self.trim_message(message)
- the_range = self.headers.get('Range')
- if the_range is not None:
- print("The range is not none")
- print(the_range)
- meaningful_string = the_range[6:]
- first, last = meaningful_string.split("-")
- message = message[int(first): int(last)]
- print ("The message is: " + message)
- self.send_response(200)
+# print("This is what TEST1 is about to write: {}; {};".format(message, self.response_code))
+
+ self.send_response(self.response_code)
self.send_header("Content-Length", len(message))
self.end_headers()
self.wfile.write(message)
-
- def send_200(self):
- self.send_response(200)
- self.end_headers()
-
def test_404(self):
self.send_response(404)
@@ -232,11 +261,25 @@ class PostHandler(BaseHTTPRequestHandler):
def test_47_kb(self):
- self.send_response(200)
- self.send_header("Content-Length", 47 * 1024)
+ self.send_response(self.response_code)
+ length = BIG_FILE_SIZE
+ if self.byterange is not None:
+ length = min([length, self.byterange[1] - self.byterange[0] + 1])
+
+# print ("The length of message to return is: {0}".format(length))
+
+ self.send_header("Content-Length", length)
+ if self.byterange is not None:
+ self.send_header("Content-Range", "bytes {start}-{end}/{out_of}".format(start=self.byterange[0], end=self.byterange[1], out_of=BIG_FILE_SIZE))
self.end_headers()
- for i in range(1, 47 * 1024):
+ for i in range(0, length + 1):
+# try:
self.wfile.write(255)
+# except IOError, e:
+# if e.errno == errno.EPIPE:
+# print("This is indeed a broken pipe")
+
+ # EPIPE error
def kill(self):