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)
('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):