1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
import unittest
from prometheus_client import CollectorRegistry, PlatformCollector
class TestPlatformCollector(unittest.TestCase):
def setUp(self):
self.registry = CollectorRegistry()
self.platform = _MockPlatform()
def test_python_info(self):
PlatformCollector(registry=self.registry, platform=self.platform)
self.assertLabels("python_info", {
"version": "python_version",
"implementation": "python_implementation",
"major": "pvt_major",
"minor": "pvt_minor",
"patchlevel": "pvt_patchlevel"
})
def test_system_info_java(self):
self.platform._system = "Java"
PlatformCollector(registry=self.registry, platform=self.platform)
self.assertLabels("python_info", {
"version": "python_version",
"implementation": "python_implementation",
"major": "pvt_major",
"minor": "pvt_minor",
"patchlevel": "pvt_patchlevel",
"jvm_version": "jv_release",
"jvm_release": "vm_release",
"jvm_vendor": "vm_vendor",
"jvm_name": "vm_name"
})
def assertLabels(self, name, labels):
for metric in self.registry.collect():
for s in metric.samples:
if s.name == name:
assert s.labels == labels
return
assert False
class _MockPlatform:
def __init__(self):
self._system = "system"
def python_version_tuple(self):
return "pvt_major", "pvt_minor", "pvt_patchlevel"
def python_version(self):
return "python_version"
def python_implementation(self):
return "python_implementation"
def system(self):
return self._system
def java_ver(self):
return (
"jv_release",
"jv_vendor",
("vm_name", "vm_release", "vm_vendor"),
("os_name", "os_version", "os_arch")
)
|