1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-04 10:36:17 +01:00
github.com_openSUSE_osc/behave
2024-11-29 15:49:20 +01:00
..
container-files behave: Add tests for git-obs commands, update test suite as needed 2024-10-11 13:13:26 +02:00
features Fix another bytes/unicode issues in core.link_pac() by replacing ElementTree code with XML models 2024-11-29 15:49:20 +01:00
fixtures behave: Add tests for git-obs commands, update test suite as needed 2024-10-11 13:13:26 +02:00
container-build.sh GHA: Clean creating obs-server container image up 2024-10-11 13:13:26 +02:00
container-pull.sh behave: Add container-pull.sh script 2024-01-11 10:01:57 +01:00
container-run.sh behave: Add tests for git-obs commands, update test suite as needed 2024-10-11 13:13:26 +02:00
container-shell.sh behave: Propagate exit codes in the shell scripts properly 2023-06-19 09:27:24 +02:00
Containerfile behave: Add tests for git-obs commands, update test suite as needed 2024-10-11 13:13:26 +02:00
README.md behave: Define 'git-obs' path when running the tests 2024-11-05 10:09:47 +01:00

Install requirements

On openSUSE:

$ zypper install osc podman python3-behave

On Fedora:

$ dnf install osc podman python3-behave

Build a container with OBS

$ cd behave

# optional: refresh the base image
$ podman pull opensuse/leap:15.6

# build the container image
$ ./container-build.sh [--no-cache]

Use a prebuilt container with OBS

$ cd behave
$ ./container-pull.sh

Use the container

$ cd behave

# run 'obs-server' container on ports:
#     1443 - api+web, https
#     1082 - repos, http
#     3000 - gitea, http
#     3022 - gitea, ssh
# running this command again replaces the current container with a fresh one
$ ./container-run.sh

# shell into the started container
$ ./container-shell.sh

Cleanup

# stop the started container
$ podman stop|kill obs-server

# remove container image
$ podman rmi obs-server

Install test dependencies

$ zypper install python3-behave diffstat diffutils obs-service-replace_using_env python3 python3-cryptography python3-pip python3-rpm python3-setuptools python3-urllib3 build obs-service-set_version

Run tests

Run all tests

$ cd behave
$ behave -Dosc=../osc-wrapper.py -Dgit-obs=../git-obs.py

Run selected tests

$ cd behave
$ behave -Dosc=../osc-wrapper.py features/<file>.feature

Run tests being worked on (decorated with @wip)

$ cd behave
behave -Dosc=../osc-wrapper.py --wip -k

Run osc commands

osc -A https://localhost:1443 ...

Filesystem layout

<project topdir>
+- behave
     +- features
        +- *.feature       # tests (that use steps defined in the `steps` directory)
                           #   * https://behave.readthedocs.io/en/stable/tutorial.html#feature-files
        +- environment.py  # code that runs before/after certain events (steps, features, etc.)
                           #   * https://behave.readthedocs.io/en/stable/tutorial.html#environmental-controls
                           #   * frequently used to modify ``context``
        +- steps           # step definitions, support code
                           #   * https://behave.readthedocs.io/en/stable/tutorial.html#python-step-implementations
     +- fixtures           # test data
     +- *                  # additional support files

Good to know

  • context provides state information to the tests; you can think of it as passing self to python methods.
  • context.config.userdata contains values of defines specified on the command-line: -D NAME=VALUE -> context.config.userdata[NAME] = VALUE