Skip to content

Commit

Permalink
Add acceptance/selftest, showcasing basic features (#2229)
Browse files Browse the repository at this point in the history
Also make TestInprocessMode use this test.
  • Loading branch information
denik authored Jan 27, 2025
1 parent b3d98fe commit 82b0dd3
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 6 deletions.
2 changes: 2 additions & 0 deletions acceptance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ For more complex tests one can also use:
- `errcode` helper: if the command fails with non-zero code, it appends `Exit code: N` to the output but returns success to caller (bash), allowing continuation of script.
- `trace` helper: prints the arguments before executing the command.
- custom output files: redirect output to custom file (it must start with `out`), e.g. `$CLI bundle validate > out.txt 2> out.error.txt`.

See [selftest](./selftest) for a toy test.
7 changes: 1 addition & 6 deletions acceptance/acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,7 @@ func TestInprocessMode(t *testing.T) {
if InprocessMode {
t.Skip("Already tested by TestAccept")
}
if runtime.GOOS == "windows" {
// - catalogs A catalog is the first layer of Unity Catalog’s three-level namespace.
// + catalogs A catalog is the first layer of Unity Catalog�s three-level namespace.
t.Skip("Fails on CI on unicode characters")
}
require.NotZero(t, testAccept(t, true, "help"))
require.Equal(t, 1, testAccept(t, true, "selftest"))
}

func testAccept(t *testing.T, InprocessMode bool, singleTest string) int {
Expand Down
1 change: 1 addition & 0 deletions acceptance/selftest/out.hello.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
HELLO
30 changes: 30 additions & 0 deletions acceptance/selftest/output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
=== Capturing STDERR
>>> python3 -c import sys; sys.stderr.write("STDERR\n")
STDERR

=== Capturing STDOUT
>>> python3 -c import sys; sys.stderr.write("STDOUT\n")
STDOUT

=== Capturing exit code
>>> errcode python3 -c raise SystemExit(5)

Exit code: 5

=== Capturing exit code (alt)
>>> python3 -c raise SystemExit(7)

Exit code: 7

=== Capturing pwd
>>> python3 -c import os; print(os.getcwd())
$TMPDIR

=== Capturing subdir
>>> mkdir -p subdir/a/b/c

>>> withdir subdir/a/b/c python3 -c import os; print(os.getcwd())
$TMPDIR/subdir/a/b/c

=== Custom output files - everything starting with out is captured and compared
>>> echo HELLO
21 changes: 21 additions & 0 deletions acceptance/selftest/script
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
printf "=== Capturing STDERR"
trace python3 -c 'import sys; sys.stderr.write("STDERR\n")'

printf "\n=== Capturing STDOUT"
trace python3 -c 'import sys; sys.stderr.write("STDOUT\n")'

printf "\n=== Capturing exit code"
trace errcode python3 -c 'raise SystemExit(5)'

printf "\n=== Capturing exit code (alt)"
errcode trace python3 -c 'raise SystemExit(7)'

printf "\n=== Capturing pwd"
trace python3 -c 'import os; print(os.getcwd())'

printf "\n=== Capturing subdir"
trace mkdir -p subdir/a/b/c
trace withdir subdir/a/b/c python3 -c 'import os; print(os.getcwd())' | sed 's/\\/\//g'

printf "\n=== Custom output files - everything starting with out is captured and compared"
trace echo HELLO > out.hello.txt
11 changes: 11 additions & 0 deletions acceptance/selftest/test.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Badness = "Brief description of what's wrong with the test output, if anything"

#[GOOS]
# Disable on Windows
#windows = false

# Disable on Mac
#mac = false

# Disable on Linux
#linux = false

0 comments on commit 82b0dd3

Please sign in to comment.