Commit Graph

32 Commits

Author SHA1 Message Date
medmunds
67b19678d2 Tests: Django 5.0 dev requires Python 3.10+ 2023-02-08 14:41:50 -08:00
medmunds
b1f49b8870 Tests: test Django 4.2-alpha, Python 3.11, PyPy 3.9 2023-02-08 11:05:18 -08:00
medmunds
40891fcb4a Apply code styles via pre-commit
- Add black and isort for Python styling
- Add doc8 for reStructuredText styling
- Add prettier for css/html/js/md/yaml styling
- Run all styling tools from pre-commit hooks
- Adjust flake8 config for compatibility with black
  (and current Django style)
- Add some other helpful pre-commit hooks
- Update editorconfig to match Django
  (with a few necessary adjustments for Anymail)
- Update `tox -e lint` to run all pre-commit hooks
- Update contributing docs
2023-02-06 15:05:24 -08:00
medmunds
3f05623a2f Drop support for Django 2.x and Python 3.5 2022-08-29 13:25:47 -07:00
Tim Schilling
a4f50c4340 Confirm support for Django 4.1
Replaces deprecated `django.utils.timezone.utc` with
`datetime.timezone.utc` (available since Python 3.2).
2022-08-24 13:24:27 -07:00
medmunds
4d93183e5e CI: get GitHub test matrix from tox envlist
Stop maintaining duplicate (and often not-quite-
in-sync) test matrices in tox.ini and test.yml.
2022-01-30 11:11:41 -08:00
medmunds
8b0425f784 CI: Refactor workflows, update test matrix
* Split test, integration-test, and release workflows,
  simplifying config and logic for each.
* Use environment to separate secrets for release workflow.
* Update test matrix with newer Django and Python versions.
2022-01-10 13:42:45 -08:00
Mike Edmunds
adc92f037b Tests: tox and mock cleanup
* Remove mock dependency
  (mock is now part of standard unittest package)
* Cleanup tox dependency installation logic
2021-06-13 12:13:31 -07:00
Tilmann Becker
e90c10b546 Add Postal support
Thanks to @tiltec for researching, implementing, testing and documenting it.
2021-06-07 17:11:35 -07:00
medmunds
3a03b196b8 Tests: run Django 3.2 first
Update tox.ini for Django 3.2 release
2021-05-19 13:48:22 -07:00
Mike Edmunds
a08052e7f8 Update tox for Django dev branch install
Django has renamed their dev branch to "main".

(Also clean up some version reporting.)
2021-03-10 09:57:13 -08:00
medmunds
f039366bf0 Test against Django 3.2 prerelease
* Omit default_app_config under Django 3.2 and later
  to avoid DeprecationWarning
* Also adds testing on Python 3.9, 3.10-alpha
* Also updates test matrix to include all supported
  Python versions (some older Django versions expanded
  Python support in patch releases)
2021-01-26 13:55:17 -08:00
Mike Edmunds
5cbaa24002 Move CI testing to GitHub Actions
Related changes:
* remove Travis-CI config; stop running tests on Travis
* rename live integration test environment variables
  to all start with `ANYMAIL_TEST_` (simplifies tox config)
2020-11-28 18:08:01 -08:00
medmunds
61660cd5ff SparkPost: call HTTP API directly [breaking]
Switch from the (now unmaintained) python-sparkpost
client library to a requests-based backend that calls
SparkPost's Transmissions API directly.

Also adds support for text/x-amp-html alternative parts
(which are supported by the SparkPost API, but weren't
by the client library).

Closes #203
2020-09-11 11:10:24 -07:00
Mike Edmunds
cca653fcba Docs: update tooling and outdated/broken content
* Update docs build config
  * Specify Sphinx and theme versions in docs/requirements.txt
    (tox had been using latest; RTD had pinned older versions)
  * Update docs builds for Python 3 and recent Sphinx
  * Remove obsolete sphinx-rtd-theme patches
  * Add .readthedocs.yml
  * Move some JS to async (now that Sphinx supports that)
  * Fix version-alert.js for async loading
* Remove docs versionadded/changed info older than v3.0
* Fix broken GitHub issue links in changelog (never worked?)
* Add setup long_description_content_type
* Drop poorly maintained AUTHORS.txt 
  (just point to GitHub contributors page)
2020-09-07 12:05:39 -07:00
Mike Edmunds
85cec5e9dc Drop Python 2 and Django 1.11 support
Minimum supported versions are now Django 2.0, Python 3.5.

This touches a lot of code, to:
* Remove obsolete portability code and workarounds
  (six, backports of email parsers, test utils, etc.)
* Use Python 3 syntax (class defs, raise ... from, etc.)
* Correct inheritance for mixin classes
* Fix outdated docs content and links
* Suppress Python 3 "unclosed SSLSocket" ResourceWarnings
  that are beyond our control (in integration tests due to boto3, 
  python-sparkpost)
2020-08-01 14:53:10 -07:00
medmunds
448d5ec8e5 Update Django and Python build versions
* Add Django 3.1 builds
* Django main is now 3.2dev; add test settings
* Rough in changelog deprecation notice for Django 1.11
  and Python 2.7
* Travis-CI is apparently supporting pypy3 alias now
* Travis-CI has apparently added Python 3.8 release now
2020-07-23 13:19:17 -07:00
medmunds
c38218dba1 Tests: Update for Django 3.0 release 2019-12-02 10:49:12 -08:00
medmunds
c6ab1e374c Tests: add Django 3.0 alpha, Python 3.8-dev 2019-09-27 10:58:35 -07:00
Mike Edmunds
fd558e904e Mailgun: disable non-ASCII attachment filename workaround when not needed
urllib3 v1.25 fixes non-ASCII filenames in multipart form data to be
RFC 5758 compliant by default, so our earlier workaround is no longer
needed. Disable the workaround if we detect that Requests is using a
fixed version of urllib3.

Closes #157
2019-09-03 18:04:27 -07:00
medmunds
44518ed69f Update tests, CI, readme for Django 2.2 release.
(Earlier Anymail releases work fine with Django 2.2, and have been
tested against it; this just makes everything official.)

Prefer Python 3.7 and Django 2.2 for "extra" tests (live integration,
optional packages, Django master).
2019-05-08 13:29:56 -07:00
Mike Edmunds
978996d7b8 Test without optional packages
Tox:
* Add Tox factor for extras (all, none, individual ESP).
  For now, only break out ESPs that have specific extra
  dependencies (amazon_ses, sparkpost).
* Install most package dependencies (including extras)
  through the package itself.
* Use new runtests.py environment vars to limit test tags
  when Tox isn't installing all extras.

Travis:
* Rework matrix to request specific TOXENVs directly;
  drop tox-travis.

Test runner (runtests.py):
* Centralize RUN_LIVE_TESTS logic in runtests.py
* Add ANYMAIL_ONLY_TEST and ANYMAIL_SKIP_TESTS env vars
  (comma-separated lists of tags)

Test implementations:
* Tag all ESP-specific tests with ESP
* Tag live tests with "live"
* Don't import ESP-specific packages at test module level. 
  (Test discovery imports test modules before tag-based filtering.)

Closes #104
2019-02-09 15:04:08 -08:00
medmunds
653fdac3cc Tests: Add django22-pypy3 to tox environments
Fixes #140
2019-02-08 12:28:59 -08:00
medmunds
a35ba9395d Tox/Travis: enable Django 2.2alpha testing 2019-01-17 11:14:01 -08:00
medmunds
6b99b7ef4f Docs: update readme test rendering to new PyPI layout, styles 2018-08-19 16:17:07 -07:00
medmunds
33f0f4b141 Tox: fix django111-pypy(2) and django20-py36 builds
(pypy2 is only invoked as pypy, at least in Travis env)
2018-08-14 16:14:10 -07:00
medmunds
0520ee3d70 Tox: update Django 2.1 tests to allow released version only
(and don't allow failures on Django 2.1 tests)
2018-08-14 12:11:11 -07:00
medmunds
3a47042269 Drop support for Django < 1.11 2018-05-30 15:20:47 -07:00
medmunds
51d2a404c0 Test/support Django 2.1 2018-05-24 11:49:35 -07:00
medmunds
0e99bcf42e Travis/tox: drop Python 3.3; shrink Travis matrix
Discontinue support/testing for Python 3.3 with Django 1.8.
Closes #99

Focus Travis testing on currently-supported Django/Python combinations.
(But keep a few older ones in the matrix, too.)
2018-05-15 11:08:20 -07:00
Mike Edmunds
ef69fa3bf7 Amazon SES support
Integrate Amazon SES.

Closes #54.
2018-04-11 10:35:23 -07:00
medmunds
b06d684dd5 Use tox for running tests and building docs
* Set up tox for testing supported Django/Python combinations
* Also include tox env for checking and building docs
* Use tox-travis for Travis CI integration
* Add tests against Django master
* Document building docs and running tests with tox
2018-03-15 13:08:07 -07:00