summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/test
Commit message (Collapse)AuthorAgeFilesLines
* - move sqlalchemy.test to test.libMike Bayer2010-11-1511-2387/+0
|
* first step of [ticket:1949], remove the setuptools aspectMike Bayer2010-11-154-4/+3
| | | | of the plugin, move it to test/bootstrap
* - move inline "import" statements to use new "util.importlater()" construct. ↵Mike Bayer2010-11-131-2/+0
| | | | | | | | | cuts down on clutter, timeit says there's a teeny performance gain, at least where the access is compared against attr.subattr. these aren't super-critical calls anyway - slight inlining in _class_to_mapper
* - and fix everything from the last checkin that breaks on py 2.4, 2.5Mike Bayer2010-11-091-0/+9
|
* - Implemented sequence check capability for the CMike Bayer2010-11-091-1/+14
| | | | | | version of RowProxy, as well as 2.7 style "collections.Sequence" registration for RowProxy. [ticket:1871]
* - mssql+pymssql dialect now honors the "port" portionMike Bayer2010-10-241-2/+2
| | | | | of the URL instead of discarding it. [ticket:1952] - testing.only_on() accepts db specs optionally as a list
* - the NoseSQLAlchemyPlugin has been moved to aMike Bayer2010-10-176-339/+6
| | | | | | | | | | new package "sqlalchemy_nose" which installs along with "sqlalchemy". This so that the "nosetests" script works as always but also allows the --with-coverage option to turn on coverage before SQLAlchemy modules are imported, allowing coverage to work correctly. - added some new ignores
* - *Major* cleanup / modernization of the InformixMike Bayer2010-10-011-0/+5
| | | | | dialect for 0.6, courtesy Florian Apolloner. [ticket:1906]
* add oursql to has lastrowidMike Bayer2010-09-181-1/+1
|
* - Fixed a regression in 0.6.4 whereby the change thatMike Bayer2010-09-161-0/+6
| | | | | | | | allowed cursor errors to be raised consistently broke the result.lastrowid accessor. Test coverage has been added for result.lastrowid. Note that lastrowid is only supported by Pysqlite and some MySQL drivers, so isn't super-useful in the general case.
* - pending deprecation in 0.7 for the execute/scalar on clauseelementMike Bayer2010-09-071-2/+0
|
* - mapper _get_col_to_prop private method usedMike Bayer2010-09-051-0/+1
| | | | | | | | by the versioning example is deprecated; now use mapper.get_property_by_column() which will remain the public method for this. - turned TODO in the history example into an assertion with a descriptive reason
* - Oracle reflection of indexes has been tuned soMike Bayer2010-08-291-1/+1
| | | | | | | | | | | | | | | | | that indexes which include some or all primary key columns, but not the same set of columns as that of the primary key, are reflected. Indexes which contain the identical columns as that of the primary key are skipped within reflection, as the index in that case is assumed to be the auto-generated primary key index. Previously, any index with PK columns present would be skipped. Thanks to Kent Bower for the patch. [ticket:1867] - Oracle now reflects the names of primary key constraints - also thanks to Kent Bower. [ticket:1868]
* - Another pass through the series of error messagesMike Bayer2010-08-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | emitted when relationship() is configured with ambiguous arguments. The "foreign_keys" setting is no longer mentioned, as it is almost never needed and it is preferable users set up correct ForeignKey metadata, which is now the recommendation. If 'foreign_keys' is used and is incorrect, the message suggests the attribute is probably unnecessary. Docs for the attribute are beefed up. This because all confused relationship() users on the ML appear to be attempting to use foreign_keys due to the message, which only confuses them further since Table metadata is much clearer. - If the "secondary" table has no ForeignKey metadata and no foreign_keys is set, even though the user is passing screwed up information, it is assumed that primary/secondaryjoin expressions should consider only and all cols in "secondary" to be foreign. It's not possible with "secondary" for the foreign keys to be elsewhere in any case. A warning is now emitted instead of an error, and the mapping succeeds. [ticket:1877] - fixed incorrect "Alternate Collection Mappings" reference in the docs, not sure if someone wants to reference "Rows that Point to Themselves" function - "Collection Mapping" is "Advanced Collection Mapping", this section is troublesome since nobody really needs it but it is public API
* - The name ConcurrentModificationError has beenMike Bayer2010-08-011-0/+6
| | | | | | | | | | changed to StaleDataError, and descriptive error messages have been revised to reflect exactly what the issue is. Both names will remain available for the forseeable future for schemes that may be specifying ConcurrentModificationError in an "except:" clause.
* - The _extract_error_code() method now worksMike Bayer2010-07-121-0/+5
| | | | | | | | | correctly with the "mysqldb" dialect. Previously, the reconnect logic would fail for OperationalError conditions, however since MySQLdb has its own reconnect feature, there was no symptom here unless one watched the logs. [ticket:1848]
* add a test for the actual feature, that multiple post updates are batchedMike Bayer2010-06-181-1/+2
|
* a little bit of refinementMike Bayer2010-04-171-0/+11
|
* - Added get_pk_constraint() to reflection.Inspector, similarMike Bayer2010-04-151-1/+9
| | | | | | | | to get_primary_keys() except returns a dict that includes the name of the constraint, for supported backends (PG so far). [ticket:1769] - Postgresql reflects the name of primary key constraints, if one exists. [ticket:1769]
* actually we need to copy the dict there since it gets run repeatedly inside ↵Mike Bayer2010-04-151-1/+1
| | | | of an allof...getting messier here
* adjust incoming params to add keys that are specific to the compiled, i.e. ↵Mike Bayer2010-04-151-0/+3
| | | | oracle's out params with returning
* - beef up the --reversetop test option to embed RandomSet throughout the ORMMike Bayer2010-04-153-12/+6
| | | | | | | - with m2m we have to go back to the previous approach of having both sides of the DP fire off, tracking each pair of objects. history may not be consistently present in one side or the other - this revealed a whole lot of issues with self-referential m2m, which are fixed
* merge defaultMike Bayer2010-04-101-0/+17
|\
| * - Repaired missing import in psycopg2._PGNumeric type whenMike Bayer2010-04-071-0/+17
| | | | | | | | | | | | | | | | | | | | | | unknown numeric is received. - psycopg2/pg8000 dialects now aware of REAL[], FLOAT[], DOUBLE_PRECISION[], NUMERIC[] return types without raising an exception. - introducing testing.provide_metadata for all these stupid little create/drop tests
* | starting to arrange things such that unneeded executors aren't gettingMike Bayer2010-04-081-1/+3
| | | | | | | | | | | | pulled into the unit of work at all. this involves dancing around lists of states, seeing if child objects exist, not adding excessive callcounts while doing that, etc.
* | - added missing coverage for self-referential many-to-many flushesMike Bayer2010-04-061-6/+9
| | | | | | | | | | - some other areas where per-state deps are called and an empty result returned are still lacking coverage.
* | a RandomSet implementation useful for swapping into topologicalMike Bayer2010-04-061-1/+15
|/
* - Session.refresh() now does an equivalent expire()Mike Bayer2010-03-291-0/+12
| | | | | | | | | | | | | | | | on the given instance first, so that the "refresh-expire" cascade is propagated. Previously, refresh() was not affected in any way by the presence of "refresh-expire" cascade. This is a change in behavior versus that of 0.6beta2, where the "lockmode" flag passed to refresh() would cause a version check to occur. Since the instance is first expired, refresh() always upgrades the object to the most recent version. - The 'refresh-expire' cascade, when reaching a pending object, will expunge the object if the cascade also includes "delete-orphan", or will simply detach it otherwise. [ticket:1754]
* - pymssql now works again, expecting at least the 1.0 series.Mike Bayer2010-03-201-0/+1
|
* working through syb capabilitiesMike Bayer2010-03-171-1/+29
|
* - The visit_pool() method of Dialect is removed, and replaced withMike Bayer2010-03-151-9/+10
| | | | | | | | on_connect(). This method returns a callable which receives the raw DBAPI connection after each one is created. The callable is assembled into a first_connect/connect pool listener by the connection strategy if non-None. Provides a simpler interface for dialects.
* fix failing test due to sybase paramstyleMike Bayer2010-03-141-1/+3
|
* - Added preliminary support for Oracle's WITH_UNICODEMike Bayer2010-03-121-0/+1
| | | | | | mode. At the very least this establishes initial support for cx_Oracle with Python 3. [ticket:1670]
* - fix the sqlalchemy.test.schema.Column function to work with copiesMike Bayer2010-03-111-3/+3
| | | | | - add sequences to new associationproxy tests - test/ext passes 100% on oracle here
* some ms/odbc fixesMike Bayer2010-02-281-0/+9
|
* - simplify the OurSQL dialect regarding py3k, this version gives it a fairlyMike Bayer2010-02-281-2/+2
| | | | | | | fighting chance on python 3. there's an oursql bug where it can't raise an exception on executemany() correctly. - needed to add "plain_query" wrappers for all the reflection methods. not sure why this was not needed earlier.
* - orm: Removed a lot of logging that nobody really cares about,Mike Bayer2010-02-281-2/+0
| | | | | | | | | | | | logging that remains will respond to live changes in the log level. No significant overhead is added. [ticket:1719] - engine: Opened up logging a bit such that isEnabledFor() is called more often, so that changes to the log level for engine/pool will be reflected on next connect. This adds a small amount of method call overhead. It's negligible and will make life a lot easier for all those situations when logging just happens to be configured after create_engine() is called. [ticket:1719]
* working on pyodbc / mxodbcMike Bayer2010-02-271-0/+6
|
* - the "scale" argument of the Numeric() type is honored whenMike Bayer2010-02-261-0/+11
| | | | | | coercing a returned floating point value into a string on its way to Decimal - this allows accuracy to function on SQLite, MySQL. [ticket:1717]
* add some py3k caveatsMike Bayer2010-02-231-1/+1
|
* generalized "test all the picklers" iterator works cross platformMike Bayer2010-02-221-0/+18
|
* clean up some skips, added skip for sqlite + python2Mike Bayer2010-02-213-2/+37
|
* unicode fix that gets around nose's stringio usageMike Bayer2010-02-201-14/+4
|
* some more 2.4 test fixesMike Bayer2010-02-151-0/+1
|
* exclude this test for everyone but sqliteMike Bayer2010-02-151-1/+18
|
* - Added an optional C extension to speed up the sql layer byGaëtan de Menten2010-02-131-1/+8
| | | | | | | | | | | | | | | reimplementing the highest impact functions. The actual speedups will depend heavily on your DBAPI and the mix of datatypes used in your tables, and can vary from a 50% improvement to more than 200%. It also provides a modest (~20%) indirect improvement to ORM speed for large queries. Note that it is *not* built/installed by default. See README for installation instructions. - The most common result processors conversion function were moved to the new "processors" module. Dialect authors are encouraged to use those functions whenever they correspond to their needs instead of implementing custom ones.
* - oracle + firebird: "case sensitivity" feature will detect an all-lowercaseMike Bayer2010-01-241-1/+8
| | | | | | case-sensitive column name during reflect and add "quote=True" to the generated Column, so that proper quoting is maintained.
* - the "threadlocal" engine has been rewritten and simplifiedMike Bayer2010-01-241-2/+2
| | | | and now supports SAVEPOINT operations.
* arrange imports, cleanupPhilip Jenvey2010-01-221-12/+12
|
* - mega example cleanupMike Bayer2010-01-191-0/+83
| | | | | | - added READMEs to all examples in each __init__.py and added to sphinx documentation - added versioning example - removed vertical/vertical.py, the dictlikes are more straightforward