aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/pybind11/tests/test_async.cpp
blob: a5d7224657298d159269838ab63607cb8d8e75a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
    tests/test_async.cpp -- __await__ support

    Copyright (c) 2019 Google Inc.

    All rights reserved. Use of this source code is governed by a
    BSD-style license that can be found in the LICENSE file.
*/

#include "pybind11_tests.h"

TEST_SUBMODULE(async_module, m) {
    struct DoesNotSupportAsync {};
    py::class_<DoesNotSupportAsync>(m, "DoesNotSupportAsync").def(py::init<>());
    struct SupportsAsync {};
    py::class_<SupportsAsync>(m, "SupportsAsync")
        .def(py::init<>())
        .def("__await__", [](const SupportsAsync &self) -> py::object {
            static_cast<void>(self);
            py::object loop = py::module_::import("asyncio.events").attr("get_event_loop")();
            py::object f = loop.attr("create_future")();
            f.attr("set_result")(5);
            return f.attr("__await__")();
        });
}
r l-Scalar-Plain">2.7 env: TOXENV=py27 - python: 3.4 env: TOXENV=py34 - python: 3.5 env: TOXENV=py35 - python: 3.6 env: TOXENV=py36 - python: pypy-5.3 env: TOXENV=pypy - python: pypy2.7-5.8.0 env: TOXENV=pypy - python: pypy3.5-5.8.0 env: TOXENV=pypy3-nocoverage - python: 2.7 env: TOXENV=py27 OPENSSL=1.1.0f - python: 3.5 env: TOXENV=py35 OPENSSL=1.1.0f - python: 2.7 env: TOXENV=docs OPENSSL=1.1.0f addons: apt: packages: - libenchant-dev - python: 2.7 env: TOXENV=pep8 - python: 3.4 env: TOXENV=py3pep8 # - language: generic # os: osx # # 8.3 is macOS 10.12.x # # see: https://docs.travis-ci.com/user/osx-ci-environment/ # osx_image: xcode8.3 # env: TOXENV=py27 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=py34 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=py35 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=py36 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=pypy-nocoverage CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 PYPY_VERSION=pypy2.7-5.8.0 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=py27 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=0 # - language: generic # os: osx # # 7.3 is OS X 10.11.x # osx_image: xcode7.3 # env: TOXENV=py27 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # # 6.4 is OS X 10.10.x # osx_image: xcode6.4 # env: TOXENV=py27 CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 # - language: generic # os: osx # osx_image: xcode8.3 # env: TOXENV=docs CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1 install: - ./.travis/install.sh script: - ./.travis/run.sh after_success: - ./.travis/upload_coverage.sh notifications: 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 value encrypted here was created via # travis encrypt "irc.freenode.org#cryptography-dev" - secure: "A93qvTOlwlMK5WoEvZQ5jQ8Z4Hd0JpeO53WYt8iIJ3s/L6AubkfiN7gwhThRtPnPx7DVMenoKRMlcRg76/ICvXEViVnGgXFjsypF0CzVcIay9pPdjpZjZHP735yLfX512RtxYEdEGwi5r25Z2CEFaydhhxNwfuMxGBtLUjusix4=" use_notice: true skip_join: true