Zum Inhalt

tests/test_sampler_parse.py

from touchstone import sampler


def test_parse_pmset_ac():
    assert (
        sampler.parse_pmset_power("Now drawing from 'AC Power'\n -InternalBattery-0 100%") == "ac"
    )


def test_parse_pmset_battery():
    assert sampler.parse_pmset_power("Now drawing from 'Battery Power'") == "battery"


def test_parse_pmset_unknown():
    assert sampler.parse_pmset_power("garbage") == "unknown"


def test_memory_pressure_from_free_percentage():
    assert sampler.parse_memory_pressure("System-wide memory free percentage: 72%") == "normal"
    assert sampler.parse_memory_pressure("System-wide memory free percentage: 20%") == "warn"
    assert sampler.parse_memory_pressure("System-wide memory free percentage: 4%") == "critical"


def test_memory_pressure_explicit_level_wins():
    assert sampler.parse_memory_pressure("status: CRITICAL\nfree percentage: 80%") == "critical"
    assert sampler.parse_memory_pressure("level: warning") == "warn"


def test_powermetrics_throttle_literal():
    assert sampler.parse_powermetrics_throttle("CPU Throttle: yes") is True
    assert sampler.parse_powermetrics_throttle("CPU Throttle: no") is False


def test_powermetrics_throttle_pressure_level():
    assert sampler.parse_powermetrics_throttle("Current pressure level: Nominal") is False
    assert sampler.parse_powermetrics_throttle("Current pressure level: Heavy") is True


def test_powermetrics_throttle_speed_limit():
    assert sampler.parse_powermetrics_throttle("CPU speed limit: 100.00%") is False
    assert sampler.parse_powermetrics_throttle("CPU speed limit: 72.00%") is True