* refactor python http template * python http scaffolding * add python to make update-runtimes * integrate python scaffolding with func run * python http template * reorganize python scaffolding * cancellation stopgap * documentation and logging cleanup * Python Middleware v2 - Scaffolding * base layer cache * remove wsgi and flask templates Inbuilt templates should be limited to a base http and cloudevent integration, with anything beyond this falling to the officially supported functions samples repository. * update python cloudevents runtime in makefile * python cloudevents middleware * add python .venvs to gitignore * clean up venvs on make * add missing dependencies to python http tempklate * set python cloudevents manifest * further cleanup of repository impl * cleanup * ignore venv when building runtime container * set listen address on python container * remove unnecessary python runtime update from makefile * remove debug statements and improved comments * enable scaffolding python funcs in s2i builder * set listen address on all containers built by s2i * python s2i integration * regen fs * cleanup * enable host builder * fix manifest inheritance * regen fs * bug fixes * regen docs * cleanup and linter error fixes * conditional python host builder test * misspellings * disable python E2E Until the Python middleware is supported by the Pack builder, the E2E tests will need to be disabled. * install python for presubmit tests * use linux for test builder runs The target platform for a test needs to be a platform which is available in all test base images. That's usually linux. Using current OS would fail, for example, building python containers on MacOS because the official Python base image has no darwin layer. * fix ineffasign * set python ce template to python 3.9 * regen fs * windows python tests * python templates README |
||
---|---|---|
.. | ||
common | ||
e2e | ||
oncluster | ||
templates/go | ||
testhttp | ||
README.md | ||
e2e_extended_tests.sh | ||
e2e_lifecycle_tests.sh | ||
e2e_oncluster_tests.sh | ||
patch_network.sh | ||
presubmit-tests.sh | ||
test_python.sh |
README.md
Functions E2E Test
Lifecycle tests
Lifecycle tests exercises the most important phases of a function lifecycle starting from
creation, going thru to build, deployment, execution and then deletion (CRUD operations).
It runs func commands such as create
, deploy
, list
and delete
for a language
runtime using both default http
and cloudevents
templates.
Extended tests
Extended tests performs additional tests on func
such as templates, config envs, volumes, labels and
other scenarios.
On Cluster Builds tests
On cluster builds e2e tests exercises functions built directly on cluster.
The tests are organized per scenarios under ./oncluster
folder.
Pre-requisites
Prior to run On Cluster builds e2e tests ensure you are connected to a Kubernetes Cluster with the following deployed:
- Knative Serving
- Tekton
- Tekton Tasks listed here
- Embedded Git Server (
func-git
) used by tests
For your convenience you can run the following script to setup Tekton and required Tasks:
$ ./hack/install-tekton.sh
To install the Git Server required by tests, run:
$ ./hack/install-git-server.sh
Running all the Tests on KinD
The below instructions will run all the tests on KinD using an ephemeral container registry.
# Pre-Reqs
./hack/allocate.sh
./hack/install-tekton.sh
./hack/install-git-server.sh
make build
# Run tests
./test/e2e_oncluster_tests.sh
Running "runtime" only scenario
You can run only e2e tests to exercise a given language/runtime, for example python
env E2E_RUNTIMES=python TEST_TAGS=runtime ./test/e2e_oncluster_tests.sh
Running tests except "runtime" ones
You can run most of on cluster builds e2e scenarios, except the language/runtime specific ones, by running:
env E2E_RUNTIMES="" ./test/e2e_oncluster_tests.sh