| Index: tools/telemetry/telemetry/test.py
|
| diff --git a/tools/telemetry/telemetry/test.py b/tools/telemetry/telemetry/test.py
|
| index 5764776064cd15de70b7dfe2cd4124ecf7f82070..cee23f6352c4dc10d5027a8d24121858ea0f73d6 100644
|
| --- a/tools/telemetry/telemetry/test.py
|
| +++ b/tools/telemetry/telemetry/test.py
|
| @@ -37,14 +37,12 @@ class Test(command_line.Command):
|
| name = cls.__module__.split('.')[-1]
|
| if hasattr(cls, 'tag'):
|
| name += '.' + cls.tag
|
| - page_set_name = None
|
| - if hasattr(cls, 'page_set') and isinstance(cls.page_set, page_set.PageSet):
|
| - page_set_name = os.path.basename(
|
| - os.path.splitext(cls.page_set.file_path)[0])
|
| - elif hasattr(cls, 'page_set') and isinstance(cls.page_set, str):
|
| - page_set_name = os.path.basename(os.path.splitext(cls.page_set)[0])
|
| - if page_set_name:
|
| - name += '.' + page_set_name
|
| + if hasattr(cls, 'page_set'):
|
| + if isinstance(cls.page_set, basestring):
|
| + # TODO(dtu): Remove this code path after crbug.com/362293.
|
| + name += '.' + os.path.basename(os.path.splitext(cls.page_set)[0])
|
| + else:
|
| + name += '.' + cls.page_set.Name()
|
| return name
|
|
|
| @classmethod
|
| @@ -170,6 +168,18 @@ class Test(command_line.Command):
|
| return cls.test
|
|
|
| @classmethod
|
| + def PageSetClass(cls):
|
| + """Get the PageSet for this Test.
|
| +
|
| + If the Test has no PageSet, raises NotImplementedError.
|
| + """
|
| + if not hasattr(cls, 'page_set'):
|
| + raise NotImplementedError('This test has no "page_set" attribute.')
|
| + if not issubclass(cls.page_set, page_set.PageSet):
|
| + raise TypeError('"%s" is not a PageSet.' % cls.page_set.__name__)
|
| + return cls.page_set
|
| +
|
| + @classmethod
|
| def CreatePageSet(cls, options): # pylint: disable=W0613
|
| """Get the page set this test will run on.
|
|
|
| @@ -178,15 +188,12 @@ class Test(command_line.Command):
|
| """
|
| if not hasattr(cls, 'page_set'):
|
| raise NotImplementedError('This test has no "page_set" attribute.')
|
| -
|
| - if isinstance(cls.page_set, str):
|
| + if isinstance(cls.page_set, basestring):
|
| + # TODO(dtu): Remove this code path after crbug.com/362293.
|
| return page_set.PageSet.FromFile(
|
| file_path=os.path.join(util.GetBaseDir(), cls.page_set))
|
| - elif isinstance(cls.page_set, page_set.PageSet):
|
| - return cls.page_set
|
| else:
|
| - raise TypeError('The page_set field of %s has unsupported type.' %
|
| - cls.Name)
|
| + return cls.PageSetClass()()
|
|
|
| @classmethod
|
| def CreateExpectations(cls, ps): # pylint: disable=W0613
|
|
|