Source code for ramble.test.util.cpus

# Copyright 2022-2026 The Ramble Authors
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.


import os

from ramble.util import cpus


[docs] def test_cpus_available(monkeypatch): monkeypatch.setattr(os, "sched_getaffinity", lambda pid: {0, 1, 2}, raising=False) assert cpus.cpus_available() == 3
[docs] def test_cpus_available_fallback_no_sched_get_affinity(monkeypatch): monkeypatch.delattr(os, "sched_getaffinity", raising=False) monkeypatch.setattr(os, "cpu_count", lambda: 8) assert cpus.cpus_available() == 8
[docs] def test_cpus_available_last_fallback(monkeypatch): monkeypatch.delattr(os, "sched_getaffinity", raising=False) monkeypatch.setattr(os, "cpu_count", lambda: None) assert cpus.cpus_available() == 1