test_ddl.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from .. import fixtures, config, util
  2. from ..config import requirements
  3. from ..assertions import eq_
  4. from sqlalchemy import Table, Column, Integer, String
  5. class TableDDLTest(fixtures.TestBase):
  6. __backend__ = True
  7. def _simple_fixture(self):
  8. return Table('test_table', self.metadata,
  9. Column('id', Integer, primary_key=True,
  10. autoincrement=False),
  11. Column('data', String(50))
  12. )
  13. def _underscore_fixture(self):
  14. return Table('_test_table', self.metadata,
  15. Column('id', Integer, primary_key=True,
  16. autoincrement=False),
  17. Column('_data', String(50))
  18. )
  19. def _simple_roundtrip(self, table):
  20. with config.db.begin() as conn:
  21. conn.execute(table.insert().values((1, 'some data')))
  22. result = conn.execute(table.select())
  23. eq_(
  24. result.first(),
  25. (1, 'some data')
  26. )
  27. @requirements.create_table
  28. @util.provide_metadata
  29. def test_create_table(self):
  30. table = self._simple_fixture()
  31. table.create(
  32. config.db, checkfirst=False
  33. )
  34. self._simple_roundtrip(table)
  35. @requirements.drop_table
  36. @util.provide_metadata
  37. def test_drop_table(self):
  38. table = self._simple_fixture()
  39. table.create(
  40. config.db, checkfirst=False
  41. )
  42. table.drop(
  43. config.db, checkfirst=False
  44. )
  45. @requirements.create_table
  46. @util.provide_metadata
  47. def test_underscore_names(self):
  48. table = self._underscore_fixture()
  49. table.create(
  50. config.db, checkfirst=False
  51. )
  52. self._simple_roundtrip(table)
  53. __all__ = ('TableDDLTest', )