예제 #1
0
    def test_signals(self):
        from djangosms.core.transports import pre_route
        from djangosms.core.transports import post_route

        s1 = []
        s2 = []

        def before_route(sender=None, **kwargs):
            s1.append(sender)
            self.assertEqual(sender.requests.count(), 0)
        pre_route.connect(before_route)

        def after_route(sender=None, **kwargs):
            s2.append(sender)
            self.assertEqual(sender.requests.count(), 1)
        post_route.connect(after_route)

        from djangosms.core.tests.transports import Dummy
        from djangosms.core.router import route

        def echo(*args, **kwargs):
            return ""

        router = functools.partial(route, table=(
            (r'^\+echo', echo),
            ))

        transport = Dummy("dummy", router=router)
        transport.incoming("test", "+echo")

        self.assertTrue(len(s1), 1)
        self.assertTrue(len(s2), 1)
예제 #2
0
파일: models.py 프로젝트: djangosms/core
    ('sum', 'Sum'),
    )

def message_stats_callback(sender, **kwargs):
    observations = {
      'messages_total_incoming': 1
    }
    
    is_erroneous = Request.objects.filter(message=sender, erroneous=True).count()
    if is_erroneous:
        observations['messages_total_erroneous'] = 1        
        
    Report.from_observations(
       'messages', source=sender, **observations)
    
post_route.connect(message_stats_callback)

class GroupKind(models.Model):
    name = models.CharField(max_length=50)
    slug = models.SlugField(unique=True, primary_key=True)
    description = models.CharField(max_length=255, null=True)

    def __unicode__(self):
        return self.name

class Group(MP_Node):
    name = models.CharField(max_length=50, db_index=True)
    kind = models.ForeignKey(GroupKind)
    node_order_by = ['name']

    def __init__(self, *args, **kwargs):