def test_email_send_action_no_sites(self): """ Test re-sending of activation emails via admin action when ``django.contrib.sites`` is not installed; the fallback will be a ``RequestSite`` instance. """ Site = get_site_model() Site._meta.installed = False admin_class = RegistrationAdmin(RegistrationProfile, admin.site) alice = self.backend.register(_mock_request(), email='*****@*****.**', password1='swordfish') admin_class.resend_activation_email(_mock_request(), RegistrationProfile.objects.all()) self.assertEqual(len( mail.outbox), 2) # One on registering, one more on the resend. RegistrationProfile.objects.filter(user=alice).update( activation_key=RegistrationProfile.ACTIVATED) admin_class.resend_activation_email(_mock_request(), RegistrationProfile.objects.all()) self.assertEqual(len( mail.outbox), 2) # No additional email because the account has activated. Site._meta.installed = True
def fast_fixture_setup(instance): if not connections_support_transactions(): return super(TestCase, instance)._fixture_setup() fixtures = getattr(instance, 'fixtures', []) loaddata = fixtures flush_db = True if len(self.currernt_fixtures) <= len(fixtures): if fixtures[:len(self.currernt_fixtures )] == self.currernt_fixtures: # current fixtures are still OK loaddata = fixtures[len(self.currernt_fixtures):] self.fixtures_prevented += len(self.currernt_fixtures) flush_db = False if flush_db: ContentType.objects.clear_cache() self.flushes += 1 self.currernt_fixtures = [] for db in connections: call_command('flush', verbosity=0, interactive=False, database=db) if len(loaddata): self.fixtures += len(loaddata) self.fixtures_sets.append(self.currernt_fixtures + loaddata) for db in connections: call_command( 'loaddata', *loaddata, **{ 'verbosity': 0, 'commit': True, 'database': db }) self.currernt_fixtures = fixtures # If the test case has a multi_db=True flag, setup all databases. # Otherwise, just use default. if getattr(self, 'multi_db', False): databases = connections else: databases = [DEFAULT_DB_ALIAS] instance.atomics = {} for db in databases: instance.atomics[db] = transaction.atomic(using=db) instance.atomics[db].__enter__() disable_transaction_methods() from django.contrib.sites import get_site_model Site = get_site_model() Site.objects.clear_cache()
def fast_fixture_setup(instance): if not connections_support_transactions(): return super(TestCase, instance)._fixture_setup() fixtures = getattr(instance, "fixtures", []) loaddata = fixtures flush_db = True if len(self.currernt_fixtures) <= len(fixtures): if fixtures[: len(self.currernt_fixtures)] == self.currernt_fixtures: # current fixtures are still OK loaddata = fixtures[len(self.currernt_fixtures) :] self.fixtures_prevented += len(self.currernt_fixtures) flush_db = False if flush_db: ContentType.objects.clear_cache() self.flushes += 1 self.currernt_fixtures = [] for db in connections: call_command("flush", verbosity=0, interactive=False, database=db) if len(loaddata): self.fixtures += len(loaddata) self.fixtures_sets.append(self.currernt_fixtures + loaddata) for db in connections: call_command("loaddata", *loaddata, **{"verbosity": 0, "commit": True, "database": db}) self.currernt_fixtures = fixtures # If the test case has a multi_db=True flag, setup all databases. # Otherwise, just use default. if getattr(self, "multi_db", False): databases = connections else: databases = [DEFAULT_DB_ALIAS] instance.atomics = {} for db in databases: instance.atomics[db] = transaction.atomic(using=db) instance.atomics[db].__enter__() disable_transaction_methods() from django.contrib.sites import get_site_model Site = get_site_model() Site.objects.clear_cache()
def test_registration_no_sites(self): """ Test that registration still functions properly when ``django.contrib.sites`` is not installed; the fallback will be a ``RequestSite`` instance. """ Site = get_site_model() Site._meta.installed = False new_user = self.backend.register(_mock_request(), email='*****@*****.**', password1='secret') self.failUnless(new_user.check_password('secret')) self.assertEqual(new_user.email, '*****@*****.**') self.failIf(new_user.is_active) self.assertEqual(RegistrationProfile.objects.count(), 1) self.assertEqual(len(mail.outbox), 1) Site._meta.installed = True