""" This module contains explicit tests for corner cases in :py:mod:`userdbs.signals` that are not handled by the tests in :py:mod:`userdbs.tests.test_models`. """ from __future__ import unicode_literals from django.test import TestCase from django.test.utils import override_settings from taskresults.models import TaskResult from userdbs.signals import (handle_dbuser_created, handle_dbuser_deleted, handle_dbuser_password_set, handle_userdb_created, handle_userdb_deleted) try: from unittest.mock import Mock except ImportError: from mock import Mock @override_settings( CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND='memory', BROKER_BACKEND='memory' ) class TestCaseWithCeleryTasks(TestCase): pass class TestWithUnknownDBType(TestCaseWithCeleryTasks): def test_handle_dbuser_password_set_unknown(self): instance = Mock(data={'name': 'test', 'db_type': -1}) handle_dbuser_password_set(Mock(name='sender'), instance, 'secret') self.assertFalse(TaskResult.objects.exists()) def test_handle_dbuser_create_unknown(self): instance = Mock(data={'name': 'test', 'db_type': -1}) handle_dbuser_created( Mock(name='sender'), instance, True, password='secret') self.assertFalse(TaskResult.objects.exists()) def test_handle_dbuser_deleted_unknown(self): instance = Mock(data={'name': 'test', 'db_type': -1}) handle_dbuser_deleted(Mock(name='sender'), instance) self.assertFalse(TaskResult.objects.exists()) def test_handle_userdb_created_unknown(self): instance = Mock( data={ 'db_name': 'test', 'db_user': Mock(data={'name': 'test', 'db_type': -1, }) }) handle_userdb_created(Mock(name='sender'), instance, True) self.assertFalse(TaskResult.objects.exists()) def test_handle_userdb_deleted_unknown(self): instance = Mock( data={ 'db_name': 'test', 'db_user': Mock(data={'name': 'test', 'db_type': -1, }) }) handle_userdb_deleted(Mock(name='sender'), instance) self.assertFalse(TaskResult.objects.exists())