)]}'
{"neutron/tests/common/base.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"dad1a082f680cb929ced571e46ecda42dd0f9d47","unresolved":false,"context_lines":[{"line_number":74,"context_line":"class MySQLTestCase(test_base.MySQLOpportunisticTestCase):"},{"line_number":75,"context_line":"    \"\"\"Base test class for MySQL tests."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    Force PyMySQL use."},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af86dd1_59978590","line":77,"updated":"2015-06-12 21:54:06.000000000","message":"Nit: \"Enforce the supported driver, which is PyMySQL.\"","commit_id":"082b46e5ed499e16b607a7475d95d480e060323e"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"774d443242577178942a95e6d8365412693c6f6d","unresolved":false,"context_lines":[{"line_number":97,"context_line":"impl \u003d provision.BackendImpl.impl(\"mysql+pymysql\")"},{"line_number":98,"context_line":"url \u003d impl.create_opportunistic_driver_url()"},{"line_number":99,"context_line":"# NOTE(cbrandily): Declare mysql+pymysql backend implementation"},{"line_number":100,"context_line":"provision.Backend(\"mysql+pymysql\", url)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_d8b5ca7e","line":100,"updated":"2015-06-13 17:10:18.000000000","message":"What happens if this fails? (What does a user running tox see?)","commit_id":"3d9743a4f9de73786030aac26bc9b4ba58f9a080"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"736f3bf3c6e71deb6a63ddfe114974954b58af2c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"impl \u003d provision.BackendImpl.impl(\"mysql+pymysql\")"},{"line_number":98,"context_line":"url \u003d impl.create_opportunistic_driver_url()"},{"line_number":99,"context_line":"# NOTE(cbrandily): Declare mysql+pymysql backend implementation"},{"line_number":100,"context_line":"provision.Backend(\"mysql+pymysql\", url)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_938963cd","line":100,"in_reply_to":"fa32b979_d8b5ca7e","updated":"2015-06-13 18:53:08.000000000","message":"A stacktrace is raised for every module loading this \"failing\" module:\n\n  Failed to import test module: neutron.tests.fullstack.test_l3_agent\n  Traceback (most recent call last):\n    File ..., line 445, in _find_test_path\n      module \u003d self._get_module_from_name(name)\n    File ..., line 384, in _get_module_from_name\n      __import__(name)\n    File ..., line 20, in \u003cmodule\u003e\n      from neutron.tests.fullstack import base\n    File \"neutron/tests/fullstack/base.py\", line 20, in \u003cmodule\u003e\n      from neutron.tests.common import base\n    File ..., line 76, in \u003cmodule\u003e\n      class PyMySQLBackendImpl(provision.BackendImpl):\n    File ..., line 883, in decorate\n      self._register(expr, dbname, driver, fn)\n    File ..., line 946, in _register\n      raise TypeError(\"Multiple functions for expression %r\" % expr)\n  TypeError: Multiple functions for expression \u0027mysql+pymysql\u0027\n\nBut there is no reason (except if oslo.db interface changes) it fails as it only declares/defines the driver","commit_id":"3d9743a4f9de73786030aac26bc9b4ba58f9a080"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"86ebdfd6a377306a5f6fa5c438124a7fc05f9db9","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"},{"line_number":104,"context_line":"class PyMySQLFixture(test_base.DbFixture):"},{"line_number":105,"context_line":"    DRIVER \u003d \u0027mysql+pymysql\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_da8582ad","line":104,"updated":"2015-06-15 23:20:14.000000000","message":"If it\u0027s sensible to move some (if not all) of this code into oslo_db, then perhaps we should make a TODO that clarifies that","commit_id":"278a5fce29504c43d669feed210f7b3627616e22"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"86f46d000e696a28d2615228636d9a741157f31e","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"},{"line_number":104,"context_line":"class PyMySQLFixture(test_base.DbFixture):"},{"line_number":105,"context_line":"    DRIVER \u003d \u0027mysql+pymysql\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_b69727eb","line":104,"in_reply_to":"fa32b979_7009f5dc","updated":"2015-06-17 12:42:49.000000000","message":"Done","commit_id":"278a5fce29504c43d669feed210f7b3627616e22"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"86f46d000e696a28d2615228636d9a741157f31e","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"},{"line_number":104,"context_line":"class PyMySQLFixture(test_base.DbFixture):"},{"line_number":105,"context_line":"    DRIVER \u003d \u0027mysql+pymysql\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_f6fa8f42","line":104,"in_reply_to":"fa32b979_da8582ad","updated":"2015-06-17 12:42:49.000000000","message":"Done","commit_id":"278a5fce29504c43d669feed210f7b3627616e22"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"bd6bec466db0a36033d0b3f3bc78d4b71fedf03a","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# NOTE(cbrandily): Define mysql+pymysql db fixture"},{"line_number":104,"context_line":"class PyMySQLFixture(test_base.DbFixture):"},{"line_number":105,"context_line":"    DRIVER \u003d \u0027mysql+pymysql\u0027"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_7009f5dc","line":104,"in_reply_to":"fa32b979_da8582ad","updated":"2015-06-16 01:16:41.000000000","message":"related oslo.db review: https://review.openstack.org/#/c/184392/\n\nonce it\u0027s merged and released, we can clean this up.","commit_id":"278a5fce29504c43d669feed210f7b3627616e22"}]}
