Example #1
0
    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,
        })
Example #2
0
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,
Example #3
0
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"),
    )
Example #4
0
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 = {
        "=", "!=", "<", "<=", ">=", ">",
    }