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
|
import gc
import platform
import unittest
from prometheus_client import CollectorRegistry, GCCollector
SKIP = platform.python_implementation() != "CPython"
@unittest.skipIf(SKIP, "Test requires CPython")
class TestGCCollector(unittest.TestCase):
def setUp(self):
gc.disable()
gc.collect()
self.registry = CollectorRegistry()
def test_working(self):
GCCollector(registry=self.registry)
self.registry.collect()
before = self.registry.get_sample_value('python_gc_objects_collected_total',
labels={"generation": "0"})
# add targets for gc
a = []
a.append(a)
del a
b = []
b.append(b)
del b
gc.collect(0)
self.registry.collect()
after = self.registry.get_sample_value('python_gc_objects_collected_total',
labels={"generation": "0"})
self.assertEqual(2, after - before)
self.assertEqual(0,
self.registry.get_sample_value(
'python_gc_objects_uncollectable_total',
labels={"generation": "0"}))
def test_empty(self):
GCCollector(registry=self.registry)
self.registry.collect()
before = self.registry.get_sample_value('python_gc_objects_collected_total',
labels={"generation": "0"})
gc.collect(0)
self.registry.collect()
after = self.registry.get_sample_value('python_gc_objects_collected_total',
labels={"generation": "0"})
self.assertEqual(0, after - before)
def tearDown(self):
gc.enable()
|