On Mon, Dec 21, 2009 at 4:14 PM, Steve Howard <[email protected]> wrote: > 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).
Sounds good - thanks. > 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
