def test_usage(self): enums = typeutils.enums("a", "b", "c") self.assertEqual(enums.a, 0) # pylint: disable=E1101 self.assertEqual(enums.b, 1) # pylint: disable=E1101 self.assertEqual(enums.c, 2) # pylint: disable=E1101 self.assertEqual(enums[0], "a") self.assertEqual(enums[1], "b") self.assertEqual(enums[2], "c") with self.assertRaisesRegexp( AttributeError, "attribute a is not writable", ): enums.a = 2 self.assertDictEqual(dict(enums), { "a": 0, "b": 1, "c": 2, })
from core.models.base import BaseModel, BaseTag, BASE_VALIDATORS from core.models.project import Project from core.exceptions import ModelFieldError from core.utils import model as model_utils logger = logging.getLogger(__name__) ItemType = namedtuple("ItemType", ["name", "factory"]) ITEM_TYPE = ( ItemType(_("integer"), int), ItemType(_("float"), float), ItemType(_("text"), unicode), ItemType(_("boolean"), bool), ItemType(_("decimal"), decimal.Decimal), ) ITEM_STATUS = enums("enable", "disable", "protected") class MonitorItemTag(BaseTag): class Meta: verbose_name = _("Monitor item tag") verbose_name_plural = _("Monitor item tags") class MonitorItem(BaseModel): project = models.ForeignKey(Project, null=False, verbose_name=_("Project")) name = models.CharField( max_length=64, null=False, blank=False, default=None,
from collections import namedtuple from django.db import models from django.contrib.auth.models import Group from django.utils.translation import ugettext_lazy as _ from ycyc.base.typeutils import enums from core.models.base import BaseModel, BaseTag, BASE_VALIDATORS PROJECT_STATUS = enums("enable", "disable", "protected") class ProjectTag(BaseTag): class Meta: verbose_name = _('Project tag') verbose_name_plural = _('Project tags') class Project(BaseModel): name = models.CharField( max_length=64, null=False, blank=False, default=None, unique=True, db_index=True, verbose_name=_("Name"), validators=[ BASE_VALIDATORS.safety_string, ], ) description = models.CharField( max_length=140, null=True, blank=True, default=None, verbose_name=_("Description"), )
from ycyc.base.iterutils import getattrs from ycyc.base.allowfail import AllowFail from ycyc.base.typeutils import enums from ycyc.base.lazyutils import LazyEnv from banbrick.utils import time as time_utils from core.models import base from core.models import User from core.models import item as item_models from core.utils import model as model_utils from core.exceptions import ModelFieldError logger = logging.getLogger(__name__) TRIGGER_STATUS = enums("enable", "disable", "protected") def alert_context(trigger): context = LazyEnv() context.trigger = lambda: trigger context.item = lambda: trigger.item context.project = lambda: trigger.item.project context.now = time_utils.datetime_now return context class Trigger(base.BaseModel): ALLOW_OPS = { "=", "!=", "<", "<=", ">=", ">", }