We've been assuming that the server upon invoking start was started.
This has been false; invoking start means that the server will
eventually be started, and to make this reliably observable requires
passing control to core.
This reorganizes the Python code, scraps the current testing
infrastructure, and implements a simple test discovery and run script
based on the standard Python unittest library so we can trust that our
tests are running.
For a termination action to properly mark an _End as having stopped it
must clear the _End's _cycle attribute. To be able to do that the
termination action must hold a reference to the _End instance.
Migrating the _termination_action behavior that creates termination
actions into the scope of the _End instance is the best way to afford
the needed instance reference.
The encoding of the issuer field in this cert is now a PRINTABLESTRING
as opposed to UTF8STRING in the previous server1.pem which was causing
the Go issue.
Fixes#4086.
This defect was introduced in 9e4d0610ea. I had thought that
this code was exercised in tests but it is bypassed by the use of
grpc_test.beta.test_utilities.not_really_secure_channel. :-(
(1) Move dependency on protobuf from grpcio to grpcio_test. While the
most-commonly-foreseen use case of grpcio makes use of protobuf,
technically protobuf is not strictly needed and there's no actual
in-code relationship between grpcio and protobuf.
(2) Loosen the dependency on protobuf from ==3.0.0a3 to >=3.0.0a3.
(3) Update all references to 0.10.0* to 0.11.0.
(4) Alphabetize the grpcio_test dependencies.
Servers and stubs were context managers in the Alpha API; they may not
need to be in the Beta API but it's easy enough to do, eases migration,
and probably helps some use cases.
For now the stub is given empty __enter__ and __exit__ methods; we can
always come back and implement the actual work of context management in
a later change.
(1) Renamed the "beta" module "implementations" because it hasn't been
monolithic since "interfaces" was factored out of it a few changes
back.
(2) Moved ChannelConnectivity from grpc.beta.beta to
grpc.beta.interfaces since it is constants that don't depend on the
beta implementation.
(3) Moved the Server interface definition from grpc.beta.beta to
grpc.beta.interfaces since it is an interface.
(4) Dropped the "create_" prefix from "create_<...>_channel" functions
to better match the other creation functions throughout the codebase.