Exemplo n.º 1
0
    def setUp(self):
        self.staff = structure_factories.UserFactory(is_staff=True)
        self.author = structure_factories.UserFactory()
        self.other_user = structure_factories.UserFactory()

        self.valid_event_types = loggers.get_valid_events()[:3]
        self.valid_event_groups = loggers.get_event_groups_keys()[:3]
Exemplo n.º 2
0
class SystemNotificationFactory(factory.DjangoModelFactory):
    class Meta:
        model = models.SystemNotification

    event_types = get_valid_events()[:3]
    roles = ['admin']
    hook_content_type = factory.LazyAttribute(
        lambda o: ct_models.ContentType.objects.get_by_natural_key('logging', 'emailhook')
    )
Exemplo n.º 3
0
 def get_fields(self):
     """
     When static declaration is used, event type choices are fetched too early -
     even before all apps are initialized. As a result, some event types are missing.
     When dynamic declaration is used, all valid event types are available as choices.
     """
     fields = super(BaseHookSerializer, self).get_fields()
     fields['event_types'] = serializers.MultipleChoiceField(
         choices=loggers.get_valid_events(), required=False)
     fields['event_groups'] = serializers.MultipleChoiceField(
         choices=loggers.get_event_groups_keys(), required=False)
     return fields
Exemplo n.º 4
0
class BaseHookForm(forms.ModelForm):
    event_types = JSONMultipleChoiceField(
        choices=lambda: [(e, e) for e in get_valid_events()],
        widget=forms.SelectMultiple(attrs={'size': '30'}),
        required=False,
    )

    event_groups = JSONMultipleChoiceField(
        choices=lambda: [(g, g) for g in get_event_groups()],
        widget=forms.SelectMultiple(attrs={'size': '30'}),
        required=False,
    )
Exemplo n.º 5
0
class SystemNotificationForm(forms.ModelForm):
    event_types = JSONMultipleChoiceField(
        choices=[(e, e) for e in get_valid_events()],
        widget=forms.SelectMultiple(attrs={'size': '30'}))

    class Meta:
        model = models.SystemNotification
        exclude = 'uuid',

    def __init__(self, *args, **kwargs):
        super(SystemNotificationForm, self).__init__(*args, **kwargs)
        self.fields[
            'hook_content_type'].queryset = models.BaseHook.get_all_content_types(
            )
Exemplo n.º 6
0
class WebHookFactory(factory.DjangoModelFactory):
    class Meta:
        model = models.WebHook

    event_types = get_valid_events()[:3]
    destination_url = 'http://example.com/'

    @classmethod
    def get_list_url(cls):
        return 'http://testserver' + reverse('webhook-list')

    @classmethod
    def get_url(cls, hook=None):
        if hook is None:
            hook = WebHookFactory()
        return 'http://testserver' + reverse('webhook-detail', kwargs={'uuid': hook.uuid})
Exemplo n.º 7
0
class PushHookFactory(factory.DjangoModelFactory):
    class Meta:
        model = models.PushHook

    event_types = get_valid_events()[:3]
    token = 'VALID_TOKEN'
    type = models.PushHook.Type.ANDROID

    @classmethod
    def get_list_url(cls):
        return 'http://testserver' + reverse('pushhook-list')

    @classmethod
    def get_url(cls, hook=None):
        if hook is None:
            hook = PushHookFactory()
        return 'http://testserver' + reverse('pushhook-detail', kwargs={'uuid': hook.uuid})
    def handle(self, *args, **options):
        self.stdout.write('Checking event types of hooks...')

        valid_events = loggers.get_valid_events()
        changed_hooks = 0
        for model in EventTypesMixin.get_all_models():
            for hook in model.objects.all():
                clean_events = filter(lambda x: x in valid_events,
                                      hook.event_types)
                if clean_events != hook.event_types:
                    hook.event_types = clean_events
                    hook.save(update_fields=['event_types'])
                    changed_hooks += 1

        if changed_hooks == 0:
            self.stdout.write('All hooks have valid event types.')
        elif changed_hooks == 1:
            self.stdout.write('1 hook has been updated.')
        else:
            self.stdout.write('%s hooks have been updated.' % changed_hooks)
 def setUp(self):
     self.events = loggers.get_valid_events()[:3]