31
32
"""Respond to a GET request."""
32
if '*' in self.server.responses:
33
response = self.server.responses['*']
35
response = self.server.responses[self.path]
36
self.send_response(200)
37
self.send_header("Content-type", "application/json")
34
o = urlparse(self.path)
35
for response in self.server.responses:
36
if '*' in response['path']:
38
elif o.path in response['path']:
42
self.log_message('Could not handle request')
46
self.send_response(r['status_code'])
47
self.send_header("Content-type", 'application/json')
40
self.wfile.write(json.dumps(response).encode('utf-8'))
41
except BrokenPipeError:
42
# System Settings shut down before we finished up. Log and ignore.
43
self.log_message('Server was interrupted.')
53
json.dumps(r['content']).encode('utf-8')
55
except BrokenPipeError:
56
# System Settings shut down before we finished
58
self.log_message('Server was interrupted.')
46
61
class Manager(object):
53
68
self._thread = None
54
69
self._cmdline = cmdline
58
"name": "com.ubuntu.developer.testclick",
61
"https://raw.githubusercontent.com/ninja-ide/"
62
"ninja-ide/master/ninja_ide/img/ninja_icon.png"
64
"download_url": ("http://localhost:9009/download"),
65
"binary_filesize": 9000,
66
"download_sha512": "1232223sdfdsffs",
67
"changelog": "New version!"
75
'content_type': 'application/json',
77
"name": "com.ubuntu.dropping-letters",
80
"https://raw.githubusercontent.com/ninja-ide/"
81
"ninja-ide/master/ninja_ide/img/ninja_icon.png"
83
"download_url": ("https://upload.wikimedia.org/wikiped"
84
"ia/commons/3/30/04U_Dec_28_2012_0230"
86
"binary_filesize": 23820.0 * 1000.0,
87
"download_sha512": "foo",
88
"changelog": "New Dropping Letters.",
89
"title": "Dropping Letters game"
91
"name": "com.ubuntu.stock-ticker-mobile",
92
"version": "0.3.7ubuntu2",
94
"https://upload.wikimedia.org/wikipedia/"
95
"commons/a/ab/Logo-ubuntu_cof-orange-hex.svg"
97
"download_url": ("https://upload.wikimedia.org/wikiped"
98
"ia/commons/d/d2/The_Harvesters%2C_p"
99
"ainting_by_Brugel%2C_with_frame.jpg"
101
"binary_filesize": 5015.2 * 1000.0,
102
"download_sha512": "bar",
103
"changelog": "New ticker.",
104
"title": "A stock trading app with charts, news, and management" # noqa
70
116
self._httpd = HTTPServer((server_address, server_port), Handler)
71
117
self._httpd.responses = responses
72
118
log('Created mock update click server.')
133
179
'responses: %s\n' % detail)
136
if not isinstance(responses, dict):
137
sys.stderr.write('JSON responses must be a dictionary\n')
182
if not isinstance(responses, list):
183
sys.stderr.write('JSON responses must be a list\n')