Skip to content

Commit f1d2e6a

Browse files
committed
Add support for timing API (fix #58)
1 parent 98ffc15 commit f1d2e6a

4 files changed

Lines changed: 26 additions & 2 deletions

File tree

backslash/session.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
from .warning_container import WarningContainer
1010
from .lazy_query import LazyQuery
1111
from .metadata_holder import MetadataHolder
12+
from .timing_container import TimingContainer
1213

1314
APPEND_UPCOMING_TESTS_STR = 'append_upcoming_tests'
1415

15-
class Session(APIObject, MetadataHolder, ErrorContainer, WarningContainer, Archiveable, Commentable, RelatedEntityContainer):
16+
class Session(APIObject, MetadataHolder, ErrorContainer, WarningContainer, Archiveable, Commentable, RelatedEntityContainer, TimingContainer):
1617

1718
@property
1819
def ui_url(self):

backslash/test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
from .warning_container import WarningContainer
88
from .lazy_query import LazyQuery
99
from .metadata_holder import MetadataHolder
10+
from .timing_container import TimingContainer
1011

1112

12-
class Test(APIObject, MetadataHolder, ErrorContainer, WarningContainer, Commentable, RelatedEntityContainer):
13+
class Test(APIObject, MetadataHolder, ErrorContainer, WarningContainer, Commentable, RelatedEntityContainer, TimingContainer):
1314

1415
@property
1516
def ui_url(self):

backslash/timing_container.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class TimingContainer(object):
2+
3+
def report_timing_start(self, name):
4+
self._report('start', name)
5+
6+
def report_timing_end(self, name):
7+
self._report('end', name)
8+
9+
def _report(self, start_stop, name):
10+
kwargs = {'name': name}
11+
kwargs.update(self._get_identity_kwargs())
12+
self.client.api.call_function('report_timing_{}'.format(start_stop), kwargs) # pylint: disable=no-member
13+
14+
def _get_identity_kwargs(self):
15+
if self.type.lower() == 'session':
16+
return {'session_id': self.id}
17+
18+
return {'test_id': self.id, 'session_id': self.session_id}
19+
20+
def get_timings(self):
21+
return self.client.api.call.get_timings(**self._get_identity_kwargs())

docs/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Changelog
22
=========
33

4+
* :feature:`58` Support reporting timing metrics
45
* :feature:`57` Support reporting test status description
56
* :release:`2.31.2 <14-9-2017>`
67
* :bug:`54` Handle cases of detached head correctly when deducing local branch

0 commit comments

Comments
 (0)