From 508468fc9c35aa69007e937d1a42d96a0a476660 Mon Sep 17 00:00:00 2001 From: Lucas Moura Date: Thu, 23 Jul 2015 10:34:25 -0300 Subject: [PATCH] colab.signals: Making signal methods global --- colab/signals/signals.py | 49 ++++++++++++++++++++++++------------------------- colab/signals/tests/test_signals.py | 31 +++++++++++++++---------------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/colab/signals/signals.py b/colab/signals/signals.py index 6caeb1a..fe8bfce 100644 --- a/colab/signals/signals.py +++ b/colab/signals/signals.py @@ -1,33 +1,32 @@ from django.dispatch import Signal -import colab.signals.celery +from colab.signals.celery import app -class Signals(): - def __init__(self): - self.registered_signals = {} - self.signal_instances = {} +registered_signals = {} +signal_instances = {} - def register_signal(self, plugin_name, list_signals): - for signal in list_signals: - if signal in self.registered_signals: - if not plugin_name in self.registered_signals[signal]: - self.registered_signals[signal].append(plugin_name) - else: - self.registered_signals[signal] = [] - self.registered_signals[signal].append(plugin_name) - self.signal_instances[signal] = Signal() +def register_signal(plugin_name, list_signals): + for signal in list_signals: + if signal in registered_signals: + if not plugin_name in registered_signals[signal]: + registered_signals[signal].append(plugin_name) + else: + registered_signals[signal] = [] + registered_signals[signal].append(plugin_name) + signal_instances[signal] = Signal() - def connect_signal(self, signal_name, sender, handling_method): - if signal_name in self.signal_instances: - self.signal_instances[signal_name].connect(handling_method, - sender=sender) - else: - raise Exception("Signal does not exist!") +def connect_signal(signal_name, sender, handling_method): + if signal_name in signal_instances: + signal_instances[signal_name].connect(handling_method, + sender=sender) + else: + raise Exception("Signal does not exist!") - def send(self, signal_name, sender, **kwargs): - if signal_name in self.signal_instances: - self.signal_instances[signal_name].send(sender=sender) - else: - raise Exception("Signal does not exist!") +@app.task(bind=True) +def send(self, signal_name, sender, **kwargs): + if signal_name in signal_instances: + signal_instances[signal_name].send(sender=sender) + else: + raise Exception("Signal does not exist!") diff --git a/colab/signals/tests/test_signals.py b/colab/signals/tests/test_signals.py index be872e8..2b3522b 100644 --- a/colab/signals/tests/test_signals.py +++ b/colab/signals/tests/test_signals.py @@ -4,7 +4,7 @@ Objective: Test parameters, and behavior. """ from django.test import TestCase -from colab.signals.signals import Signals +from colab.signals.signals import * from mock import patch @@ -13,16 +13,15 @@ class SignalsTest(TestCase): def setUp(self): self.list_signal = ['a', 'b', 'c'] self.plugin_name = 'test_signal' - self.signals = Signals() def test_register_signal_(self): - self.signals.register_signal(self.plugin_name, self.list_signal) + register_signal(self.plugin_name, self.list_signal) signal_name ='a' signal_list = ['test_signal'] - self.assertEqual(len(self.signals.registered_signals[signal_name]), 1) - self.assertEqual(self.signals.registered_signals[signal_name], + self.assertEqual(len(registered_signals[signal_name]), 1) + self.assertEqual(registered_signals[signal_name], signal_list) @@ -30,12 +29,12 @@ class SignalsTest(TestCase): signal_name ='a' signal_list = ['test_signal'] - self.signals.register_signal(self.plugin_name, self.list_signal) - self.assertEqual(len(self.signals.registered_signals[signal_name]), 1) + register_signal(self.plugin_name, self.list_signal) + self.assertEqual(len(registered_signals[signal_name]), 1) - self.signals.register_signal(self.plugin_name, self.list_signal) - self.assertEqual(len(self.signals.registered_signals[signal_name]), 1) - self.assertEqual(self.signals.registered_signals[signal_name], + register_signal(self.plugin_name, self.list_signal) + self.assertEqual(len(registered_signals[signal_name]), 1) + self.assertEqual(registered_signals[signal_name], signal_list) @@ -44,7 +43,7 @@ class SignalsTest(TestCase): handling_method = 'Test' signal_name = 'Test' - self.assertRaises(Exception, self.signals.connect_signal, signal_name, + self.assertRaises(Exception, connect_signal, signal_name, sender, handling_method) @@ -54,9 +53,9 @@ class SignalsTest(TestCase): handling_method = 'Test' signal_name = 'a' - self.signals.register_signal(self.plugin_name, self.list_signal) + register_signal(self.plugin_name, self.list_signal) - self.signals.connect_signal(signal_name, sender, handling_method) + connect_signal(signal_name, sender, handling_method) args, kwargs = mock.call_args self.assertEqual(args[0], handling_method) @@ -70,8 +69,8 @@ class SignalsTest(TestCase): handling_method = 'Test' signal_name = 'a' - self.signals.register_signal(self.plugin_name, self.list_signal) - self.signals.send(signal_name, sender) + register_signal(self.plugin_name, self.list_signal) + send(signal_name, sender) args, kwargs = mock.call_args @@ -80,4 +79,4 @@ class SignalsTest(TestCase): def test_send_signal_not_registered(self): - self.assertRaises(Exception, self.signals.send, 'test_signal', 'test') + self.assertRaises(Exception, send, 'test_signal', 'test') -- libgit2 0.21.2