Commit Graph

75 Commits

Author SHA1 Message Date
Paul Ganssle 62972d9d73
bpo-40503: PEP 615: Tests and implementation for zoneinfo (GH-19909)
This is the initial implementation of PEP 615, the zoneinfo module,
ported from the standalone reference implementation (see
https://www.python.org/dev/peps/pep-0615/#reference-implementation for a
link, which has a more detailed commit history).

This includes (hopefully) all functional elements described in the PEP,
but documentation is found in a separate PR. This includes:

1. A pure python implementation of the ZoneInfo class
2. A C accelerated implementation of the ZoneInfo class
3. Tests with 100% branch coverage for the Python code (though C code
   coverage is less than 100%).
4. A compile-time configuration option on Linux (though not on Windows)

Differences from the reference implementation:

- The module is arranged slightly differently: the accelerated module is
  `_zoneinfo` rather than `zoneinfo._czoneinfo`, which also necessitates
  some changes in the test support function. (Suggested by Victor
  Stinner and Steve Dower.)
- The tests are arranged slightly differently and do not include the
  property tests. The tests live at test/test_zoneinfo/test_zoneinfo.py
  rather than test/test_zoneinfo.py or test/test_zoneinfo/__init__.py
  because we may do some refactoring in the future that would likely
  require this separation anyway; we may:
        - include the property tests
        - automatically run all the tests against both pure Python and C,
          rather than manually constructing C and Python test classes (similar
          to the way this works with test_datetime.py, which generates C
          and Python test cases from datetimetester.py).
- This includes a compile-time configuration option on Linux (though not
  on Windows); added with much help from Thomas Wouters.
- Integration into the CPython build system is obviously different from
  building a standalone zoneinfo module wheel.
- This includes configuration to install the tzdata package as part of
  CI, though only on the coverage jobs. Introducing a PyPI dependency as
  part of the CI build was controversial, and this is seen as less of a
  major change, since the coverage jobs already depend on pip and PyPI.

Additional changes that were introduced as part of this PR, most / all of
which were backported to the reference implementation:

- Fixed reference and memory leaks

    With much debugging help from Pablo Galindo

- Added smoke tests ensuring that the C and Python modules are built

    The import machinery can be somewhat fragile, and the "seamlessly falls
    back to pure Python" nature of this module makes it so that a problem
    building the C extension or a failure to import the pure Python version
    might easily go unnoticed.

- Adjustments to zoneinfo.__dir__

    Suggested by Petr Viktorin.

- Slight refactorings as suggested by Steve Dower.

- Removed unnecessary if check on std_abbr

    Discovered this because of a missing line in branch coverage.
2020-05-16 10:20:06 +02:00
Pablo Galindo 3f8a58b7ef
PEP 617: Only run the CI with the new parser (GH-19664) 2020-04-23 00:06:03 +01:00
Pablo Galindo c5fc156852
bpo-40334: PEP 617 implementation: New PEG parser for CPython (GH-19503)
Co-authored-by: Guido van Rossum <guido@python.org>
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
2020-04-22 23:29:27 +01:00
Victor Stinner b1ffb8b723
bpo-40162: Update Travis CI config to OpenSSL 1.1.1f (GH-19319) 2020-04-03 03:03:59 +02:00
Ammar Askar 766b7546a5
bpo-39704: Explicitly pass the path to codecov config (GH-18680) 2020-02-27 15:08:30 -08:00
Inada Naoki 94d2c8df1a
bpo-39035: travis: Don't use beta group (GH-17602) 2019-12-14 20:10:15 +09:00
Julien Palard c987090c73
Bump Sphinx to 2.2.0. (GH-16532) 2019-10-22 18:13:41 +02:00
Christian Heimes 58ab13479d bpo-38117: Test with OpenSSL 1.1.1d (GH-15983)
Signed-off-by: Christian Heimes <christian@python.org>
2019-09-11 18:45:52 +02:00
Benjamin Peterson e45b217ae0
Remove macOS tests from Travis. (GH-15809)
Azure runs macOS, so we don't need Travis to do it.
2019-09-10 11:28:29 +01:00
Anthony Sottile bba9207248 Future-proof .travis.yml for Python 3.10 (GH-14831) 2019-09-09 05:49:33 -05:00
Inada Naoki 21cfae107e
bpo-30345: travis: use -Og with --with-pydebug (GH-14423) 2019-06-28 02:05:37 +09:00
Jeroen Demeyer 667eaffb4e bpo-33926: enable GDB tests on Travis CI (GH-14395) 2019-06-27 20:17:43 +09:00
Julien Palard 7d23dbe6d1
Doc: Bump Sphinx verison. (#13785)
To reflect the one we're using in production.
2019-06-15 15:41:58 +02:00
Christian Heimes 06651ee418
bpo-37081: Test with OpenSSL 1.1.1c (GH-13631)
Signed-off-by: Christian Heimes <christian@python.org>
2019-06-03 20:10:19 +02:00
Gordon P. Hemsley af070c1297 Name individual Travis CI jobs (GH-13268) 2019-05-13 13:18:19 +09:00
Gordon P. Hemsley 87068ed009 bpo-36684: Split out gcc and test coverage builds (GH-13146)
The combined Python and C coverage test runs now exceed Travis's
50-minute time limit. Splitting them into separate runs gives more
leeway.

Also, adding branch coverage to Python testing and ensure that
coverage is reported even if tests fail. (The primary builds are
for tracking test failures.)
2019-05-12 12:33:34 +09:00
Inada Naoki 57b1a2862a
bpo-36597: fix random doctest failure (GH-12776) 2019-04-11 17:53:49 +09:00
Victor Stinner adff01e81d
bpo-36597: Disable Travis CI doctest job (GH-12775)
Disable the job to unblock the CI until the issue is properly
understood.
2019-04-11 09:46:46 +02:00
CAM Gerlach 74ae50e53e bpo-36307: Travis: upgrade to Xenial environment (GH-12356) 2019-03-18 19:44:58 +09:00
Victor Stinner a22df4896f
bpo-35240: Add "doctest" job to Travis CI (GH-10753)
Create a new "doctest" job in Travis CI to run "make doctest".
2018-11-28 10:24:08 +01:00
Julien Palard 7f4ba4afd4
Doc: Bump sphinx. (GH-10676) 2018-11-24 11:35:21 +01:00
Zachary Ware 0bd4826d2d
Encrypt Zulip webhook address (GH-10010)
This should reduce false failure reports to the Zulip 'core/test runs'
stream from Travis failures on private forks.
2018-10-20 11:35:21 -05:00
Julien Palard 17775ae463
Pin again sphinx version as stated in the comment. (GH-9824) 2018-10-12 19:23:37 +02:00
Stéphane Wirtel 859c068e52 bpo-34962: make doctest in Doc/ now passes, and is enforced in CI (GH-9806) 2018-10-12 09:51:05 +02:00
Christian Heimes 9fb051f032 bpo-34670: Add TLS 1.3 post handshake auth (GH-9460)
Add SSLContext.post_handshake_auth and
SSLSocket.verify_client_post_handshake for TLS 1.3 post-handshake
authentication.

Signed-off-by: Christian Heimes <christian@python.org>q


https://bugs.python.org/issue34670
2018-09-22 23:32:31 -07:00
Zachary Ware b12112b5ba
Enable GUI testing on Travis Linux builds via Xvfb (GH-7887) 2018-07-11 14:09:58 -05:00
Ammar Askar d7da836c74 Add test coverage reporting for C files (GH-7773) 2018-06-22 14:29:02 -07:00
INADA Naoki 6b87399f0f
travis: Fix macOS build (GH-7250)
Homebrew's python is now python3, but travis preinstalls old python2.
So updated Homebrew requires `brew upgrade python` now.

This commit disables auto update and use preinstalled version of Homebrew.
2018-06-04 12:57:03 +09:00
Christian Heimes e8eb6cb792
bpo-33570: TLS 1.3 ciphers for OpenSSL 1.1.1 (GH-6976)
Change TLS 1.3 cipher suite settings for compatibility with OpenSSL
1.1.1-pre6 and newer. OpenSSL 1.1.1 will have TLS 1.3 cipers enabled by
default.

Also update multissltests and Travis config to test with latest OpenSSL.

Signed-off-by: Christian Heimes <christian@python.org>
2018-05-22 22:50:12 +02:00
Brett Cannon 0876505bd3
Add a webhook for Zulip to the Travis configuration (GH-6379) 2018-04-04 19:12:39 -07:00
Jon Wayne Parrott bf63e8d55f bpo-30607: Use external python-doc-theme (GH-2017) 2018-03-01 16:02:50 -05:00
Antoine Pitrou d7687eb4b6
bpo-31355: Travis-CI: re-enable macOS job (#5858)
The long build queues that plagued macOS builds on Travis seem to be
a thing of the past now.
2018-02-27 21:40:37 +01:00
Zachary Ware 7eb3f8226e
Clean up Travis config (GH-5727) 2018-02-18 10:19:37 -06:00
Zachary Ware d6ff8a7037
bpo-30638: Add clinic to `make regen-all` (GH-5671)
Also, use PYTHON_FOR_REGEN for clinic and blake2s_impl.c rather than PYTHON_FOR_BUILD, and update .travis.yml to make use of the change.
2018-02-17 17:58:57 -06:00
INADA Naoki 8ff5356473
travis: Use -O3 option (GH-5599)
We don't use debugger on Travis.
2018-02-10 20:35:17 +09:00
Stéphane Wirtel 32921f9082 bpo-32802: Fix Travis build (GH-5589)
Fix bug in travis configuration where it did not run the tests when
a change includes both code and doc changes.
2018-02-08 11:14:59 -08:00
Ammar Askar b2ec3615c8 Fix changed file detection on Travis (GH-3129)
Travis when merging changes from a pull request onto the target branch
does not perform a rebase, instead it does a simple merge which causes
the PR commits to retain their commit dates. This means that the commit
log can potentially look like:

PR merge <-- HEAD
normal master commit <- master
more commits from normal workflow
PR commit 1
another master commit
PR commit 2

Performing a git diff from PR commit 2 to master will accidentally
include files that should not be there.

Closes python/core-workflow#14
2018-01-27 23:53:56 +03:00
Christian Heimes ced9cb5303
bpo-32549: Compile OpenSSL 1.1.0 on Travis CI (#5180)
Use an improved version of multissl test helper to compile a local copy
of OpenSSL 1.1.0g.

Signed-off-by: Christian Heimes <christian@python.org>
2018-01-16 21:02:26 +01:00
Ned Deily 122fc136b3
Revert "bpo-30487: automatically create a venv and install Sphinx when running make (GH-4346)" (#4592)
Fix breakage documented in bpo-32149.
This reverts commit d8d6b91221.
2017-11-27 17:07:32 -05:00
Caleb Hattingh d8d6b91221 bpo-30487: automatically create a venv and install Sphinx when running make (GH-4346) 2017-11-26 15:18:30 -06:00
Victor Stinner 87d332dcdb bpo-31810: Add smelly.py to check exported symbols (#4057)
* Add Tools/scripts/smelly.py: script checking if all symbols
  exported by libpython start with "Py" or "_Py".
* Modify "make smelly" to run smelly.py: the command now fails with a
  non-zero exit code if libpython leaks a "smelly" symbol.
* Travis CI now runs "make smelly"
2017-10-24 01:29:53 -07:00
Thomas Moreau e8c368df22 bpo-31540: Allow passing multiprocessing context to ProcessPoolExecutor (#3682) 2017-10-03 11:53:17 +02:00
Victor Stinner a7b3bc554c Travis CI: run coverage test using --fail-env-changed (#3541) 2017-09-13 05:17:27 -07:00
Victor Stinner 501b324d3a bpo-31355: Travis CI: remove the macOS job (#3367) 2017-09-06 02:57:14 +02:00
Ned Deily fcd97d4438 Include additional changes to support blurbified NEWS (#3340) 2017-09-05 00:46:18 -07:00
Christian Heimes 8adc73c2c1 Travis: use ccache (#3307) 2017-09-05 01:48:54 +02:00
Victor Stinner 92b1f90143 bpo-31231: Fix pythoninfo in Travis config (#3134)
bpo-31231, bpo-30871: Replace "./python -m test.pythoninfo" with
"make pythoninfo", since macOS uses ./python.exe.
2017-08-18 17:30:51 +02:00
Victor Stinner b907abc885 bpo-30871: Add test.pythoninfo (#3075)
* Add Lib/test/pythoninfo.py: script collecting various informations
  about Python to help debugging test failures.
* regrtest: remove sys.hash_info and sys.flags from header.
* Travis CI, Appveyor: run pythoninfo before tests
2017-08-17 16:40:51 +02:00
Victor Stinner 5b392bbaeb bpo-30822: Exclude tzdata from regrtest --all (#2775)
When running the test suite using --use=all / -u all, exclude tzdata
since it makes test_datetime too slow (15-20 min on some buildbots)
which then times out on some buildbots.

-u tzdata must now be enabled explicitly, -u tzdata or -u all,tzdata,
to run all test_datetime tests.

Fix also regrtest command line parser to allow passing -u
extralargefile to run test_zipfile64.

Travis CI: remove -tzdata. Replace -u all,-tzdata,-cpu with -u all,-cpu since tzdata is now excluded from -u all.
2017-07-20 15:46:32 +02:00
Brett Cannon 70cb1875bb Check the whitespace of pull requests on Travis (GH-2367) 2017-06-24 16:51:23 -07:00