[openstack-dev] [Neutron][oslo.db] Inspecting sqlite db during unit tests

Carl Baldwin carl at ecbaldwin.net
Mon Jul 25 16:51:55 UTC 2016


On Fri, Jul 22, 2016 at 8:45 AM, Mike Bayer <mbayer at redhat.com> wrote:

>
> On 07/22/2016 04:02 AM, Kevin Benton wrote:
>
>> Now that we have switched to oslo.db for test provisioning the
>> responsibility of choosing a location lands
>> here:
>> https://github.com/openstack/oslo.db/blob/a79479088029e4fa51def91cb36bc652356462b6/oslo_db/sqlalchemy/provision.py#L505
>>
>> The problem is that when you specify OS_TEST_DBAPI_ADMIN_CONNECTION it
>> does end up creating the file, but then the logic above chooses a URL
>> based on the random ident. So you can find an sqlite file in your tmp
>> dir, it just won't be the one you asked for.
>>
>> It seems like a bug in the oslo.db logic, but the commit that added it
>> was part of a much larger refactor so I'm not sure if it was intentional
>> to ensure that no two tests used the same db.
>>
>
> There is also a very recent commit to Neutron at
> https://review.openstack.org/#/c/332476/ , which I think changes the
> system to actually use the provisioning for the SQLite database as well,
> whereas before it might have been not taking effect.  But in any case, the
> OS_TEST_DBAPI_ADMIN_CONNECTION thing still works in that if you give it a
> file-based URL, provisioning should be putting the database files in /tmp.
> If your approach is "pdb.set_trace(); then look at the file", just do this:
>
> $ OS_TEST_DBAPI_ADMIN_CONNECTION=sqlite:///myfile.db
> .tox/functional/bin/python -m unittest
> neutron.tests.unit.db.test_db_base_plugin_v2.TestBasicGet.test_single_get_admin
>
> >
> /home/classic/dev/redhat/openstack/neutron/neutron/tests/unit/db/test_db_base_plugin_v2.py(790)test_single_get_admin()
> -> plugin = neutron.db.db_base_plugin_v2.NeutronDbPluginV2()
> (Pdb)
> (Pdb) self.engine.url
> sqlite:////tmp/hjbckefatl.db
>
> then you can "sqlite3 /tmp/hjbckefatl.db" while the test is pending.
>

Thank you, that helps.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160725/2d05e951/attachment.html>


More information about the OpenStack-dev mailing list