diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-11-12 14:30:18 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-11-12 14:30:18 -0500 |
| commit | 12df8a9901256c9de7f5917296ddcb703445a52b (patch) | |
| tree | 6598af889dab479e0514461377e811b3d8d777a9 /lib/sqlalchemy/testing/suite | |
| parent | 9dd08c2eca8ed250e3a36dcb6a9aa20693d324be (diff) | |
| download | sqlalchemy-12df8a9901256c9de7f5917296ddcb703445a52b.tar.gz | |
- support "fails_if" requirements as __requires__; so far this just skips, doesn't
actually run the test
- add requirements for date/datetime/time capabilities
- remove test/sql/test_types->DateTest and create new tests in suite/test_types
- move the StringTest with the "no length create" test to the suite, though this is a
weird test
Diffstat (limited to 'lib/sqlalchemy/testing/suite')
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_types.py | 112 |
1 files changed, 110 insertions, 2 deletions
diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py index cd7b61f42..259cccff3 100644 --- a/lib/sqlalchemy/testing/suite/test_types.py +++ b/lib/sqlalchemy/testing/suite/test_types.py @@ -4,8 +4,9 @@ from .. import fixtures, config from ..assertions import eq_ from ..config import requirements from sqlalchemy import Integer, Unicode, UnicodeText, select +from sqlalchemy import Date, DateTime, Time, MetaData, String from ..schema import Table, Column - +import datetime class _UnicodeFixture(object): __requires__ = 'unicode_data', @@ -101,4 +102,111 @@ class UnicodeTextTest(_UnicodeFixture, fixtures.TablesTest): def test_empty_strings(self): self._test_empty_strings() -__all__ = ('UnicodeVarcharTest', 'UnicodeTextTest')
\ No newline at end of file + +class StringTest(fixtures.TestBase): + @requirements.unbounded_varchar + def test_nolength_string(self): + metadata = MetaData() + foo = Table('foo', metadata, + Column('one', String) + ) + + foo.create(config.db) + foo.drop(config.db) + +class _DateFixture(object): + compare = None + + @classmethod + def define_tables(cls, metadata): + Table('date_table', metadata, + Column('id', Integer, primary_key=True, + test_needs_autoincrement=True), + Column('date_data', cls.datatype), + ) + + def test_round_trip(self): + date_table = self.tables.date_table + + config.db.execute( + date_table.insert(), + {'date_data': self.data} + ) + + row = config.db.execute( + select([ + date_table.c.date_data, + ]) + ).first() + + compare = self.compare or self.data + eq_(row, + (compare, )) + assert isinstance(row[0], type(compare)) + + def test_null(self): + date_table = self.tables.date_table + + config.db.execute( + date_table.insert(), + {'date_data': None} + ) + + row = config.db.execute( + select([ + date_table.c.date_data, + ]) + ).first() + eq_(row, (None,)) + + +class DateTimeTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'datetime', + datatype = DateTime + data = datetime.datetime(2012, 10, 15, 12, 57, 18) + +class DateTimeMicrosecondsTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'datetime_microseconds', + datatype = DateTime + data = datetime.datetime(2012, 10, 15, 12, 57, 18, 396) + +class TimeTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'time', + datatype = Time + data = datetime.time(12, 57, 18) + +class TimeMicrosecondsTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'time_microseconds', + datatype = Time + data = datetime.time(12, 57, 18, 396) + +class DateTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'date', + datatype = Date + data = datetime.date(2012, 10, 15) + +class DateTimeCoercedToDateTimeTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'date', + datatype = Date + data = datetime.datetime(2012, 10, 15, 12, 57, 18) + compare = datetime.date(2012, 10, 15) + +class DateTimeHistoricTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'datetime_historic', + datatype = DateTime + data = datetime.datetime(1850, 11, 10, 11, 52, 35) + +class DateHistoricTest(_DateFixture, fixtures.TablesTest): + __requires__ = 'date_historic', + datatype = Date + data = datetime.date(1727, 4, 1) + + +__all__ = ('UnicodeVarcharTest', 'UnicodeTextTest', + 'DateTest', 'DateTimeTest', + 'DateTimeHistoricTest', 'DateTimeCoercedToDateTimeTest', + 'TimeMicrosecondsTest', 'TimeTest', 'DateTimeMicrosecondsTest', + 'DateHistoricTest', 'StringTest') + + + |
