After syncing in this change, users should just run
utils/build_externals.py as usual, which will automatically download
and install Django 1.1.1 in autotest/site-packages/.

All Autotest code should be using the site-packages version of Django
now (and is, to my knowledge).  All users should be using
build_externals.py by now; if they're not, this is a good opportunity
to change (all you have to do is run the script).  That's been the
recommended setup for nearly a year now, since the script was checked
in (2009/2/4).

Steve

On Mon, Dec 21, 2009 at 3:26 PM, Martin Bligh <[email protected]> wrote:
> what's the migration path for existing users .... can they just run
> some re-setup script to upgrade?
>
> On Mon, Dec 21, 2009 at 3:15 PM, Steve Howard <[email protected]> wrote:
>> Update to Django 1.1.1.  I want to use a new feature for my RESTful 
>> interface prototyping (direct inclusion of URL patterns in URLconfs).
>>
>> The one obstacle this presented was that Django 1.1.1 changes the DB 
>> connection object to accept DB config information in its constructor, rather 
>> than reading it from django.conf.settings on-demand.  This was a problem 
>> because we change stuff in django.conf.settings on the fly to do our fancy 
>> test DB stuff -- basically, we initialize a SQLite DB once, copy it off, and 
>> then copy it between test cases, rather than clearing and reconstructing the 
>> initial DB.  I did measurements and it turns out all that jazz wasn't really 
>> saving us much time at all, so I just got rid of it all.  Django's testing 
>> stuff has improved and v1.1 even has some new tricks for using transactions 
>> to accomplish the above with a dramatic speedup, so we ought to look into 
>> using that in the future.
>>
>> Signed-off-by: Steve Howard <[email protected]>
>>
>> --- autotest/frontend/afe/frontend_test_utils.py        2009-12-18 
>> 02:10:21.000000000 -0800
>> +++ autotest/frontend/afe/frontend_test_utils.py        2009-12-18 
>> 14:32:48.000000000 -0800
>> @@ -6,32 +6,6 @@
>>  from autotest_lib.client.common_lib.test_utils import mock
>>
>>  class FrontendTestMixin(object):
>> -    _test_db_initialized = False
>> -
>> -    def _initialize_test_db(self):
>> -        if self._test_db_initialized:
>> -            return
>> -
>> -        temp_fd, test_db_file = tempfile.mkstemp(suffix='.frontend_test')
>> -        FrontendTestMixin._test_db_file = test_db_file
>> -        os.close(temp_fd)
>> -
>> -        def cleanup_test_db():
>> -            os.remove(test_db_file)
>> -        atexit.register(cleanup_test_db)
>> -
>> -        setup_test_environment.set_test_database(test_db_file)
>> -        setup_test_environment.set_up()
>> -        FrontendTestMixin._test_db_backup = (
>> -            setup_test_environment.backup_test_database())
>> -        FrontendTestMixin._test_db_initialized = True
>> -
>> -
>> -    def _open_test_db(self):
>> -        self._initialize_test_db()
>> -        setup_test_environment.restore_test_database(self._test_db_backup)
>> -
>> -
>>     def _fill_in_test_data(self):
>>         """Populate the test database with some hosts and labels."""
>>         acl_group = models.AclGroup.objects.create(name='my_acl')
>> @@ -91,7 +65,7 @@
>>
>>     def _frontend_common_setup(self, fill_data=True):
>>         self.god = mock.mock_god()
>> -        self._open_test_db()
>> +        setup_test_environment.set_up()
>>         self._setup_dummy_user()
>>         if fill_data:
>>             self._fill_in_test_data()
>> --- autotest/frontend/setup_test_environment.py 2009-12-18 
>> 14:32:48.000000000 -0800
>> +++ autotest/frontend/setup_test_environment.py 2009-12-18 
>> 14:32:48.000000000 -0800
>> @@ -14,27 +14,6 @@
>>  from django.db import connection
>>  from autotest_lib.frontend.afe import readonly_connection
>>
>> -def set_test_database(database):
>> -    settings.DATABASE_NAME = database
>> -    destroy_test_database()
>> -
>> -
>> -def backup_test_database():
>> -    temp_fd, backup_path = tempfile.mkstemp(suffix='.test_db_backup')
>> -    os.close(temp_fd)
>> -    shutil.copyfile(settings.DATABASE_NAME, backup_path)
>> -    return backup_path
>> -
>> -
>> -def restore_test_database(backup_path):
>> -    connection.close()
>> -    shutil.copyfile(backup_path, settings.DATABASE_NAME)
>> -
>> -
>> -def cleanup_database_backup(backup_path):
>> -    os.remove(backup_path)
>> -
>> -
>>  def run_syncdb(verbosity=0):
>>     management.call_command('syncdb', verbosity=verbosity, interactive=False)
>>
>> --- autotest/scheduler/monitor_db_functional_test.py    2009-12-18 
>> 14:32:48.000000000 -0800
>> +++ autotest/scheduler/monitor_db_functional_test.py    2009-12-18 
>> 14:32:48.000000000 -0800
>> @@ -316,6 +316,7 @@
>>
>>
>>     def tearDown(self):
>> +        self._database.disconnect()
>>         self._frontend_common_teardown()
>>
>>
>> @@ -332,7 +333,6 @@
>>
>>         self._database = (
>>             database_connection.TranslatingDatabase.get_test_database(
>> -                file_path=self._test_db_file,
>>                 translators=_DB_TRANSLATORS))
>>         self._database.connect(db_type='django')
>>         self.god.stub_with(monitor_db, '_db', self._database)
>> --- autotest/scheduler/monitor_db_unittest.py   2009-12-18 
>> 02:24:44.000000000 -0800
>> +++ autotest/scheduler/monitor_db_unittest.py   2009-12-18 
>> 14:32:48.000000000 -0800
>> @@ -14,6 +14,7 @@
>>  from autotest_lib.frontend.afe import models
>>  from autotest_lib.scheduler import monitor_db, drone_manager, email_manager
>>  from autotest_lib.scheduler import scheduler_config, gc_stats
>> +from autotest_lib.scheduler import monitor_db_functional_test
>>
>>  _DEBUG = False
>>
>> @@ -91,14 +92,16 @@
>>         monitor_db.DBObject._clear_instance_cache()
>>
>>         self._database = (
>> -            database_connection.DatabaseConnection.get_test_database(
>> -                self._test_db_file))
>> -        self._database.connect()
>> +            database_connection.TranslatingDatabase.get_test_database(
>> +                translators=monitor_db_functional_test._DB_TRANSLATORS))
>> +        self._database.connect(db_type='django')
>>         self._database.debug = _DEBUG
>>
>> -        monitor_db._db = self._database
>> -        monitor_db._drone_manager._results_dir = '/test/path'
>> -        monitor_db._drone_manager._temporary_directory = '/test/path/tmp'
>> +        self.god.stub_with(monitor_db, '_db', self._database)
>> +        self.god.stub_with(monitor_db._drone_manager, '_results_dir',
>> +                           '/test/path')
>> +        self.god.stub_with(monitor_db._drone_manager, 
>> '_temporary_directory',
>> +                           '/test/path/tmp')
>>
>>
>>     def setUp(self):
>> --- autotest/utils/build_externals.py   2009-12-18 14:32:48.000000000 -0800
>> +++ autotest/utils/build_externals.py   2009-12-18 14:32:48.000000000 -0800
>> @@ -548,6 +548,8 @@
>>             if self.hex_sum != checksum.hexdigest():
>>                 logging.warning('Bad checksum for %s fetched from %s.',
>>                                 self.name, url)
>> +                logging.warning('Got %s', checksum.hexdigest())
>> +                logging.warning('Expected %s', self.hex_sum)
>>                 os.unlink(local_path)
>>                 continue
>>             logging.info('Good checksum.')
>> @@ -638,10 +640,10 @@
>>
>>
>>  class DjangoPackage(ExternalPackage):
>> -    version = '1.0.4'
>> +    version = '1.1.1'
>>     local_filename = 'Django-%s.tar.gz' % version
>>     urls = ('http://www.djangoproject.com/download/%s/tarball/' % version,)
>> -    hex_sum = 'a8b9f33adb007146b8b57f22f0f38467f0d2693a'
>> +    hex_sum = '441c54f0e90730bf4a55432b64519169b1e6ef20'
>>
>>     _build_and_install = ExternalPackage._build_and_install_from_package
>>     _build_and_install_current_dir = (
>> _______________________________________________
>> Autotest mailing list
>> [email protected]
>> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>>
>
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to