subnet service types not working with sqlite3 version 3.7.17. But it works from sqlite3 version 3.8.0 and above versions.
Because of this, subnet service type unit tests failing in sqlite3 version 3.7.17.
Captured traceback:
~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "neutron/tests/base.py", line 125, in func
return f(self, *args, **kwargs)
File "neutron/tests/unit/extensions/test_subnet_service_types.py", line 245, in test_create_port_no_device_owner_no_fallback
self.test_create_port_no_device_owner(fallback=False)
File "neutron/tests/base.py", line 125, in func
return f(self, *args, **kwargs)
File "neutron/tests/unit/extensions/test_subnet_service_types.py", line 242, in test_create_port_no_device_owner
self._assert_port_res(port, '', subnet, fallback)
File "neutron/tests/unit/extensions/test_subnet_service_types.py", line 173, in _assert_port_res
self.assertEqual(error, res['NeutronError']['type'])
KeyError: 'NeutronError'
_query_filter_service_subnets [1] is behaving differently in 3.7.17 and 3.8.0 for these tests
[1] https://github.com/openstack/neutron/blob/master/neutron/db/ipam_backend_mixin.py#L597
I have seen this on centos7 setup, which by default uses sqlite3 version 3.7.17.
sqlite 3.7.15 - 3.7.17 has this issue. _query_ filter_ service_ subnets is behaving as expected for Sqlite 3.7.14(and below versions) and 3.8.0(and above versions).