Пример #1
0
 def test_json_failboat(self):
     request = self.request
     a = Addon.objects.get()
     ActivityLog.log(request, amo.LOG['CREATE_ADDON'], a)
     entry = ActivityLog.objects.get()
     entry._arguments = 'failboat?'
     entry.save()
     eq_(entry.arguments, None)
Пример #2
0
 def test_pseudo_objects(self):
     """
     If we give an argument of (Addon, 3615) ensure we get
     Addon.objects.get(pk=3615).
     """
     a = ActivityLog()
     a.arguments = [(Addon, 3615)]
     eq_(a.arguments[0], Addon.objects.get(pk=3615))
Пример #3
0
 def test_pseudo_objects(self):
     """
     If we give an argument of (Addon, 3615) ensure we get
     Addon.objects.get(pk=3615).
     """
     a = ActivityLog()
     a.arguments = [(Addon, 3615)]
     eq_(a.arguments[0], Addon.objects.get(pk=3615))
Пример #4
0
 def test_basic(self):
     request = self.request
     a = Addon.objects.get()
     ActivityLog.log(request, amo.LOG['CREATE_ADDON'], a)
     entries = ActivityLog.objects.for_addon(a)
     eq_(len(entries), 1)
     eq_(entries[0].arguments[0], a)
     eq_(unicode(entries[0]),
         'Joe CamelCase created addon Delicious Bookmarks')
Пример #5
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from addons.models import Addon
    from amo import get_user, logger_log
    from devhub.models import (ActivityLog, AddonLog, AppLog, UserLog,
                               CommentLog, VersionLog)
    from mkt.webapps.models import Webapp
    from users.models import UserProfile
    from versions.models import Version

    user = kw.get('user', get_user())

    if not user:
        logger_log.warning('Activity log called with no user: %s' % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    if 'details' in kw:
        al.details = kw['details']
    al.save()

    if 'details' in kw and 'comments' in al.details:
        CommentLog(comments=al.details['comments'], activity_log=al).save()

    # TODO(davedash): post-remora this may not be necessary.
    if 'created' in kw:
        al.created = kw['created']
        # Double save necessary since django resets the created date on save.
        al.save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Webapp:
                AppLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Version:
                VersionLog(version_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                UserLog(user_id=arg[1], activity_log=al).save()

        # Webapp first since Webapp subclasses Addon.
        if isinstance(arg, Webapp):
            AppLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Version):
            VersionLog(version=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
    return al
Пример #6
0
 def test_user_log_as_argument(self):
     """
     Tests that a user that has something done to them gets into the user
     log.
     """
     request = self.request
     u = UserProfile(username='******')
     u.save()
     ActivityLog.log(request, amo.LOG['ADD_USER_WITH_ROLE'],
             (u, 'developer', Addon.objects.get()))
     entries = ActivityLog.objects.for_user(request.amo_user)
     eq_(len(entries), 1)
     entries = ActivityLog.objects.for_user(u)
     eq_(len(entries), 1)
Пример #7
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from addons.models import Addon
    from amo import get_user, logger_log
    from devhub.models import (ActivityLog, AddonLog, AppLog, UserLog,
                               CommentLog, VersionLog)
    from mkt.webapps.models import Webapp
    from users.models import UserProfile
    from versions.models import Version

    user = kw.get('user', get_user())

    if not user:
        logger_log.warning('Activity log called with no user: %s' % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    if 'details' in kw:
        al.details = kw['details']
    al.save()

    if 'details' in kw and 'comments' in al.details:
        CommentLog(comments=al.details['comments'], activity_log=al).save()

    # TODO(davedash): post-remora this may not be necessary.
    if 'created' in kw:
        al.created = kw['created']
        # Double save necessary since django resets the created date on save.
        al.save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Webapp:
                AppLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Version:
                VersionLog(version_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                UserLog(user_id=arg[1], activity_log=al).save()

        # Webapp first since Webapp subclasses Addon.
        if isinstance(arg, Webapp):
            AppLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Version):
            VersionLog(version=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
    return al
Пример #8
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from access.models import Group
    from addons.models import Addon
    from amo import get_user, logger_log
    from devhub.models import ActivityLog, AddonLog, CommentLog, GroupLog, UserLog, VersionLog
    from users.models import UserProfile
    from versions.models import Version

    user = kw.get("user", get_user())

    if not user:
        logger_log.warning("Activity log called with no user: %s" % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    if "details" in kw:
        al.details = kw["details"]
    al.save()

    if "details" in kw and "comments" in al.details:
        CommentLog(comments=al.details["comments"], activity_log=al).save()

    # TODO(davedash): post-remora this may not be necessary.
    if "created" in kw:
        al.created = kw["created"]
        # Double save necessary since django resets the created date on save.
        al.save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Version:
                VersionLog(version_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                UserLog(user_id=arg[1], activity_log=al).save()
            elif arg[0] == Group:
                GroupLog(group_id=arg[1], activity_log=al).save()
        elif isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Version):
            VersionLog(version=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()
        elif isinstance(arg, Group):
            GroupLog(group=arg, activity_log=al).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
    return al
Пример #9
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from devhub.models import ActivityLog, AddonLog, UserLog
    from addons.models import Addon
    from users.models import UserProfile
    from amo import get_user, logger_log

    user = kw.get('user', get_user())

    if not user:
        logger_log.warning('Activity log called with no user: %s' % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    al.save()
    if 'created' in kw:
        al.created = kw['created']
        # Double save necessary since django resets the created date on save.
        al.save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                AddonLog(user_id=arg[1], activity_log=al).save()
        if isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
Пример #10
0
 def test_bad_arguments(self):
     a = ActivityLog()
     a.arguments = []
     a.action = amo.LOG.ADD_USER_WITH_ROLE.id
     eq_(a.to_string(), 'Something magical happened.')
Пример #11
0
 def test_bad_arguments(self):
     a = ActivityLog()
     a.arguments = []
     a.action = amo.LOG.ADD_USER_WITH_ROLE.id
     eq_(a.to_string(), 'Something magical happened.')
Пример #12
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from addons.models import Addon
    from amo import get_user, logger_log
    from devhub.models import (ActivityLog, ActivityLogAttachment, AddonLog,
                               AppLog, CommentLog, UserLog, VersionLog)
    from mkt.webapps.models import Webapp
    from users.models import UserProfile
    from versions.models import Version

    user = kw.get('user', get_user())

    if not user:
        logger_log.warning('Activity log called with no user: %s' % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    if 'details' in kw:
        al.details = kw['details']
    al.save()

    if 'details' in kw and 'comments' in al.details:
        CommentLog(comments=al.details['comments'], activity_log=al).save()

    # TODO(davedash): post-remora this may not be necessary.
    if 'created' in kw:
        al.created = kw['created']
        # Double save necessary since django resets the created date on save.
        al.save()

    if 'attachments' in kw:
        formset = kw['attachments']
        storage = get_storage_class()()
        for form in formset:
            data = form.cleaned_data
            if 'attachment' in data:
                attachment = data['attachment']
                storage.save('%s/%s' % (settings.REVIEWER_ATTACHMENTS_PATH,
                                        attachment.name), attachment)
                ActivityLogAttachment(activity_log=al,
                                      description=data['description'],
                                      mimetype=attachment.content_type,
                                      filepath=attachment.name).save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Webapp:
                AppLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Version:
                VersionLog(version_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                UserLog(user_id=arg[1], activity_log=al).save()

        # Webapp first since Webapp subclasses Addon.
        if isinstance(arg, Webapp):
            AppLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Version):
            VersionLog(version=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
    return al
Пример #13
0
def log(action, *args, **kw):
    """
    e.g. amo.log(amo.LOG.CREATE_ADDON, []),
         amo.log(amo.LOG.ADD_FILE_TO_VERSION, file, version)
    """
    from access.models import Group
    from addons.models import Addon
    from amo import get_user, logger_log
    from devhub.models import (ActivityLog, ActivityLogAttachment, AddonLog,
                               AppLog, CommentLog, GroupLog, UserLog,
                               VersionLog)
    from mkt.webapps.models import Webapp
    from users.models import UserProfile
    from versions.models import Version

    user = kw.get('user', get_user())

    if not user:
        logger_log.warning('Activity log called with no user: %s' % action.id)
        return

    al = ActivityLog(user=user, action=action.id)
    al.arguments = args
    if 'details' in kw:
        al.details = kw['details']
    al.save()

    if 'details' in kw and 'comments' in al.details:
        CommentLog(comments=al.details['comments'], activity_log=al).save()

    # TODO(davedash): post-remora this may not be necessary.
    if 'created' in kw:
        al.created = kw['created']
        # Double save necessary since django resets the created date on save.
        al.save()

    if 'attachments' in kw:
        formset = kw['attachments']
        storage = get_storage_class()()
        for form in formset:
            data = form.cleaned_data
            if 'attachment' in data:
                attachment = data['attachment']
                storage.save('%s/%s' % (settings.REVIEWER_ATTACHMENTS_PATH,
                                        attachment.name), attachment)
                ActivityLogAttachment(activity_log=al,
                                      description=data['description'],
                                      mimetype=attachment.content_type,
                                      filepath=attachment.name).save()

    for arg in args:
        if isinstance(arg, tuple):
            if arg[0] == Webapp:
                AppLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Addon:
                AddonLog(addon_id=arg[1], activity_log=al).save()
            elif arg[0] == Version:
                VersionLog(version_id=arg[1], activity_log=al).save()
            elif arg[0] == UserProfile:
                UserLog(user_id=arg[1], activity_log=al).save()
            elif arg[0] == Group:
                GroupLog(group_id=arg[1], activity_log=al).save()

        # Webapp first since Webapp subclasses Addon.
        if isinstance(arg, Webapp):
            AppLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Addon):
            AddonLog(addon=arg, activity_log=al).save()
        elif isinstance(arg, Version):
            VersionLog(version=arg, activity_log=al).save()
        elif isinstance(arg, UserProfile):
            # Index by any user who is mentioned as an argument.
            UserLog(activity_log=al, user=arg).save()
        elif isinstance(arg, Group):
            GroupLog(group=arg, activity_log=al).save()

    # Index by every user
    UserLog(activity_log=al, user=user).save()
    return al
Пример #14
0
 def test_user_log(self):
     request = self.request
     ActivityLog.log(request, amo.LOG['CUSTOM_TEXT'], 'hi there')
     entries = ActivityLog.objects.for_user(request.amo_user)
     eq_(len(entries), 1)
Пример #15
0
 def test_output(self):
     request = self.request
     ActivityLog.log(request, amo.LOG['CUSTOM_TEXT'], 'hi there')
     entry = ActivityLog.objects.get()
     eq_(unicode(entry), 'hi there')
Пример #16
0
 def test_no_arguments(self):
     request = self.request
     ActivityLog.log(request, amo.LOG['CUSTOM_HTML'])
     entry = ActivityLog.objects.get()
     eq_(entry.arguments, [])