From c674d4a94cdb520c81163d9ac072f8e631f0a087 Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@kr.ethz.ch>
Date: Tue, 11 Oct 2011 14:14:12 +0200
Subject: [PATCH] distribute tests

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
---
 doc/dev/todo/niconext |  56 ++++++++++++++++++++-
 doc/dev/todo/steven   |  60 ++++++++++++++++++++++
 doc/dev/todo/tests    | 112 ------------------------------------------
 3 files changed, 115 insertions(+), 113 deletions(-)

diff --git a/doc/dev/todo/niconext b/doc/dev/todo/niconext
index 9710f4ea..520128cc 100644
--- a/doc/dev/todo/niconext
+++ b/doc/dev/todo/niconext
@@ -1,7 +1,61 @@
 2.0.3:
 
 - fix emulator / require
-- sanity checks
+- sanity checks: implement tests
+
+   stage_run()
+      - ensure that for every object in
+         cdist.core.Object.list_objects() is passed into
+         self.object_run()
+         - instantiate + overwrite + test
+
+   object_prepare():
+      - calls (in this order):
+         self.run_type_explorer(cdist_object)
+         self.run_type_manifest(cdist_object)
+         cdist_object.prepared = True
+      - object is prepared after function call
+
+
+   stage_prepare():
+      - calls (in this order):
+         self.link_emulator()
+         self.run_global_explorers()
+         self.run_initial_manifest()
+
+      - ensure that all objects are created :-)
+         - as defined in inital manifest + type manifests
+         
+   deploy_to()
+      - ensure self.stage_prepare() and self.stage_run() are
+         run. [ORDER]
+         - instantiate + overwrite + test
+
+   deploy_and_cleanup()
+      - ensure self.deploy_to() + self.cleanup() are are run
+         run. [ORDER]
+         - instantiate + overwrite + test
+
+   transfer_object_parameter()
+      - check that object parameters are transferred
+      - paths are setup correctly
+         - test via mock of remote_mkdir and transfer_path
+      - ensure self.remote_mkdir, self.transfer_path are run. [ORDER]
+         - instantiate + overwrite + test
+   
+   transfer_global_explorers()
+      - paths are setup correctly
+         - test via mock of self.remote_mkdir() and self.transfer_path()
+      - ensure self.remote_mkdir, self.transfer_path are run. [ORDER]
+         - instantiate + overwrite + test
+   
+   transfer_type_explorers():
+      - Explorers are not transferred twice
+      - paths are setup correctly
+         - test via mock of self.remote_mkdir() and self.transfer_path()
+      - Explorers are transferred
+         - test via mock of self.remote_mkdir() and self.transfer_path()
+
 
 --------------------------------------------------------------------------------
 
diff --git a/doc/dev/todo/steven b/doc/dev/todo/steven
index f0c867e1..93c6cab3 100644
--- a/doc/dev/todo/steven
+++ b/doc/dev/todo/steven
@@ -1,3 +1,63 @@
+tests:
+
+   __init__():
+      - sets up env: __target_host
+
+   run_initial_manifest():
+      - parameter is actually used (from __init__)
+      - ensure changing the manifest actually runs a different manifest
+      -> give ConfigInstall Constructor different manifest
+         -> different manifest is executed.
+      - test all submitted (from core to type manifest) variables:
+         - ENVIRONMENT
+         - they are set
+         - they contain the correct values
+
+   run_type_manifest():
+      - test all submitted (from core to type manifest) variables:
+         - ENVIRONMENT
+         - they are set
+         - they contain the correct values
+      - same tests as for test_initial_manifest_*?
+
+   run_manifest():
+      - test all submitted variables:
+         - ENVIRONMENT
+            - including __debug, if debug
+         - they are set
+         - they contain the correct values
+      - does $require work?
+      - check that exception raised, if manifest is not existent
+
+   object_run():
+      - ensure no object is run twice
+      - ensure requirements are taken into account?
+         - and order of run is adjusted
+      - check (from extern?) that all needed variables are setup
+      - ensure no code-{local, remote} is created, 
+         if gencode is not producing code
+      - ensure THAT code-{local, remote} contains what gencode created
+      - abort if gencode-* fails
+      - abort if code-* fails
+         - abort == raise(FooException)
+      - gencode-*: ensure ENVIRONMENT is setup correctly
+
+   run_type_explorer()
+      - ensure ALL type explores have been run
+      - ensure output is saved to correct path
+      - ensure a type with {0,1,2} explorers works ?
+         - none, one, multiple
+      - ensure ENVIRONMENT is setup correctly
+      - fails if ANY of the given explorer fails
+
+   run_global_explorers():
+      - ensure ALL type explores have been run
+      - ensure output is saved to correct path
+      - ensure a type with {0,1,2} explorers works ?
+         - none, one, multiple
+      - ensure ENVIRONMENT is setup correctly
+      - fails if ANY of the given explorer fails
+      
 Code fixes needed:
 
    - shutil, os.mkdir, etc. everywhere: catch/reraise exceptions correctly
diff --git a/doc/dev/todo/tests b/doc/dev/todo/tests
index 78a63d08..d2101980 100644
--- a/doc/dev/todo/tests
+++ b/doc/dev/todo/tests
@@ -1,8 +1,5 @@
 Tests needed for config_install:
 
-   __init__():
-      - sets up env: __target_host
-
    cleanup()
       - Fail if cache_dir from previous run cannot be deleted
       - Fail if cache_dir cannot be created from current out_dir
@@ -11,120 +8,12 @@ Tests needed for config_install:
       - ensure logformat is changed: target host is prefixed:
          LOGLEVEL: target_host: MESSAGE
 
-   run_initial_manifest():
-      - parameter is actually used (from __init__)
-      - ensure changing the manifest actually runs a different manifest
-      -> give ConfigInstall Constructor different manifest
-         -> different manifest is executed.
-      - test all submitted (from core to type manifest) variables:
-         - ENVIRONMENT
-         - they are set
-         - they contain the correct values
-
-   run_type_manifest():
-      - test all submitted (from core to type manifest) variables:
-         - ENVIRONMENT
-         - they are set
-         - they contain the correct values
-      - same tests as for test_initial_manifest_*?
-
-   run_manifest():
-      - test all submitted variables:
-         - ENVIRONMENT
-            - including __debug, if debug
-         - they are set
-         - they contain the correct values
-      - does $require work?
-      - check that exception raised, if manifest is not existent
-
-   object_run():
-      - ensure no object is run twice
-      - ensure requirements are taken into account?
-         - and order of run is adjusted
-      - check (from extern?) that all needed variables are setup
-      - ensure no code-{local, remote} is created, 
-         if gencode is not producing code
-      - ensure THAT code-{local, remote} contains what gencode created
-      - abort if gencode-* fails
-      - abort if code-* fails
-         - abort == raise(FooException)
-      - gencode-*: ensure ENVIRONMENT is setup correctly
-
-   run_type_explorer()
-      - ensure ALL type explores have been run
-      - ensure output is saved to correct path
-      - ensure a type with {0,1,2} explorers works ?
-         - none, one, multiple
-      - ensure ENVIRONMENT is setup correctly
-      - fails if ANY of the given explorer fails
-
-   run_global_explorers():
-      - ensure ALL type explores have been run
-      - ensure output is saved to correct path
-      - ensure a type with {0,1,2} explorers works ?
-         - none, one, multiple
-      - ensure ENVIRONMENT is setup correctly
-      - fails if ANY of the given explorer fails
-      
    link_emulator():
       - ensure that links to ALL types are created
       - ensure that links points to correct executable
          - i.e. readlink() works
          - AND target of readlink is the correct executable
 
-   stage_run()
-      - ensure that for every object in
-         cdist.core.Object.list_objects() is passed into
-         self.object_run()
-         - instantiate + overwrite + test
-
-   object_prepare():
-      - calls (in this order):
-         self.run_type_explorer(cdist_object)
-         self.run_type_manifest(cdist_object)
-         cdist_object.prepared = True
-      - object is prepared after function call
-
-
-   stage_prepare():
-      - calls (in this order):
-         self.link_emulator()
-         self.run_global_explorers()
-         self.run_initial_manifest()
-
-      - ensure that all objects are created :-)
-         - as defined in inital manifest + type manifests
-         
-   deploy_to()
-      - ensure self.stage_prepare() and self.stage_run() are
-         run. [ORDER]
-         - instantiate + overwrite + test
-
-   deploy_and_cleanup()
-      - ensure self.deploy_to() + self.cleanup() are are run
-         run. [ORDER]
-         - instantiate + overwrite + test
-
-   transfer_object_parameter()
-      - check that object parameters are transferred
-      - paths are setup correctly
-         - test via mock of remote_mkdir and transfer_path
-      - ensure self.remote_mkdir, self.transfer_path are run. [ORDER]
-         - instantiate + overwrite + test
-   
-   transfer_global_explorers()
-      - paths are setup correctly
-         - test via mock of self.remote_mkdir() and self.transfer_path()
-      - ensure self.remote_mkdir, self.transfer_path are run. [ORDER]
-         - instantiate + overwrite + test
-   
-   transfer_type_explorers():
-      - Explorers are not transferred twice
-      - paths are setup correctly
-         - test via mock of self.remote_mkdir() and self.transfer_path()
-      - Explorers are transferred
-         - test via mock of self.remote_mkdir() and self.transfer_path()
-
    remote_mkdir()
       - is directory created
 
@@ -136,4 +25,3 @@ Tests needed for config_install:
 
 emulator:
    may only be called with __ as prefix - fail otherwise!
-