Change to always parsing classes from test_id

Currently only v1 correctly parses out the class information from the test_id.
This changes the default behavior to always parse the class and module from test_id.

Closes-Bug: #1517229

Change-Id: I6340797064f9289a7e861f853c42a763c5f5e2c2
This commit is contained in:
step6829 2015-11-17 22:28:57 +00:00
parent 01fb487df1
commit 2b5c0175fc
2 changed files with 34 additions and 3 deletions

View File

@ -633,10 +633,10 @@ class HtmlOutput(testtools.TestResult):
test = test.test
if test.__class__ == subunit.RemotedTestCase:
cl = test._RemotedTestCase__description.rsplit('.', 1)[0]
mod = cl.rsplit('.', 1)[0]
cls = ClassInfoWrapper(cl, mod)
else:
cls = ClassInfoWrapper(str(test.__class__), str(test.__module__))
cl = test.id().rsplit('.', 1)[0]
mod = cl.rsplit('.', 1)[0]
cls = ClassInfoWrapper(cl, mod)
if not str(cls) in rmap:
rmap[str(cls)] = []
classes.append(cls)

View File

@ -0,0 +1,31 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from ddt import data
from ddt import ddt
from subunit import RemotedTestCase
from testtools import PlaceHolder
from os_testr import subunit2html
from os_testr.tests import base
@ddt
class TestSubunit2html(base.TestCase):
@data(RemotedTestCase, PlaceHolder)
def test_class_parsing(self, test_cls):
"""Tests that the class paths are parsed for v1 & v2 tests"""
test_ = test_cls("example.path.to.test.method")
obj_ = subunit2html.HtmlOutput()
cls_ = []
obj_._add_cls({}, cls_, test_, ())
self.assertEqual("example.path.to.test", cls_[0].name)