28
env = os.environ.copy()
29
# Make sure that we use the programs in the
30
# current source directory's bin/ directory.
31
env['PATH'] = os.path.join(os.getcwd(), 'bin') + ':' + env['PATH']
28
32
process = subprocess.Popen(cmd,
30
34
stdin=subprocess.PIPE,
31
35
stdout=subprocess.PIPE,
32
36
stderr=subprocess.PIPE,
33
env=os.environ.copy())
34
38
result = process.communicate()
35
39
(out, err) = result
40
exitcode = process.returncode
36
41
if process.returncode != 0:
37
exitcode = process.returncode
38
42
msg = "Command %(cmd)s did not succeed. Returned an exit "\
39
43
"code of %(exitcode)d."\
40
44
"\n\nSTDOUT: %(out)s"\
41
45
"\n\nSTDERR: %(err)s" % locals()
42
46
raise RuntimeError(msg)
47
return exitcode, out, err
46
50
class TestMiscellaneous(unittest.TestCase):
120
124
# Start up the API and default registry server
121
125
cmd = venv + "./bin/glance-control api start "\
122
126
"%s --pid-file=glance-api.pid" % conf_file
123
out, err = execute(cmd)
127
exitcode, out, err = execute(cmd)
129
self.assertEquals(0, exitcode)
130
self.assertTrue("Starting glance-api with" in out)
125
132
cmd = venv + "./bin/glance-control registry start "\
126
133
"%s --pid-file=glance-registry.pid" % conf_file
127
out, err = execute(cmd)
134
exitcode, out, err = execute(cmd)
136
self.assertEquals(0, exitcode)
137
self.assertTrue("Starting glance-registry with" in out)
129
139
time.sleep(2) # Gotta give some time for spin up...
131
141
cmd = "curl -g http://0.0.0.0:%d/images" % api_port
133
out, err = execute(cmd)
143
exitcode, out, err = execute(cmd)
145
self.assertEquals(0, exitcode)
135
146
self.assertEquals('{"images": []}', out.strip())
137
cmd = "curl -X POST -dinvalid http://0.0.0.0:%d/images" % api_port
138
out, err = execute(cmd)
148
cmd = "curl -X POST -H 'Content-Type: application/octet-stream' "\
149
"-dinvalid http://0.0.0.0:%d/images" % api_port
150
ignored, out, err = execute(cmd)
140
152
self.assertTrue('Image type is required' in out,
141
153
"Could not find 'Image type is required' "
158
170
# Spin down the API and default registry server
159
171
cmd = "./bin/glance-control api stop "\
160
172
"%s --pid-file=glance-api.pid" % conf_file
161
out, err = execute(cmd)
173
ignored, out, err = execute(cmd)
162
174
cmd = "./bin/glance-control registry stop "\
163
175
"%s --pid-file=glance-registry.pid" % conf_file
164
out, err = execute(cmd)
176
ignored, out, err = execute(cmd)