Source code for satpy.tests.test_compat

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2022 Satpy developers
#
# This file is part of satpy.
#
# satpy is free software: you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# satpy is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# satpy.  If not, see <http://www.gnu.org/licenses/>.
"""Test backports and compatibility fixes."""

import gc

from satpy._compat import CachedPropertyBackport


[docs] class ClassWithCachedProperty: # noqa def __init__(self, x): # noqa self.x = x @CachedPropertyBackport def property(self): # noqa return 2 * self.x
[docs] def test_cached_property_backport(): """Test cached property backport.""" c = ClassWithCachedProperty(1) assert c.property == 2
[docs] def test_cached_property_backport_releases_memory(): """Test that cached property backport releases memory.""" c1 = ClassWithCachedProperty(2) del c1 instances = [ obj for obj in gc.get_objects() if isinstance(obj, ClassWithCachedProperty) ] assert len(instances) == 0