Source code for api4jenkins.report
from .item import Item, camel, snake
[docs]class GetMixIn:
[docs] def get(self, name):
for item in self:
if item.name == name:
return item
return None
[docs]class ResultBase:
def __init__(self, raw):
self.raw = raw
def __getattr__(self, name):
camel_name = camel(name)
if camel_name in self.raw:
return self.raw[camel_name]
return super().__getattribute__(name)
def __str__(self):
return f'<{type(self).__name__}: {self.name}>'
def __dir__(self):
return super().__dir__() + [snake(k) for k in self.raw]
[docs]class TestReport(Item, GetMixIn):
def __iter__(self):
for suite in self.api_json()['suites']:
yield TestSuite(suite)
@property
def suites(self):
yield from self
[docs]class TestSuite(ResultBase, GetMixIn):
def __iter__(self):
for case in self.raw['cases']:
yield TestCase(case)
@property
def cases(self):
yield from self
[docs]class TestCase(ResultBase):
pass