Merge "Update functionality of coverage extension."

This commit is contained in:
Jenkins 2013-01-14 19:40:48 +00:00 committed by Gerrit Code Review
commit 7b124b8872
5 changed files with 12 additions and 7 deletions

@ -20,7 +20,7 @@ from novaclient import base
class Coverage(base.Resource):
def __repr__(self):
return "<Coverage: %s>" % self.name
return "<Coverage: %s>" % self.name
class CoverageManager(base.ManagerWithFind):
@ -41,7 +41,7 @@ class CoverageManager(base.ManagerWithFind):
url = '/os-coverage/action'
return self.api.client.post(url, body=body)
def report(self, filename, xml=False):
def report(self, filename, xml=False, html=True):
body = {
'report': {
'file': filename,
@ -49,6 +49,8 @@ class CoverageManager(base.ManagerWithFind):
}
if xml:
body['report']['xml'] = True
elif html:
body['report']['html'] = True
self.run_hooks('modify_body_for_action', body)
url = '/os-coverage/action'
return self.api.client.post(url, body=body)

@ -2311,8 +2311,8 @@ def do_coverage_start(cs, args):
def do_coverage_stop(cs, args):
"""Stop Nova coverage reporting"""
cs.coverage.stop()
print "Coverage collection stopped"
out = cs.coverage.stop()
print "Coverage data file path: %s" % out[-1]['path']
@utils.arg('filename', metavar='<filename>', help='report filename')

@ -1349,8 +1349,10 @@ class FakeHTTPClient(base_client.HTTPClient):
return (202, {}, None)
def post_os_coverage_action(self, body, **kw):
if 'report' not in body:
if 'start' in body:
return (200, {}, None)
elif 'stop' in body:
return (200, {}, {'path': '/tmp/tmpdir/'})
else:
return (200, {}, {
'path': '/tmp/tmpdir/' + body['report']['file']

@ -34,7 +34,8 @@ class CoverageTest(utils.TestCase):
def test_stop_coverage(self):
c = cs.coverage.stop()
cs.assert_called('POST', '/os-coverage/action')
return_dict = {'path': '/tmp/tmpdir/report'}
cs.assert_called_anytime('POST', '/os-coverage/action')
def test_report_coverage(self):
c = cs.coverage.report('report')

@ -650,7 +650,7 @@ class ShellTest(utils.TestCase):
def test_coverage_stop(self):
self.run_command('coverage-stop')
self.assert_called('POST', '/os-coverage/action')
self.assert_called_anytime('POST', '/os-coverage/action')
def test_coverage_report(self):
self.run_command('coverage-report report')