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

Reply via email to