diff --git a/bottle_sqlite.py b/bottle_sqlite.py index 7fa0e7b..1873434 100755 --- a/bottle_sqlite.py +++ b/bottle_sqlite.py @@ -88,9 +88,11 @@ class SQLitePlugin(object): if bottle.__version__.startswith('0.9'): config = route['config'] _callback = route['callback'] + argspec = inspect.getargspec(_callback).args else: config = route.config _callback = route.callback + argspec = route.get_callback_args() # Override global configuration with route-specific values. if "sqlite" in config: @@ -109,10 +111,7 @@ class SQLitePlugin(object): collations = g('collations', self.collations) extensions = g('extensions', self.extensions) - # Test if the original callback accepts a 'db' keyword. - # Ignore it if it does not need a database handle. - argspec = inspect.getargspec(_callback) - if keyword not in argspec.args: + if keyword not in argspec: return callback def wrapper(*args, **kwargs): diff --git a/test.py b/test.py index 766c0bf..425d8ab 100644 --- a/test.py +++ b/test.py @@ -28,6 +28,13 @@ class SQLiteTest(unittest.TestCase): def tearDown(self): os.unlink(self.plugin.dbfile) + def test_with_view(self): + @self.app.get('/') + @bottle.view('test_view') + def test(db): + self.assertEqual(type(db), type(sqlite3.connect(':memory:'))) + self._request('/') + def test_with_keyword(self): @self.app.get('/') def test(db): diff --git a/views/test_view.tpl b/views/test_view.tpl new file mode 100644 index 0000000..bbba0a0 --- /dev/null +++ b/views/test_view.tpl @@ -0,0 +1 @@ +test_view \ No newline at end of file