created shared file for some test fucntions

This commit is contained in:
PatchOfScotland
2023-01-31 14:52:03 +01:00
parent b95042c5ca
commit adfce30508
10 changed files with 57 additions and 49 deletions

19
tests/shared.py Normal file
View File

@ -0,0 +1,19 @@
"""
This file contains shared functions used within multiple tests.
Author(s): David Marchant
"""
from core.functionality import make_dir, rmtree
from core.correctness.vars import TEST_HANDLER_BASE, TEST_JOB_OUTPUT, \
TEST_MONITOR_BASE
def setup():
make_dir(TEST_MONITOR_BASE, ensure_clean=True)
make_dir(TEST_HANDLER_BASE, ensure_clean=True)
make_dir(TEST_JOB_OUTPUT, ensure_clean=True)
def teardown():
rmtree(TEST_MONITOR_BASE)
rmtree(TEST_HANDLER_BASE)
rmtree(TEST_JOB_OUTPUT)
rmtree("first")

View File

@ -13,7 +13,7 @@ cd $script_dir
search_dir=.
for entry in "$search_dir"/*
do
if [[ $entry == ./test* ]] && [[ $entry != ./$script_name ]];
if [[ $entry == ./test* ]] && [[ $entry != ./$script_name ]] && [[ $entry != ./shared.py ]];
then
pytest $entry "-W ignore::DeprecationWarning"
fi

View File

@ -7,12 +7,12 @@ from core.correctness.vars import PYTHON_TYPE, TEST_HANDLER_BASE, SHA256, \
WATCHDOG_BASE, WATCHDOG_RULE, WATCHDOG_HASH, JOB_PARAMETERS, JOB_HASH, \
PYTHON_FUNC, PYTHON_OUTPUT_DIR, PYTHON_EXECUTION_BASE, JOB_ID, META_FILE, \
BASE_FILE, PARAMS_FILE, JOB_FILE, RESULT_FILE
from core.functionality import make_dir, rmtree, get_file_hash, create_event, \
create_job
from core.functionality import get_file_hash, create_event, create_job
from core.meow import create_rule
from conductors import LocalPythonConductor
from patterns import FileEventPattern
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe, job_func
from shared import setup, teardown
def failing_func():
@ -22,15 +22,11 @@ def failing_func():
class MeowTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE)
make_dir(TEST_HANDLER_BASE)
make_dir(TEST_JOB_OUTPUT)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
rmtree(TEST_HANDLER_BASE)
rmtree(TEST_JOB_OUTPUT)
teardown()
def testLocalPythonConductorCreation(self)->None:
lpc = LocalPythonConductor()

View File

@ -23,15 +23,16 @@ from core.functionality import generate_id, wait, get_file_hash, rmtree, \
from core.meow import create_rule
from patterns import FileEventPattern
from recipes import JupyterNotebookRecipe
from shared import setup, teardown
class CorrectnessTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE, ensure_clean=True)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
teardown()
def testGenerateIDWorking(self)->None:
id = generate_id()

View File

@ -3,13 +3,12 @@ import unittest
from typing import Any, Union
from core.correctness.vars import TEST_HANDLER_BASE, TEST_JOB_OUTPUT, \
TEST_MONITOR_BASE, BAREBONES_NOTEBOOK
from core.functionality import make_dir, rmtree
from core.correctness.vars import BAREBONES_NOTEBOOK
from core.meow import BasePattern, BaseRecipe, BaseRule, BaseMonitor, \
BaseHandler, BaseConductor, create_rules, create_rule
from patterns import FileEventPattern
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe
from shared import setup, teardown
valid_pattern_one = FileEventPattern(
"pattern_one", "path_one", "recipe_one", "file_one")
@ -25,15 +24,11 @@ valid_recipe_two = JupyterNotebookRecipe(
class MeowTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE)
make_dir(TEST_HANDLER_BASE)
make_dir(TEST_JOB_OUTPUT)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
rmtree(TEST_HANDLER_BASE)
rmtree(TEST_JOB_OUTPUT)
teardown()
def testBaseRecipe(self)->None:
with self.assertRaises(TypeError):

View File

@ -8,10 +8,11 @@ from multiprocessing import Pipe
from core.correctness.vars import FILE_CREATE_EVENT, BAREBONES_NOTEBOOK, \
TEST_MONITOR_BASE, EVENT_TYPE, WATCHDOG_RULE, WATCHDOG_BASE, \
WATCHDOG_TYPE, EVENT_PATH
from core.functionality import rmtree, make_dir
from core.functionality import make_dir
from patterns.file_event_pattern import FileEventPattern, WatchdogMonitor, \
_DEFAULT_MASK, SWEEP_START, SWEEP_STOP, SWEEP_JUMP
from recipes import JupyterNotebookRecipe
from shared import setup, teardown
def patterns_equal(tester, pattern_one, pattern_two):
@ -38,11 +39,11 @@ def recipes_equal(tester, recipe_one, recipe_two):
class CorrectnessTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE, ensure_clean=True)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
teardown()
def testFileEventPatternCreationMinimum(self)->None:
FileEventPattern("name", "path", "recipe", "file")

View File

@ -13,26 +13,22 @@ from core.correctness.vars import BAREBONES_NOTEBOOK, TEST_HANDLER_BASE, \
APPENDING_NOTEBOOK, META_FILE, BASE_FILE, PARAMS_FILE, JOB_FILE, \
RESULT_FILE
from core.correctness.validation import valid_job
from core.functionality import rmtree, make_dir, get_file_hash, create_job, \
create_event
from core.functionality import get_file_hash, create_job, create_event
from core.meow import create_rules, create_rule
from patterns.file_event_pattern import FileEventPattern
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe, \
PapermillHandler, job_func
from rules.file_event_jupyter_notebook_rule import FileEventJupyterNotebookRule
from shared import setup, teardown
class CorrectnessTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE)
make_dir(TEST_HANDLER_BASE)
make_dir(TEST_JOB_OUTPUT)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
rmtree(TEST_HANDLER_BASE)
rmtree(TEST_JOB_OUTPUT)
teardown()
def testJupyterNotebookRecipeCreationMinimum(self)->None:
JupyterNotebookRecipe("test_recipe", BAREBONES_NOTEBOOK)

View File

@ -5,13 +5,16 @@ from core.correctness.vars import BAREBONES_NOTEBOOK
from patterns.file_event_pattern import FileEventPattern
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe
from rules.file_event_jupyter_notebook_rule import FileEventJupyterNotebookRule
from shared import setup, teardown
class CorrectnessTests(unittest.TestCase):
def setUp(self)->None:
return super().setUp()
super().setUp()
setup()
def tearDown(self)->None:
return super().tearDown()
super().tearDown()
teardown()
def testFileEventJupyterNotebookRuleCreationMinimum(self)->None:
fep = FileEventPattern("name", "path", "recipe", "file")

View File

@ -8,26 +8,23 @@ from time import sleep
from conductors import LocalPythonConductor
from core.correctness.vars import TEST_HANDLER_BASE, TEST_JOB_OUTPUT, \
TEST_MONITOR_BASE, APPENDING_NOTEBOOK, RESULT_FILE
from core.functionality import make_dir, rmtree, read_notebook
from core.functionality import make_dir, read_notebook
from core.meow import BaseMonitor, BaseHandler, BaseConductor
from core.runner import MeowRunner
from patterns import WatchdogMonitor, FileEventPattern
from recipes.jupyter_notebook_recipe import PapermillHandler, \
JupyterNotebookRecipe
from shared import setup, teardown
class MeowTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE)
make_dir(TEST_HANDLER_BASE)
make_dir(TEST_JOB_OUTPUT)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
rmtree(TEST_HANDLER_BASE)
rmtree(TEST_JOB_OUTPUT)
teardown()
def testMeowRunnerSetup(self)->None:

View File

@ -13,17 +13,17 @@ from core.correctness.validation import check_type, check_implementation, \
from core.correctness.vars import VALID_NAME_CHARS, TEST_MONITOR_BASE, \
SHA256, EVENT_TYPE, EVENT_PATH, JOB_TYPE, JOB_EVENT, JOB_ID, JOB_PATTERN, \
JOB_RECIPE, JOB_RULE, JOB_STATUS, JOB_CREATE_TIME
from core.functionality import rmtree, make_dir
from core.functionality import make_dir
from shared import setup, teardown
class CorrectnessTests(unittest.TestCase):
def setUp(self)->None:
super().setUp()
make_dir(TEST_MONITOR_BASE, ensure_clean=True)
setup()
def tearDown(self)->None:
super().tearDown()
rmtree(TEST_MONITOR_BASE)
rmtree("first")
teardown()
def testCheckTypeValid(self)->None:
check_type(1, int)