|
26 | 26 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
27 | 27 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 | 28 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 | +from datetime import datetime |
| 30 | + |
29 | 31 | import pytest |
30 | 32 |
|
31 | 33 | from powerapi.report import PowerReport |
32 | | -from tests.utils.report.power import gen_json_power_report |
33 | 34 |
|
34 | 35 |
|
35 | 36 | @pytest.fixture |
36 | 37 | def power_report_without_metadata() -> PowerReport: |
37 | 38 | """ |
38 | 39 | Generates a power_power |
39 | 40 | """ |
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) |
44 | 47 |
|
45 | 48 |
|
46 | 49 | @pytest.fixture |
47 | 50 | def power_report_with_metadata(power_report_without_metadata) -> PowerReport: |
48 | 51 | """ |
49 | | - Generates a power_power |
| 52 | + Generates a power report with single-level metadata. |
50 | 53 | """ |
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 | + } |
56 | 59 | return power_report_without_metadata |
57 | 60 |
|
58 | 61 |
|
59 | 62 | @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]: |
61 | 64 | """ |
62 | | - Generates a power_power |
| 65 | + Returns the expected tags for the power report with single-level metadata. |
63 | 66 | """ |
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'} |
71 | 68 |
|
| 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 | + } |
72 | 85 | 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