]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.4] Backport CI config from master (#2475)
authorVictor Stinner <victor.stinner@gmail.com>
Sat, 22 Jul 2017 19:22:31 +0000 (21:22 +0200)
committerlarryhastings <larry@hastings.org>
Sat, 22 Jul 2017 19:22:31 +0000 (12:22 -0700)
* Issues #23808, #25911: Trying to fix walk tests on Windows.

On Windows a symlink can has the FILE_ATTRIBUTE_DIRECTORY flag.

(cherry picked from commit 388b90f28e029daaf06aae8026b596e2f20a1cd3)

* bpo-30231: Remove skipped test_imaplib tests (#1419) (#2193)

The public cyrus.andrew.cmu.edu IMAP server (port 993) doesn't accept
TLS connection using our self-signed x509 certificate. Remove the two
tests which are already skipped.
(cherry picked from commit 7895a0585b4b6a1c8082d17227307c6ce2c8bb8b)

* Backport CI config from master

* Add .travis.yml for Travis CI
* Add .github/ for AppVeyor and CodeCov.

* Travis CI: remove "make regen-all" check

The regen-all Makefile rule doesn't exist in Python 3.4, only since
Python 3.5 and newer (and 2.7).

* appveyor: replace --slowest with --slow

* Travis CI: remove the GCC coverage job

* Travis CI: remove tzdata resource from regrtest

tzdata resource doesn't exist in Python 3.4.

* Travis CI: remove the doc job

Fixing Sphinx warnings requires to backport huge intrusive changes
like:

- commit d97b7dc94b19063f0589d401bdc4aaadc7030762
- commit 5c6793394066b012b9674681b0815667938ce4d9

* appveyor: set version to 3.4.6+

* bpo-30730: Fix test_os tests.

Fix test_invalid_cmd() and test_invalid_env(), TypeError is raised on
Python 3.4.

(cherry picked from commit 5e22721e586344b547194f0f7ea67fd425f94e72)

.github/CONTRIBUTING.rst [new file with mode: 0644]
.github/appveyor.yml [new file with mode: 0644]
.travis.yml [new file with mode: 0644]
Lib/test/test_imaplib.py
Lib/test/test_os.py
Lib/test/test_subprocess.py

diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst
new file mode 100644 (file)
index 0000000..83cfee3
--- /dev/null
@@ -0,0 +1,47 @@
+Contributing to Python
+======================
+
+Build Status
+------------
+
+- master
+
+  + `Stable buildbots <http://buildbot.python.org/3.x.stable/>`_
+
+- 3.6
+
+  + `Stable buildbots <http://buildbot.python.org/3.6.stable/>`_
+
+- 3.5
+
+  + `Stable buildbots <http://buildbot.python.org/3.5.stable/>`_
+
+- 2.7
+
+  + `Stable buildbots <http://buildbot.python.org/2.7.stable/>`_
+
+
+Contribution Guidelines
+-----------------------
+Please read the `devguide <https://cpython-devguide.readthedocs.io/>`_ for
+guidance on how to contribute to this project. The documentation covers
+everything from how to build the code to submitting a pull request. There are
+also suggestions on how you can most effectively help the project.
+
+Please be aware that our workflow does deviate slightly from the typical GitHub
+project. Details on how to properly submit a pull request are covered in
+`Lifecycle of a Pull Request <https://cpython-devguide.readthedocs.io/pullrequest.html>`_.
+One key point is to keep comments on GitHub to only those related to the reviewing
+the code in the pull request. All other discussions -- e.g. about the issue being
+fixed -- should happen on bugs.python.org.
+
+If you are making a code contribution or large documentation contribution,
+please feel free to add yourself to the ``Misc/ACKS`` file alphabetically.
+
+
+Code of Conduct
+---------------
+All interactions for this project are covered by the
+`PSF Code of Conduct <https://www.python.org/psf/codeofconduct/>`_. Everyone is
+expected to be open, considerate, and respectful of others no matter their
+position within the project.
diff --git a/.github/appveyor.yml b/.github/appveyor.yml
new file mode 100644 (file)
index 0000000..e71346f
--- /dev/null
@@ -0,0 +1,28 @@
+version: 3.4.6+.{build}
+clone_depth: 5
+branches:
+  only:
+    - master
+    - /\d\.\d/
+    - buildbot-custom
+build_script:
+- cmd: PCbuild\build.bat -e
+test_script:
+- cmd: PCbuild\rt.bat -q -uall -u-cpu -rwW --slow --timeout=1200 -j0
+
+# Only trigger AppVeyor if actual code or its configuration changes
+only_commits:
+  files:
+    - .github/appveyor.yml
+    - .gitattributes
+    - Grammar/
+    - Include/
+    - Lib/
+    - Modules/
+    - Objects/
+    - PC/
+    - PCBuild/
+    - Parser/
+    - Programs/
+    - Python/
+    - Tools/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..169ec5c
--- /dev/null
@@ -0,0 +1,68 @@
+language: c
+dist: trusty
+sudo: false
+group: beta
+
+# To cache doc-building dependencies.
+cache: pip
+
+branches:
+  only:
+    - master
+    - /^\d\.\d$/
+
+matrix:
+  fast_finish: true
+  allow_failures:
+    - env: OPTIONAL=true
+  include:
+    - os: linux
+      language: c
+      compiler: clang
+      # gcc also works, but to keep the # of concurrent builds down, we use one C
+      # compiler here and the other to run the coverage build. Clang is preferred
+      # in this instance for its better error messages.
+      env: TESTING=cpython
+    - os: osx
+      language: c
+      compiler: clang
+      # Testing under macOS is optional until testing stability has been demonstrated.
+      env: OPTIONAL=true
+      before_install:
+        - brew install openssl xz
+        - export CPPFLAGS="-I$(brew --prefix openssl)/include"
+        - export LDFLAGS="-L$(brew --prefix openssl)/lib"
+
+# Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
+before_script:
+  - |
+      set -e
+      if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
+      then
+        echo "Only docs were updated, stopping build process."
+        exit
+      fi
+      ./configure --with-pydebug
+      make -j4
+
+script:
+  # Using the built Python as patchcheck.py is built around the idea of using
+  # a checkout-build of CPython to know things like what base branch the changes
+  # should be compared against.
+  # Only run on Linux as the check only needs to be run once.
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./python Tools/scripts/patchcheck.py --travis $TRAVIS_PULL_REQUEST; fi
+  # `-r -w` implicitly provided through `make buildbottest`.
+  - make buildbottest TESTOPTS="-j4 -uall,-cpu"
+
+notifications:
+  email: false
+  irc:
+    channels:
+      # This is set to a secure variable to prevent forks from notifying the
+      # IRC channel whenever they fail a build. This can be removed when travis
+      # implements https://github.com/travis-ci/travis-ci/issues/1094.
+      # The actual value here is: irc.freenode.net#python-dev
+      - secure: "s7kAkpcom2yUJ8XqyjFI0obJmhAGrn1xmoivdaPdgBIA++X47TBp1x4pgDsbEsoalef7bEwa4l07KdT4qa+DOd/c4QxaWom7fbN3BuLVsZuVfODnl79+gYq/TAbGfyH+yDs18DXrUfPgwD7C5aW32ugsqAOd4iWzfGJQ5OrOZzqzGjYdYQUEkJFXgxDEIb4aHvxNDWGO3Po9uKISrhb5saQ0l776yLo1Ur7M4oxl8RTbCdgX0vf5TzPg52BgvZpOgt3DHOUYPeiJLKNjAE6ibg0U95sEvMfHX77nz4aFY4/3UI6FFaRla34rZ+mYKrn0TdxOhera1QOgPmM6HzdO4K44FpfK1DS0Xxk9U9/uApq+cG0bU3W+cVUHDBe5+90lpRBAXHeHCgT7TI8gec614aiT8lEr3+yH8OBRYGzkjNK8E2LJZ/SxnVxDe7aLF6AWcoWLfS6/ziAIBFQ5Nc4U72CT8fGVSkl8ywPiRlvixKdvTODMSZo0jMqlfZSNaAPTsNRx4wu5Uis4qekwe32Fz4aB6KGpsuuVjBi+H6v0RKxNJNGY3JKDiEH2TK0UE2auJ5GvLW48aUVFcQMB7euCWYXlSWVRHh3WLU8QXF29Dw4JduRZqUpOdRgMHU79UHRq+mkE0jAS/nBcS6CvsmxCpTSrfVYuMOu32yt18QQoTyU="
+    on_success: change
+    on_failure: always
+    skip_join: true
index 838411e76fe6919b0bc3ce7611fe95c04abe7564..68a710561327f67029e5b4a36e09a6961588398f 100644 (file)
@@ -468,16 +468,6 @@ class RemoteIMAP_SSLTest(RemoteIMAPTest):
             _server = self.imap_class(self.host, self.port)
             self.check_logincapa(_server)
 
-    def test_logincapa_with_client_certfile(self):
-        with transient_internet(self.host):
-            _server = self.imap_class(self.host, self.port, certfile=CERTFILE)
-            self.check_logincapa(_server)
-
-    def test_logincapa_with_client_ssl_context(self):
-        with transient_internet(self.host):
-            _server = self.imap_class(self.host, self.port, ssl_context=self.create_ssl_context())
-            self.check_logincapa(_server)
-
     def test_logout(self):
         with transient_internet(self.host):
             _server = self.imap_class(self.host, self.port)
index e29b0d585c723004635d1d02d6669e587fd6ec66..c5f5937889f76bb4dc54de81cba5f8de1c5682a3 100644 (file)
@@ -770,7 +770,11 @@ class WalkTests(unittest.TestCase):
         if support.can_symlink():
             os.symlink(os.path.abspath(t2_path), self.link_path)
             os.symlink('broken', broken_link_path, True)
-            self.sub2_tree = (sub2_path, ["link"], ["broken_link", "tmp3"])
+            if os.path.isdir(broken_link_path):
+                # On Windows a symlink can has the FILE_ATTRIBUTE_DIRECTORY flag.
+                self.sub2_tree = (sub2_path, ["broken_link", "link"], ["tmp3"])
+            else:
+                self.sub2_tree = (sub2_path, ["link"], ["broken_link", "tmp3"])
         else:
             self.sub2_tree = (sub2_path, [], ["tmp3"])
 
index 19b140239439cf7414710de7869117ccc2d0fe90..6d55f9bbf34ba4c0b9560daa6dd6f99eeab73b90 100644 (file)
@@ -609,24 +609,24 @@ class ProcessTestCase(BaseTestCase):
     def test_invalid_cmd(self):
         # null character in the command name
         cmd = sys.executable + '\0'
-        with self.assertRaises(ValueError):
+        with self.assertRaises((ValueError, TypeError)):
             subprocess.Popen([cmd, "-c", "pass"])
 
         # null character in the command argument
-        with self.assertRaises(ValueError):
+        with self.assertRaises((ValueError, TypeError)):
             subprocess.Popen([sys.executable, "-c", "pass#\0"])
 
     def test_invalid_env(self):
         # null character in the enviroment variable name
         newenv = os.environ.copy()
         newenv["FRUIT\0VEGETABLE"] = "cabbage"
-        with self.assertRaises(ValueError):
+        with self.assertRaises((ValueError, TypeError)):
             subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
 
         # null character in the enviroment variable value
         newenv = os.environ.copy()
         newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
-        with self.assertRaises(ValueError):
+        with self.assertRaises((ValueError, TypeError)):
             subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
 
         # equal character in the enviroment variable name