diff options
author | fenekku <fenekku@fenekku.com> | 2015-08-12 10:30:36 -0400 |
---|---|---|
committer | fenekku <fenekku@fenekku.com> | 2015-08-12 10:30:36 -0400 |
commit | c62698b2969f67cdfdcf18c6416bdba9e5b50197 (patch) | |
tree | 0ca3f79d2c8d554a775a855eed681c56ce3d320e | |
parent | 58b83815018fce2ec614b4a3624e5828a2f7db8f (diff) | |
download | Nim-c62698b2969f67cdfdcf18c6416bdba9e5b50197.tar.gz |
make testSetupIMPL and testTeardownIMPL non-public
-rwxr-xr-x | lib/pure/unittest.nim | 9 | ||||
-rw-r--r-- | tests/stdlib/tunittest.nim | 45 |
2 files changed, 49 insertions, 5 deletions
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index 3f36ed5a7..a0f7b955e 100755 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -70,9 +70,6 @@ var ## Global unittest settings! checkpoints = @[] -template testSetupIMPL*: stmt {.immediate, dirty.} = discard #Should this be public or even exist? -template testTeardownIMPL*: stmt {.immediate, dirty.} = discard - proc shouldRun(testName: string): bool = result = true @@ -106,9 +103,11 @@ template suite*(name: expr, body: stmt): stmt {.immediate, dirty.} = ## [OK] (2 + -2) != 4 block: template setup(setupBody: stmt): stmt {.immediate, dirty.} = + var testSetupIMPLFlag = true template testSetupIMPL: stmt {.immediate, dirty.} = setupBody template teardown(teardownBody: stmt): stmt {.immediate, dirty.} = + var testTeardownIMPLFlag = true template testTeardownIMPL: stmt {.immediate, dirty.} = teardownBody body @@ -149,7 +148,7 @@ template test*(name: expr, body: stmt): stmt {.immediate, dirty.} = var testStatusIMPL {.inject.} = OK try: - testSetupIMPL() + when declared(testSetupIMPLFlag): testSetupIMPL() body except: @@ -159,7 +158,7 @@ template test*(name: expr, body: stmt): stmt {.immediate, dirty.} = fail() finally: - testTeardownIMPL() + when declared(testTeardownIMPLFlag): testTeardownIMPL() testDone name, testStatusIMPL proc checkpoint*(msg: string) = diff --git a/tests/stdlib/tunittest.nim b/tests/stdlib/tunittest.nim index 1389214ea..4d2a2a340 100644 --- a/tests/stdlib/tunittest.nim +++ b/tests/stdlib/tunittest.nim @@ -38,3 +38,48 @@ proc defectiveRobot() = test "unittest expect": expect IOError, OSError, ValueError, AssertionError: defectiveRobot() + +var + a = 1 + b = -1 + c = 1 + +#unittests are sequential right now +suite "suite with only teardown": + teardown: + b = 2 + + test "unittest with only teardown 1": + check a == c + + test "unittest with only teardown 2": + check b > a + +suite "suite with only setup": + setup: + var testVar = "from setup" + + test "unittest with only setup 1": + check testVar == "from setup" + check b > a + b = -1 + + test "unittest with only setup 2": + check b < a + +suite "suite with none": + test "unittest with none": + check b < a + +suite "suite with both": + setup: + a = -2 + + teardown: + c = 2 + + test "unittest with both 1": + check b > a + + test "unittest with both 2": + check c == 2 |