Update functionality of coverage extension.
Change If1aa25fc7237e9bb5100d2a4a8e560f0a68eba61 adds additional functionality to the coverage extension. Mainly returning the data file path for the 'stop' action and adding support for generating html reports. This commit adds support for this new functionality. Change-Id: Icd147350d5c038f6b9c8063e77a75370eb8422e9
This commit is contained in:
parent
fba20df12c
commit
6f580661f6
|
@ -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)
|
||||
|
|
|
@ -2307,8 +2307,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')
|
||||
|
|
|
@ -1347,8 +1347,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')
|
||||
|
|
Loading…
Reference in New Issue