Jaymon / prom

A PostgreSQL or SQLite orm for Python
MIT License
22 stars 4 forks source link

Interface.delete_tables shouldn't fail if table doesn't exist #47

Closed Jaymon closed 7 years ago

Jaymon commented 7 years ago

currently with SQLite this raises an InterfaceError if the table doesn't exist

Jaymon commented 7 years ago

I can't reproduce this one :(

Jaymon commented 7 years ago

This is the error

Traceback (most recent call last):
  File "/vagrant/tests/interface/sqlite_test.py", line 54, in test_delete_nonexistent_table
    i._delete_table(testdata.get_ascii(32))
  File "/vagrant/prom/interface/sqlite.py", line 350, in _delete_table
    ret = self._query(query_str, ignore_result=True, **kwargs)
  File "/vagrant/prom/interface/base.py", line 628, in _query
    return ret
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/vagrant/prom/interface/base.py", line 197, in connection
    self.raise_error(e)
  File "/vagrant/prom/interface/base.py", line 191, in connection
    yield connection
  File "/vagrant/prom/interface/base.py", line 607, in _query
    cur.execute(query_str)
InterfaceError: unrecognized token: "1DweX72JYp3AxjBOgAiPygM5w1upZiZP"
Jaymon commented 7 years ago

Strange, I'm still seeing this error using SQLite

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 333, in delete_tables
    self._delete_tables(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 573, in _delete_tables
    self._delete_table(table_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/sqlite.py", line 358, in _delete_table
    ret = self._query(query_str, ignore_result=True, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 628, in _query
    return ret
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 197, in connection
    self.raise_error(e)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 182, in connection
    yield connection
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 607, in _query
    cur.execute(query_str)
InterfaceError: no such table: main.foo