Bu şekilde uygulandım.
Görüşleri karşılama
from django.conf import settings
import psutil
import humanfriendly
from djangotools.utils import testutils
class Check(testutils.Check):
@testutils.skip_if_not_prod
def test_min_cpu_count(self):
min_cpu_count=getattr(settings, 'MIN_CPU_COUNT', None)
self.assertIsNotNone(min_cpu_count, 'settings.MIN_CPU_COUNT not set. Please supply a value.')
self.assertLessEqual(min_cpu_count, psutil.cpu_count())
@testutils.skip_if_not_prod
def test_min_physical_memory(self):
min_physical_memory_orig=getattr(settings, 'MIN_PHYSICAL_MEMORY', None)
self.assertIsNotNone(min_physical_memory_orig, "settings.MIN_PHYSICAL_MEMORY not set. Please supply a value. Example: MIN_PHYSICAL_MEMORY='4G'")
min_physical_memory_bytes=humanfriendly.parse_size(min_physical_memory_orig)
self.longMessage=False
self.assertLessEqual(min_physical_memory_bytes, psutil.virtual_memory().total, 'settings.MIN_PHYSICAL_MEMORY=%r is not satisfied. Total virtual memory of current hardware: %r' % (
min_physical_memory_orig, humanfriendly.format_size(psutil.virtual_memory().total)))
sen keyfi Python kodunu çalıştırabilir yana 'böyle denetimleri gerçekleştirmek mümkün olmalıdır setup.py' ([CPU] (http://stackoverflow.com/a/1006337/ 3005167), [RAM] (http://stackoverflow.com/a/22103295/3005167)) şartlar yerine getirilmemişse doğrudan orada bulunun ve kurtarın. Böyle bir işlevsellik dağıtılmış olup olmadığını bilmiyorum - sanırım, değil. – kazemakase
@kazemakase Evet, check in setup.py dosyasında çalıştırabilirim. Ama ayrılmayı seviyorum: Programım kısıtları tanımlar ve bazı diğer kısımlar testten sorumludur. "Unittest" aklıma geliyor, ama işte bu bir aldatmaca değil, bir sistem testi. – guettli