Esempio n. 1
0
 def test_03_get_url_event(self):
     sn = SocialNetworks()
     url_event = settings.URL_EVENT
     self.assertEqual(sn._get_url_event(42), '%s%d' % (url_event, 42))
     del settings.URL_EVENT
     self.assertEqual(sn._get_url_event(42), '')
     settings.URL_EVENT = url_event
Esempio n. 2
0
    def test_08_publish_error(self, mock_sn):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 1)
        msg = "Can't publish msg: %s, event_id: %d for sn: %s (%s)" % (
            event.msg, event.id, sn_mock.name, 'not connected')
        self.assertEqual(self.log._error[0], msg)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 2)
        msg = "Can't publish msg: %s, event_id: %d for sn: %s (%s)" % (
            eventlog.msg, eventlog.event.id, sn_mock.name, 'not connected')
        self.assertEqual(self.log._error[1], msg)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 3
0
    def test_04_mark_as_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        filters = {
            'event': event,
            'name': 'MockSN',
        }
        self.assertFalse(SnEvent.objects.filter(**filters).exists())
        sn._mark_as_publish(event, sn_mock.name, 42)
        self.assertTrue(SnEvent.objects.filter(**filters).exists())
        sn_id = SnEvent.objects.filter(**filters).values_list(
            'sn_id', flat=True)[0]
        self.assertEqual(sn_id, '42')

        eventlog = BoEventLog.objects.get(id=1)
        filters = {
            'eventlog': eventlog,
            'name': sn_mock.name,
        }
        self.assertFalse(SnEventLog.objects.filter(**filters).exists())
        sn._mark_as_publish(eventlog, sn_mock.name, 42)
        self.assertTrue(SnEventLog.objects.filter(**filters).exists())
        sn_id = SnEventLog.objects.filter(**filters).values_list(
            'sn_id', flat=True)[0]
        self.assertEqual(sn_id, '42')
Esempio n. 4
0
 def test_03_get_url_event(self):
     sn = SocialNetworks()
     url_event = settings.URL_EVENT
     self.assertEqual(sn._get_url_event(42), '%s%d' % (url_event, 42))
     del settings.URL_EVENT
     self.assertEqual(sn._get_url_event(42), '')
     settings.URL_EVENT = url_event
Esempio n. 5
0
    def test_05_is_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        self.assertFalse(sn._is_publish(event, sn_mock.name))
        SnEvent.objects.create(event=event, name=sn_mock.name, sn_id=42)
        self.assertTrue(sn._is_publish(event, sn_mock.name))

        eventlog = BoEventLog.objects.get(id=1)
        self.assertFalse(sn._is_publish(eventlog, sn_mock.name))
        SnEventLog.objects.create(
            eventlog=eventlog, name=sn_mock.name, sn_id=42)
        self.assertTrue(sn._is_publish(eventlog, sn_mock.name))
Esempio n. 6
0
    def test_01_no_name(self, mock_sn):
        sn = SocialNetworks()

        self.assertEqual(self.log._info, [])
        self.assertEqual(len(self.log._error), 1)
        msg = "Couldn't init %s (%s has no name)" % (MockSN, MockSN)
        self.assertEqual(self.log._error[0], msg)
Esempio n. 7
0
def cron_social_network():
    now = datetime.now(pytz.timezone('UTC'))
    sn = SocialNetworks()

    filters = Q(date_start__lte=now) & (
        Q(date_end__gte=now) | Q(date_end__isnull=True)
    )
    for event in Event.objects.filter(filters):
        sn.publish(event)

    deltat = now - timedelta(minutes=5)
    filters = Q(date__lte=now) & (
        Q(event__date_end__gte=deltat) | Q(event__date_end__isnull=True)
    )
    for eventlog in EventLog.objects.filter(filters):
        sn.publish(eventlog)
Esempio n. 8
0
 def test_10_get_max_char_ko(self, field_msg):
     # need to force the call to the get_max_char
     SocialNetworks._max_char = None
     sn = SocialNetworks()
     msg = 'BackOfficeEvent.msg and BackOfficeEventLog.msg HAS TO have ' \
           'the same max length'
     self.assertRaisesRegexp(RuntimeError, msg, sn.get_max_char)
Esempio n. 9
0
 class Meta:
     model = models.EventLog
     allowed_char = SocialNetworks.get_max_char()
     widgets = {
         'msg': Textarea(attrs={'cols': math.ceil(allowed_char / 2.0),
                                'rows': 2,
                                'maxlength': allowed_char})
     }
Esempio n. 10
0
    def test_06_empty_msg(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        self.assertEqual(event.msg, None)
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        self.assertEqual(eventlog.msg, None)
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 11
0
def on_eventlog(instance, raw, **kwargs):
    """
    Send a Tweet on Tweeter
    """

    # no trigger when loading fixture
    if raw:
        return

    if instance.event.category == Event.MAINTENANCE and \
            instance.event.date_start > datetime.now(pytz.timezone('UTC')):
        return

    from baobab.socialnetwork import SocialNetworks

    sn = SocialNetworks()
    sn.publish(instance)
Esempio n. 12
0
def on_eventlog(instance, raw, **kwargs):
    """
    Send a Tweet on Tweeter
    """

    # no trigger when loading fixture
    if raw:
        return

    if instance.event.category == Event.MAINTENANCE and \
            instance.event.date_start > datetime.now(pytz.timezone('UTC')):
        return

    from baobab.socialnetwork import SocialNetworks

    sn = SocialNetworks()
    sn.publish(instance)
Esempio n. 13
0
 class Meta:
     model = models.Event
     allowed_char = SocialNetworks.get_max_char()
     widgets = {
         'services': CheckboxSelectMultiple(),
         'msg': Textarea(attrs={'cols': math.ceil(allowed_char / 2.0),
                                'rows': 2,
                                'maxlength': allowed_char})
     }
Esempio n. 14
0
    def test_09_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        filters = {
            'event': event,
            'name': 'MockSN',
        }
        self.assertFalse(SnEvent.objects.filter(**filters).exists())
        sn.publish(event)
        self.assertTrue(SnEvent.objects.filter(**filters).exists())
        self.assertEqual(len(self.log._info), 1)
        url = '%s%d' % (settings.URL_EVENT, event.id)
        msg = 'publish sn: %s msg: %s, url: %s' % (sn_mock.name, event.msg,
                                                   url)
        self.assertEqual(self.log._info[0], msg)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 1)
        self.assertEqual(sn_mock._msg[0], (event.msg, url))

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        filters = {
            'eventlog': eventlog,
            'name': 'MockSN',
        }
        self.assertFalse(SnEventLog.objects.filter(**filters).exists())
        sn.publish(eventlog)
        self.assertTrue(SnEventLog.objects.filter(**filters).exists())
        self.assertEqual(len(self.log._info), 2)
        url = '%s%d' % (settings.URL_EVENT, eventlog.event.id)
        msg = 'publish sn: %s msg: %s, url: %s' % (sn_mock.name, eventlog.msg,
                                                   url)
        self.assertEqual(self.log._info[1], msg)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 2)
        self.assertEqual(sn_mock._msg[1], (eventlog.msg, url))
Esempio n. 15
0
    def test_04_mark_as_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        filters = {
            'event': event,
            'name': 'MockSN',
        }
        self.assertFalse(SnEvent.objects.filter(**filters).exists())
        sn._mark_as_publish(event, sn_mock.name, 42)
        self.assertTrue(SnEvent.objects.filter(**filters).exists())
        sn_id = SnEvent.objects.filter(**filters).values_list('sn_id',
                                                              flat=True)[0]
        self.assertEqual(sn_id, '42')

        eventlog = BoEventLog.objects.get(id=1)
        filters = {
            'eventlog': eventlog,
            'name': sn_mock.name,
        }
        self.assertFalse(SnEventLog.objects.filter(**filters).exists())
        sn._mark_as_publish(eventlog, sn_mock.name, 42)
        self.assertTrue(SnEventLog.objects.filter(**filters).exists())
        sn_id = SnEventLog.objects.filter(**filters).values_list('sn_id',
                                                                 flat=True)[0]
        self.assertEqual(sn_id, '42')
Esempio n. 16
0
    def test_08_publish_error(self, mock_sn):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 1)
        msg = "Can't publish msg: %s, event_id: %d for sn: %s (%s)" % (
            event.msg, event.id, sn_mock.name, 'not connected')
        self.assertEqual(self.log._error[0], msg)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 2)
        msg = "Can't publish msg: %s, event_id: %d for sn: %s (%s)" % (
            eventlog.msg, eventlog.event.id, sn_mock.name, 'not connected')
        self.assertEqual(self.log._error[1], msg)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 17
0
    def test_07_published_msg(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        SnEvent.objects.create(event=event, name=sn_mock.name, sn_id=42)
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        SnEventLog.objects.create(
            eventlog=eventlog, name=sn_mock.name, sn_id=42)
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 18
0
def cron_social_network():
    now = datetime.now(pytz.timezone('UTC'))
    sn = SocialNetworks()

    filters = Q(date_start__lte=now) & (Q(date_end__gte=now)
                                        | Q(date_end__isnull=True))
    for event in Event.objects.filter(filters):
        sn.publish(event)

    deltat = now - timedelta(minutes=5)
    filters = Q(date__lte=now) & (Q(event__date_end__gte=deltat)
                                  | Q(event__date_end__isnull=True))
    for eventlog in EventLog.objects.filter(filters):
        sn.publish(eventlog)
Esempio n. 19
0
    def test_05_is_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        self.assertFalse(sn._is_publish(event, sn_mock.name))
        SnEvent.objects.create(event=event, name=sn_mock.name, sn_id=42)
        self.assertTrue(sn._is_publish(event, sn_mock.name))

        eventlog = BoEventLog.objects.get(id=1)
        self.assertFalse(sn._is_publish(eventlog, sn_mock.name))
        SnEventLog.objects.create(eventlog=eventlog,
                                  name=sn_mock.name,
                                  sn_id=42)
        self.assertTrue(sn._is_publish(eventlog, sn_mock.name))
Esempio n. 20
0
    def test_06_empty_msg(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        self.assertEqual(event.msg, None)
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        self.assertEqual(eventlog.msg, None)
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 21
0
    def test_09_publish(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        filters = {
            'event': event,
            'name': 'MockSN',
        }
        self.assertFalse(SnEvent.objects.filter(**filters).exists())
        sn.publish(event)
        self.assertTrue(SnEvent.objects.filter(**filters).exists())
        self.assertEqual(len(self.log._info), 1)
        url = '%s%d' % (settings.URL_EVENT, event.id)
        msg = 'publish sn: %s msg: %s, url: %s' % (sn_mock.name, event.msg,
                                                   url)
        self.assertEqual(self.log._info[0], msg)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 1)
        self.assertEqual(sn_mock._msg[0], (event.msg, url))

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        filters = {
            'eventlog': eventlog,
            'name': 'MockSN',
        }
        self.assertFalse(SnEventLog.objects.filter(**filters).exists())
        sn.publish(eventlog)
        self.assertTrue(SnEventLog.objects.filter(**filters).exists())
        self.assertEqual(len(self.log._info), 2)
        url = '%s%d' % (settings.URL_EVENT, eventlog.event.id)
        msg = 'publish sn: %s msg: %s, url: %s' % (sn_mock.name, eventlog.msg,
                                                   url)
        self.assertEqual(self.log._info[1], msg)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 2)
        self.assertEqual(sn_mock._msg[1], (eventlog.msg, url))
Esempio n. 22
0
    def test_07_published_msg(self):
        sn = SocialNetworks()
        sn_mock = sn._social_networks[0]

        event = BoEvent.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        event.msg = 'not empyt event'
        SnEvent.objects.create(event=event, name=sn_mock.name, sn_id=42)
        sn.publish(event)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)

        eventlog = BoEventLog.objects.get(id=1)
        # XXX don't save the obj we don't want to test the post_save trigger
        eventlog.msg = 'not empyt eventlog'
        SnEventLog.objects.create(eventlog=eventlog,
                                  name=sn_mock.name,
                                  sn_id=42)
        sn.publish(eventlog)
        self.assertEqual(len(self.log._info), 0)
        self.assertEqual(len(self.log._error), 0)
        self.assertEqual(len(sn_mock._msg), 0)
Esempio n. 23
0
 def test_11_get_max_char_ok(self):
     sn = SocialNetworks()
     self.assertEqual(sn.get_max_char(), 42)
Esempio n. 24
0
 def test_11_get_max_char_ok(self):
     sn = SocialNetworks()
     self.assertEqual(sn.get_max_char(), 42)
Esempio n. 25
0
 def test_02_error_on_init(self, mock_sn):
     sn = SocialNetworks()
     self.assertEqual(self.log._info, [])
     self.assertEqual(len(self.log._error), 1)
     msg = "Couldn't init %s (MockSN not configured)" % (MockSN, )
     self.assertEqual(self.log._error[0], msg)