view downloads/tests/test_receivers.py @ 989:2908859c2fe4

Smilies now use relative links. This is for upcoming switch to SSL. Currently we do not need absolute URLs for smilies. If this changes we can add it later.
author Brian Neal <bgneal@gmail.com>
date Thu, 29 Oct 2015 20:54:34 -0500
parents 9f9e50df5b83
children
line wrap: on
line source
"""Tests for the downloads app signal handlers."""

from django.contrib.auth.models import User
from django.test import TestCase

from mock import Mock

import custom_search.receivers

from downloads.models import Category
from downloads.models import Download
from downloads.models import PendingDownload


class ReceiverTestCase(TestCase):

    fixtures = ['downloads_categories.json']

    def setUp(self):
        self.user = User.objects.create_user('user', 'user@example.com', 'pw')

        # Don't let our custom search signal handler class catch any of the
        # signals we are throwing here.
        custom_search.receivers.signal_processor.teardown()

    def tearDown(self):
        custom_search.receivers.signal_processor.setup()

    def test_download_signal_handlers(self):

        category = Category.objects.get(pk=1)
        dl = Download(category=category,
                      title='Title',
                      description='Cool stuff',
                      is_public=True,
                      user=self.user,
                      ip_address='127.0.0.1')
        dl.save()

        category = Category.objects.get(pk=1)
        self.assertEqual(1, category.count)

        category2 = Category.objects.get(pk=4)
        dl.category = category2
        dl.save()

        category = Category.objects.get(pk=1)
        self.assertEqual(0, category.count)
        category2 = Category.objects.get(pk=4)
        self.assertEqual(1, category2.count)

        dl.delete()
        category2 = Category.objects.get(pk=4)
        self.assertEqual(0, category2.count)

    def test_pending_download_signal_handlers(self):

        category = Category.objects.get(pk=1)
        dl = PendingDownload(
                category=category,
                title='Title',
                description='Cool stuff',
                user=self.user,
                ip_address='127.0.0.1')
        dl.save()

        dl.file = Mock()
        dl.delete()

        dl.file.delete.assert_called_with(save=False)