diff options
author | Filipp Lepalaan <filipp@mac.com> | 2018-10-09 08:56:30 +0300 |
---|---|---|
committer | Filipp Lepalaan <filipp@mac.com> | 2018-10-09 08:56:30 +0300 |
commit | e6056c56316bb38eed69c366e346f1eeae979b9b (patch) | |
tree | 292cdd391297ceca28313221b67c442f3c48fdef | |
parent | f438b1221354469a9ce50f591eba7272f2698526 (diff) | |
download | gsx-mockserver-e6056c56316bb38eed69c366e346f1eeae979b9b.tar.gz gsx-mockserver-e6056c56316bb38eed69c366e346f1eeae979b9b.tar.bz2 gsx-mockserver-e6056c56316bb38eed69c366e346f1eeae979b9b.zip |
Add option to throttle responses
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | README.md | 5 | ||||
-rwxr-xr-x | serve.py | 6 |
3 files changed, 9 insertions, 5 deletions
@@ -1,2 +1 @@ -.env -.env2 +.* @@ -9,14 +9,15 @@ The mock responses are collected from example XML snippets in Apple's [API docum Installation ============ -The server has only one external dependency - `lxml` which is used to parse the request XML. It should work with both Python 3 and 2, but is primarily developed and tested on 3. +The server requires Python 3 and has only one external dependency - `lxml` which is used to parse the request XML. $ pip install lxml $ python serve.py Validating XML responses... GSX mock server serving on http://localhost:8080 -You can also specify the port and address to serve on with the `-p` and `-a` arguments - check `-h` for the details. +You can also specify the port and address to serve on with the `-p` and `-a` arguments - check `-h` for the details. Use the `GSX_THROTTLE=X` environment +variable to add a X-second delay to each API response. Usage ===== @@ -1,6 +1,7 @@ #!/usr/bin/env python import os +import time import argparse from glob import glob from io import BytesIO @@ -28,6 +29,10 @@ class Handler(BaseHTTPRequestHandler): self.send_error(404, msg) return + if os.getenv('GSX_THROTTLE'): + self.log_message('Throttling for %d' % os.getenv('GSX_THROTTLE')) + time.sleep(os.getenv('GSX_THROTTLE')) + self.send_response(200) l = int(self.headers['Content-Length']) request = etree.parse(BytesIO(self.rfile.read(l))) @@ -62,7 +67,6 @@ def validate_responses(): if __name__ == '__main__': parser = argparse.ArgumentParser() - parser = argparse.ArgumentParser() parser.add_argument('-a', '--address', help='Address to host server on', default='localhost') parser.add_argument('-p', '--port', |