Skip to content

Commit e21bb42

Browse files
committed
tests(report): Update power report fixtures to use real-world data
1 parent 9b5cf4a commit e21bb42

File tree

1 file changed

+41
-20
lines changed

1 file changed

+41
-20
lines changed

tests/unit/report/conftest.py

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,47 +26,68 @@
2626
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2727
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
from datetime import datetime
30+
2931
import pytest
3032

3133
from powerapi.report import PowerReport
32-
from tests.utils.report.power import gen_json_power_report
3334

3435

3536
@pytest.fixture
3637
def power_report_without_metadata() -> PowerReport:
3738
"""
3839
Generates a power_power
3940
"""
40-
json_input = gen_json_power_report(1)[0]
41-
report = PowerReport.from_json(json_input)
42-
43-
return report
41+
ts = datetime(2020, 1, 1, 0, 0, 0)
42+
sensor = 'pytest'
43+
target = 'test'
44+
power = 42
45+
metadata = {}
46+
return PowerReport(ts, sensor, target, power, metadata)
4447

4548

4649
@pytest.fixture
4750
def power_report_with_metadata(power_report_without_metadata) -> PowerReport:
4851
"""
49-
Generates a power_power
52+
Generates a power report with single-level metadata.
5053
"""
51-
power_report_without_metadata.metadata = {'k1': 'v1',
52-
'k2': 'v2',
53-
'k3': 333,
54-
'k4': 'vv4'}
55-
54+
power_report_without_metadata.metadata = {
55+
'scope': 'cpu',
56+
'socket': 0,
57+
'formula': '0000000000000000000000000000000000000000'
58+
}
5659
return power_report_without_metadata
5760

5861

5962
@pytest.fixture
60-
def power_report_with_nested_metadata(power_report_without_metadata) -> PowerReport:
63+
def power_report_with_metadata_expected_tags(power_report_with_metadata) -> set[str]:
6164
"""
62-
Generates a power_power
65+
Returns the expected tags for the power report with single-level metadata.
6366
"""
64-
power_report_without_metadata.metadata = {'k1': {'k1_k1': 1},
65-
'k2': 'v2',
66-
'k3': 333,
67-
'k4': {'k4_k1': 'v1',
68-
'k4_k2': {'k4_k2_k1': 'v2'}
69-
}
70-
}
67+
return {'sensor', 'target', 'scope', 'socket', 'formula'}
7168

69+
70+
@pytest.fixture
71+
def power_report_with_nested_metadata(power_report_without_metadata) -> PowerReport:
72+
"""
73+
Generates a power report with nested metadata.
74+
"""
75+
power_report_without_metadata.metadata = {
76+
'scope': 'cpu',
77+
'socket': 0,
78+
'formula': '0000000000000000000000000000000000000000',
79+
'k8s': {
80+
'app.kubernetes.io/name': 'test',
81+
'app.kubernetes.io/managed-by': 'pytest',
82+
'helm.sh/chart': 'powerapi-pytest-1.0.0'
83+
}
84+
}
7285
return power_report_without_metadata
86+
87+
88+
@pytest.fixture
89+
def power_report_with_nested_metadata_expected_tags(power_report_with_nested_metadata) -> set[str]:
90+
"""
91+
Returns the expected tags for the power report with nested metadata.
92+
"""
93+
return {'sensor', 'target', 'scope', 'socket', 'formula', 'k8s_app_kubernetes_io_name', 'k8s_app_kubernetes_io_managed_by', 'k8s_helm_sh_chart'}

0 commit comments

Comments
 (0)