          p = DifferentDjangoVersion(title="FooBar")
          msg = "Pickled model instance's Django version 1.0 does not match the current version %s." % get_version()
          with self.assertRaisesMessage(RuntimeWarning, msg):
              pickle.loads(pickle.dumps(p))
  
      def test_unpickling_when_appregistrynotready(self):
          """
          #24007 -- Verifies that a pickled model can be unpickled without having
          to manually setup the apps registry beforehand.
          """
          script_template = """#!/usr/bin/env python
  import pickle
  
  from django.conf import settings
  
  data = %r
  
  settings.configure(DEBUG=False, INSTALLED_APPS=['model_regress'], SECRET_KEY = "blah")
  article = pickle.loads(data)
  print(article.headline)"""
          a = Article.objects.create(
              headline="Some object",
              pub_date=datetime.datetime.now(),
              article_text="This is an article",
          )
  
          with NamedTemporaryFile(mode='w+', suffix=".py") as script:
              script.write(script_template % pickle.dumps(a))
              script.flush()
              # A path to model_regress must be set in PYTHONPATH
              model_regress_dir = os.path.dirname(upath(__file__))
              model_regress_path = os.path.abspath(model_regress_dir)
              tests_path = os.path.split(model_regress_path)[0]
              pythonpath = os.environ.get('PYTHONPATH', '')
              pythonpath = npath(os.pathsep.join([tests_path, pythonpath]))
  
              with mock.patch.dict('os.environ', {'PYTHONPATH': pythonpath}):
                  try:
                      result = subprocess.check_output([sys.executable, script.name])
                  except subprocess.CalledProcessError:
                      self.fail("Unable to reload model pickled data")
          self.assertEqual(result.strip().decode(), "Some object")
 
</s> remove         if not apps.ready:
            apps.populate(settings.INSTALLED_APPS)
 </s> add  </s> remove from .models import Article

 </s> add  </s> remove from django.test import TestCase, mock
from django.utils._os import npath, upath
 </s> add from django.test import TestCase </s> remove from django.core.files.temp import NamedTemporaryFile
 </s> add 
          p = DifferentDjangoVersion(title="FooBar")
          msg = "Pickled model instance's Django version 1.0 does not match the current version %s." % get_version()
          with self.assertRaisesMessage(RuntimeWarning, msg):
              pickle.loads(pickle.dumps(p))






































keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace
 Refs #24007 -- Removed an apps.populate() call in model unpickling that can cause deadlocks. 
tests/model_regress/test_pickle.py