No project description provided
Project description
tempground
A script that allows you to concisely:
- create a temp directory
- fill the directory with files of known content
- run shell commands in the directory
- check the run results
For example, during integration testing of a library, we can create a small temporary project that imports our library. And we check that the library was imported.
Example: Testing a Kotlin library
Suppose you have created a Kotlin library named mylib
. You need to test that
third-party projects can use mylib
as a dependency.
The test can be run by creating a single file like this:
# lib_test.py
from tempground import *
with TempGround(
files={
# minimalistic build script to use the library
"build.gradle.kts": """
plugins {
id("application")
kotlin("jvm") version "1.6.10"
}
repositories { mavenCentral() }
application { mainClass.set("MainKt") }
dependencies {
implementation("io.github.username:mylib")
}
""",
# additional settings, if necessary
"settings.gradle.kts": """
sourceControl {
gitRepository(java.net.URI("https://github.com/username/mylib.git")) {
producesModule("io.github.username:mylib")
}
}
""",
# kotlin code that imports and uses the library
"src/main/kotlin/Main.kt": """
import io.github.username:mylib.spanishGreeting
fun main() = println(spanishGreeting())
"""}) as app:
# running our test project
result = app.run(["gradle", "run", "-q"])
assert result.returncode == 0
assert result.stdout == "¡Hola!\n"
print("Everything is OK!")
To run the test on a clean system, install tempground
and run the script:
# assuming pip and python are Python 3.10+
# and lib_test.py is a local file
$ pip install tempground
$ python lib_test.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tempground-0.4.1.tar.gz
(5.5 kB
view hashes)
Built Distribution
Close
Hashes for tempground-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 156710554c29805187008b8f5af1debb4bf85afb93de05d5e5884e1152ae39b6 |
|
MD5 | d2c52ce7e37858655232ddfc93783203 |
|
BLAKE2b-256 | 2f270c2897067f581912312adc5edbdd30927894fc79960a907ee1e300307407 |