summaryrefslogtreecommitdiff
path: root/tox.ini
Commit message (Collapse)AuthorAgeFilesLines
* MariaDB dialect implementationGeorg Richter2020-08-311-0/+7
| | | | | | | | | | Fixes: #5459 Closes: #5515 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5515 Pull-request-sha: 760090b9067304cc65fece12fcf10b522afc4a2a Change-Id: I30e8fbc02b7b5329ca228cd39f6fb7cfd0e43092
* Update dialect for pg8000 version 1.16.0Tony Locke2020-08-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pg8000 dialect has been revised and modernized for the most recent version of the pg8000 driver for PostgreSQL. Changes to the dialect include: * All data types are now sent as text rather than binary. * Using adapters, custom types can be plugged in to pg8000. * Previously, named prepared statements were used for all statements. Now unnamed prepared statements are used by default, and named prepared statements can be used explicitly by calling the Connection.prepare() method, which returns a PreparedStatement object. Pull request courtesy Tony Locke. Notes by Mike: to get this all working it was needed to break up JSONIndexType into "str" and "int" subtypes; this will be needed for any dialect that is dependent on setinputsizes(). also includes @caselit's idea to include query params in the dbdriver parameter. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Closes: #5451 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5451 Pull-request-sha: 639751ca9c7544801b9ede02e6cbe15a16c59c82 Change-Id: I2869bc52c330916773a41d11d12c297aecc8fcd8
* Provision on different drivers dynamicallyMike Bayer2020-08-141-8/+17
| | | | | | | | | | | We want TOX_POSTGRESQL and similar to be the fixed variable that is configured from CI environment. These variables should refer to database servers but individual drivers like asyncpg mysqlconnector etc. should come from local tox.ini. add a new system to generate per-driver URLs from a simple list of hostname-based URLs delivered from CI environment. Change-Id: I4267b4a70742765388c7e7c4432c1da9d9adece2
* Use TOX_POSTGRESQL_MASTER for masterMike Bayer2020-08-131-2/+2
| | | | | | | | | since 1.3 doesn't have updated pg8000 support nor asyncpg support it needs to stay on the previous TOX_POSTGRESQL variable, so make a new one that will have the newer drivers in it. Change-Id: I19739f8da1231db975a046f12af5eefc9636cd4a
* Doc fix; use normal TOX_POSTGRESQL env nowMike Bayer2020-08-131-2/+2
| | | | Change-Id: Ie47a9e9377858641f2f8e038133be27dc9aacd64
* Implement rudimentary asyncio support w/ asyncpgMike Bayer2020-08-131-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Using the approach introduced at https://gist.github.com/zzzeek/6287e28054d3baddc07fa21a7227904e We can now create asyncio endpoints that are then handled in "implicit IO" form within the majority of the Core internals. Then coroutines are re-exposed at the point at which we call into asyncpg methods. Patch includes: * asyncpg dialect * asyncio package * engine, result, ORM session classes * new test fixtures, tests * some work with pep-484 and a short plugin for the pyannotate package, which seems to have so-so results Change-Id: Idbcc0eff72c4cad572914acdd6f40ddb1aef1a7d Fixes: #3414
* Use importlib_metadata; add namespace for mariadbMike Bayer2020-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The ``importlib_metadata`` library is used to scan for setuptools entrypoints rather than pkg_resources. as importlib_metadata is a small library that is included as of Python 3.8, the compatibility library is installed as a dependency for Python versions older than 3.8. Unfortunately setuptools "attr:" is broken because it tries to import the module; seems like this is fixed as part of https://github.com/pypa/setuptools/pull/1753 however this is too recent to rely upon for now. Added a new dialect token "mariadb" that may be used in place of "mysql" in the :func:`_sa.create_engine` URL. This will deliver a MariaDB dialect subclass of the MySQLDialect in use that forces the "is_mariadb" flag to True. The dialect will raise an error if a server version string that does not indicate MariaDB in use is received. This is useful for MariaDB-specific testing scenarios as well as to support applications that are hardcoding to MariaDB-only concepts. As MariaDB and MySQL featuresets and usage patterns continue to diverge, this pattern may become more prominent. Fixes: #5400 Fixes: #5496 Change-Id: I330815ebe572b6a9818377da56621397335fa702
* Unpin pydocstyle, minimum for flake8-docstrings 1.3.1Mike Bayer2020-07-291-3/+4
| | | | | | | | Per https://gitlab.com/pycqa/flake8-docstrings/-/issues/36#note_199635329 flake8-docstrings has repaired the pydocstyle issue as of 1.3.1, so unpin pydocstyle. Change-Id: I117a5df58ff6c5a4087c433ab817ad305df6a17b
* Propose --nomemory by defaultMike Bayer2020-07-081-4/+6
| | | | | | | | | | the memory tests are solely responsible for the largest chunk of time and CPU energy taken up in running the tests. Regressions in this area are nonexistent unless major changes are being taken up. Try to revert them to False and see if a single gerrit job can perhaps run these. Change-Id: Ibaead2d1c0a76f1339bee63652a8aead689e8b75
* Use python version in extras_require; integrate with toxMike Bayer2020-06-291-13/+5
| | | | | | | | | | | | | | | We want to use Oracle version >=7 for all platforms, but <8 for Python 2. Similarly, we want to use mysqlclient >= 1.4.0 for all platforms, but < 2 for Python 2. Have tox.ini defer to setup.cfg for DBAPIs. We're not testing mysql-connector-python right now so remove this from tox.ini. Change-Id: I02611937da71d2950545e42c34f0b9798478e2a8
* Default psycopg2 executemany mode to "values_only"Mike Bayer2020-06-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The psycopg2 dialect now defaults to using the very performant ``execute_values()`` psycopg2 extension for compiled INSERT statements, and also impements RETURNING support when this extension is used. This allows INSERT statements that even include an autoincremented SERIAL or IDENTITY value to run very fast while still being able to return the newly generated primary key values. The ORM will then integrate this new feature in a separate change. Implements RETURNING for insert with executemany Adds support to return_defaults() mode and inserted_primary_key to support mutiple INSERTed rows, via return_defauls_rows and inserted_primary_key_rows accessors. within default execution context, new cached compiler getters are used to fetch primary keys from rows inserted_primary_key now returns a plain tuple. this is not yet a row-like object however this can be added. Adds distinct "values_only" and "batch" modes, as "values" has a lot of benefits but "batch" breaks cursor.rowcount psycopg2 minimum version 2.7 so we can remove the large number of checks for very old versions of psycopg2 simplify tests to no longer distinguish between native and non-native json Fixes: #5401 Change-Id: Ic08fd3423d4c5d16ca50994460c0c234868bd61c
* add posargs to pep8Mike Bayer2020-05-291-2/+2
| | | | | | we want to be able to specify --output-file Change-Id: Ib4e992d47587385a50c35ca915bc5adcb2ca49fa
* Add github action workflow to run tests on master and on pr to masterFederico Caselli2020-04-031-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trying the pr to check if it works right away ### Description <!-- Describe your changes in detail --> ### Checklist <!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once) --> This pull request is: - [ ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [x] A short code fix - please include the issue number, and create an issue if none exists, which must include a complete example of the issue. one line code fixes without an issue and demonstration will not be accepted. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. one line code fixes without tests will not be accepted. - [ ] A new feature implementation - please include the issue number, and create an issue if none exists, which must include a complete example of how the feature would look. - Please include: `Fixes: #<issue number>` in the commit message - please include tests. **Have a nice day!** Closes: #5222 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5222 Pull-request-sha: afbb8567525f3841554d3ba599ef4d713c78e647 Change-Id: I4981b02f900e76e446cf42e6cc6495ffc0883951
* Fix tests failing for SQLite file databases; repair provisioningGord Thompson2020-03-131-5/+5
| | | | | | | | | | | | | | | | | | | | | | 1. ensure provision.py loads dialect implementations when running reap_dbs.py. Reapers haven't been working since 598f2f7e557073f29563d4d567f43931fc03013f . 2. add some exclusion rules to allow the sqlite_file target to work; add to tox. 3. add reap dbs target for SQLite, repair SQLite drop_db routine which also wasn't doing the right thing for memory databases etc. 4. Fix logging in provision files, as the main provision logger is the one that's enabled by reap_dbs and maybe others, have all the provision files use the provision logger. Fixes: #5180 Fixes: #5168 Change-Id: Ibc1b0106394d20f5bcf847f37b09d185f26ac9b5
* Disable sqlite_file tests by default, take twoMike Bayer2020-03-131-1/+1
| | | | | | | We need no tests to run for sqlite_file until we merge a full fix for it. We'd like Jenkins to include this target. Change-Id: I2737fa462572f08e2925b232a8f24d1ecd26b3ac
* Add placeholder for sqlite file databaseMike Bayer2020-03-121-0/+1
| | | | | | | So that we can enable this in jenkins until Ibc1b0106394d20f5bcf847f37b09d185f26ac9b5 is merged. Change-Id: Ia704e75bf3767e02d448a6af02530dfc89c9920b
* Also run black --check in the tox pep8 envFederico Caselli2020-03-101-1/+4
| | | | Change-Id: I3b86bb3b4263048646676972bb2a870c7e2a7393
* Revise cx_Oracle, mysqlclient versionsMike Bayer2020-02-181-14/+16
| | | | | | | | | | cx_Oracle is dropping Python 2 in version 8.0 mysqlclient is dropping Python 2 in version 2.0 We are no longer testing cx_Oracle < 7 on CI so drop older cx_Oracle versions from tox. Change-Id: I18d8b47077d50ac02aedb6fdeb24f7c99b56aa7c
* Fix cext for Python 2; ensure C extensions build successfullyMike Bayer2020-01-041-0/+1
| | | | | | | | | | | | | | | | | | | | The C extensions have been broken since cc718cccc0bf8a01abdf4068c however CI did not find this, because the build degraded to non-C extensions without failing. Ensure that if cext is set, there is no fallback to non-cext build if the C extension build fails. Repair C related issues introduced in cc718cccc0bf8a01abdf4068c. As C extensions have been silently failing on 2.7 for some commits, the callcounts also needed to be adjusted for recent performance-related changes. That in turn required a fix to the profiling decorator to use signature rewriting in order to support py.test's fixture mechanism under Python 2, usage introduced under profiling in 89bf6d80a9. Fixes: #5076 Change-Id: Id968f10c85d6bf489298b1c318a1f869ad3e7d80
* Move max-worker-restart to pytest-xdist options in tox.iniMike Bayer2019-11-191-2/+2
| | | | | | | | This way py.test can be run on the outside without a command line error. Change-Id: Ia3689806bffbabe176a827cca2f099e89a60ebf5 Closes: #4989
* Remove python setup.py test; fix SQL Server URLMike Bayer2019-10-281-1/+2
| | | | | | | | general README.unittest.rst edits Fixes: #4789 Fixes: #4900 Change-Id: Ifddd3bfd1e6a4d24d3b0a3e1702e04e66a42a4dd
* Upgrade for python 3.8Mike Bayer2019-10-171-3/+2
| | | | | | | | | | - remove pymssql again, there are no py38 builds and the project seems stalled again - ideally we would have no pyenvs listed out for tox but for now add py38 Change-Id: Iee2e3da96d2d0e4357aaf2ade735c4b8300c3c12
* Remove mock dependencyMike Bayer2019-08-221-1/+1
| | | | | | | Mock is not needed over python 3.3, we need this tox requirement only for Python 2.7 right now. Change-Id: I06ae31f9fe6eaece0ec508e9431e4f8166a59684
* Pin pycodestyleMike Bayer2019-07-171-0/+1
| | | | | | PyCQA/pydocstyle#375 Change-Id: Ifc7ead440010e89474300407fea5770956ff1aaf
* Add "usecase" changelog tagMike Bayer2019-06-031-1/+1
| | | | | | | | | | | | | | | "usecase" indicates the library now supports something a user was trying to do. It's not quite a "feature" since it's something that seems like it should have worked, it's not a "bug" because no mistake was made, it's just something that wasn't considered before. The advantage of "usecase" is that it inherently suggests a different style of prioritization vs. something that is preventing the library from working as designed. This change also adds docs/build/conf.py under the pep8 formatting test coverage. Change-Id: I790ccb799864fec48e4695aedeed2814ab9d493e
* Use basepython 3.7 for flake8 testsMike Bayer2019-03-041-0/+1
| | | | | | | this to prevent flake8 from running with python 2 as we have py3k-specific checks Change-Id: I456c4b64c5bc04a81cd43de7dac1e803346f1245
* Regenerate callcounts for mysqlclient 1.4.0Mike Bayer2019-01-181-1/+4
| | | | | Fixes: #4455 Change-Id: I396230f649f6bb5e396798e63339fcecb3b85eaf
* Prep for flake8 refactoringMike Bayer2019-01-031-7/+10
| | | | | | | | a few code changes ahead of time to handle some __all__ issues better. also include new flake8 rules, since the existing flake8 doesn't pass in any case. Change-Id: I1efdf75124ae7bcac719c22e505bb5b13db06c04
* - block py.test 3.9.1 and 3.9.2, 3.9.3 is OKMike Bayer2018-11-021-1/+1
| | | | Change-Id: I35ecd78b92ea420ef7909de65f82e005b92bf986
* Pin pytest *before* 3.9.1 totallyMike Bayer2018-10-241-1/+1
| | | | | | | | | | Unfortunately they have released 3.9.2 before fixing issue 4181, which means we will have to re-pin a third time after they eventually release with a fix Change-Id: I9b6fab1b535f883a035f002264c41ad0166790ab Reference: https://github.com/pytest-dev/pytest/issues/4181
* block py.test 3.9.1Mike Bayer2018-10-171-1/+1
| | | | | | | | references: https://github.com/pytest-dev/pytest/issues/4181 Change-Id: I216fde19dd0f5c4910d76c08400f2329b09ad584
* - forgot the colonMike Bayer2018-09-191-1/+1
| | | | Change-Id: I954d939ace775b5e6d94b8b1a909a9eddb7f352f
* Allow pip opts to be specified in environmentMike Bayer2018-09-191-0/+2
| | | | | | | To allow a custom requirements file to be passed in, add a generic passthrough to the tox install command. Change-Id: Ic2e46a27914b76802dc26143e34ad507978af474
* Use cx_Oracle dml_ret_array_valMike Bayer2018-09-171-6/+7
| | | | | | | | | | | | Fixed issue for cx_Oracle 7.0 where the behavior of Oracle param.getvalue() now returns a list, rather than a single scalar value, breaking autoincrement logic throughout the Core and ORM. The dml_ret_array_val compatibility flag is used for cx_Oracle 6.3 and 6.4 to establish compatible behavior with 7.0 and forward, for cx_Oracle 6.2.1 and prior a version number check falls back to the old logic. Fixes: #4335 Change-Id: Ia60f5514803a505898c1ac9252355990c6203dda
* block cx_Oracle 6.4Mike Bayer2018-07-041-1/+1
| | | | | | Prevents https://github.com/oracle/python-cx_Oracle/issues/199 Change-Id: I0f94bde38919a027f094ca016621c1364e845332
* Try to get mysqlconnector somewhat workingMike Bayer2018-06-271-0/+1
| | | | | | | | | Add CI support for MySQL connector and try to fix some of the more obvious issues. CI tests will run against MySQL 5.7 only for starters as there appear to be issues with MySQL 8.0 Change-Id: Id8971143a8385a5c84f0646c21c4c21e793ce3a2
* - block cx_Oracle 6.3 due to ↵Mike Bayer2018-05-011-1/+1
| | | | | | https://github.com/oracle/python-cx_Oracle/issues/176 Change-Id: If13288789f5f32eb3ffb18c774752bb68a9ffb2a
* Add python 3.7 environmentMike Bayer2018-03-051-1/+1
| | | | Change-Id: I4ed7bd6ffd1c8c9b5169cf21709ec19801580126
* - add separate oracle / oracle5 jobs so we can CIMike Bayer2017-09-051-6/+7
| | | | | | on both series for now Change-Id: Ide8938334c248119c1d5c2e1bf07070f17c86242
* Add SQL Server CI coverageMike Bayer2017-08-311-6/+7
| | | | Change-Id: Ida0d01ae9bcc0573b86e24fddea620a38c962822
* - pin on cx_Oracle 6.0.1 for the moment while we wait forMike Bayer2017-08-311-1/+2
| | | | | | | either https://github.com/oracle/python-cx_Oracle/issues/75 to be fixed or we can merge a workaround Change-Id: Ia3927337fb48824e0fdc764ed3a9d4930ca7a9c6
* - add some logging for the provisioningMike Bayer2017-08-191-1/+1
| | | | Change-Id: I1ac16bc77642f4f576195ac10443ed8e641e0d49
* - name these TOX_ so that we can set them unconditionallyMike Bayer2017-08-191-8/+8
| | | | | | | without them getting used unless we ask for them in the build Change-Id: Iec157ce9e70366af275acac959527461faebfdc1
* Isolate memory tests in forksMike Bayer2017-08-141-3/+2
| | | | | | | | | | | | Swing the biggest hammer, run multiprocessing.Process() for each memusage test individually so that they are fully isolated from the parent process and any side effects of pytest-xdist Also add --nomemory as a shortcut to exclude_tags=memory-intensive and add this to the setup.py test runner as the memory tests should not be running for quick runs Change-Id: I3c16c781e21b33deb939a64e77a6e0e41fb86922
* - since we can't isolate the memory tests to run withtout pytest-xdist,Mike Bayer2017-08-141-1/+2
| | | | | | add a new tag nomemory so we can at least limit on the build Change-Id: I3935cf15047d77fc09f8ee229914e37e064e5b8b
* - take more print statements out, maybe this is notMike Bayer2017-08-101-2/+2
| | | | | | | | the issue - unblock pytest-xdist now that the upstream issue is fixed, maybe this old version is the issue Change-Id: I28dd7ae0872948a188651d42e2f4af60bcbafe81
* Allow multiple versions of single backendMike Bayer2017-08-041-8/+8
| | | | | | | | | | Improve screen output to illustrate which server version is running for a particular database config, and additionally allow full overriding for the backend-specific targets in tox.ini via environment variables, so that CI can inject multiple server urls for a particular database such as MySQL/MariaDB. Change-Id: Ibf443bb9fb82e4563efd1bb66058fa9989aa2fda
* Pin to pytest<=3.0.7 pytest-xdist<=1.16.0Mike Bayer2017-08-041-2/+2
| | | | | | Until https://github.com/pytest-dev/pytest-xdist/issues/196 is fixed Change-Id: I7dfd268e6078373ccaa0b5c13f9b6ffa1b2fd4b2
* - add option to disable py.test warnings plugin;Mike Bayer2017-05-231-1/+1
| | | | | | | lift cap on py.test. references: https://github.com/pytest-dev/pytest/issues/2430 Change-Id: Ieb8a6258ba1d15efa570d9cda2b51cf021499a23
* - pin py.test at 3.0.7 due to https://github.com/pytest-dev/pytest/issues/2430Mike Bayer2017-05-231-1/+1
| | | | Change-Id: I587282da141aa6ea92f944eeb4c9e5782d0b5f29