mirror of
https://github.com/quantum5/optimize-later.git
synced 2025-04-24 12:32:04 -04:00
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
|
import imp
|
||
|
import sys
|
||
|
import uuid
|
||
|
|
||
|
from optimize_later.core import optimize_later, OptimizeReport
|
||
|
|
||
|
try:
|
||
|
import django
|
||
|
except ImportError:
|
||
|
pass
|
||
|
else:
|
||
|
from django.test import TestCase
|
||
|
from optimize_later import apps
|
||
|
|
||
|
|
||
|
class DjangoCallbackTest(TestCase):
|
||
|
def make_module_path(self, function):
|
||
|
name = 'id_%s' % (uuid.uuid4().hex,)
|
||
|
module = imp.new_module(name)
|
||
|
module.function = function
|
||
|
sys.modules[name] = module
|
||
|
return '%s.function' % (name,)
|
||
|
|
||
|
def test_no_callbacks(self):
|
||
|
apps.initialize_django_callbacks()
|
||
|
self.assertEqual(apps.django_callbacks, [])
|
||
|
|
||
|
def test_callbacks(self):
|
||
|
reports = []
|
||
|
with self.settings(OPTIMIZE_LATER_CALLBACKS=[
|
||
|
self.make_module_path(reports.append),
|
||
|
]):
|
||
|
apps.initialize_django_callbacks()
|
||
|
with optimize_later('test'):
|
||
|
pass
|
||
|
self.assertEqual(len(reports), 1)
|
||
|
self.assertIsInstance(reports[0], OptimizeReport)
|