From 3773c2e4de0587316ed418ab457970184ff1043e Mon Sep 17 00:00:00 2001 From: Tue Herlau <tuhe@dtu.dk> Date: Mon, 27 May 2024 14:12:39 +0200 Subject: [PATCH] Minor change not on pypi --- dist/coursebox_testing-0.0.4-py3-none-any.whl | Bin 0 -> 6531 bytes dist/coursebox_testing-0.0.4.tar.gz | Bin 0 -> 6636 bytes dist/coursebox_testing-0.0.5-py3-none-any.whl | Bin 0 -> 6647 bytes dist/coursebox_testing-0.0.5.tar.gz | Bin 0 -> 6795 bytes dist/coursebox_testing-0.1.0-py3-none-any.whl | Bin 0 -> 6651 bytes dist/coursebox_testing-0.1.0.tar.gz | Bin 0 -> 6810 bytes requirements.txt | 2 +- setup.py | 2 +- src/coursebox_testing.egg-info/PKG-INFO | 24 +++++--- .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 181 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 189 bytes .../__pycache__/testing.cpython-311.pyc | Bin 0 -> 15069 bytes src/coursebox_testing/testing/testing.py | 56 +++++++++++++----- 13 files changed, 59 insertions(+), 25 deletions(-) create mode 100644 dist/coursebox_testing-0.0.4-py3-none-any.whl create mode 100644 dist/coursebox_testing-0.0.4.tar.gz create mode 100644 dist/coursebox_testing-0.0.5-py3-none-any.whl create mode 100644 dist/coursebox_testing-0.0.5.tar.gz create mode 100644 dist/coursebox_testing-0.1.0-py3-none-any.whl create mode 100644 dist/coursebox_testing-0.1.0.tar.gz create mode 100644 src/coursebox_testing/__pycache__/__init__.cpython-311.pyc create mode 100644 src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc create mode 100644 src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc diff --git a/dist/coursebox_testing-0.0.4-py3-none-any.whl b/dist/coursebox_testing-0.0.4-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..682187d524c7dbf262da14f3d2ac1097aba55c7f GIT binary patch literal 6531 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 Pz`?MbiGksm7>EY|3#U+= literal 0 HcmV?d00001 diff --git a/dist/coursebox_testing-0.0.4.tar.gz b/dist/coursebox_testing-0.0.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..68cae0a4239ad93bdedc5abb61de0d37061a66a8 GIT binary patch literal 6636 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 literal 0 HcmV?d00001 diff --git a/dist/coursebox_testing-0.0.5-py3-none-any.whl b/dist/coursebox_testing-0.0.5-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..08b8241af526bd067c3f2918b2b1e0a0a227ba0e GIT binary patch literal 6647 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 literal 0 HcmV?d00001 diff --git a/dist/coursebox_testing-0.0.5.tar.gz b/dist/coursebox_testing-0.0.5.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..948c64903a428f73273f1966d13ea78dc21ce01d GIT binary patch literal 6795 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 literal 0 HcmV?d00001 diff --git a/dist/coursebox_testing-0.1.0-py3-none-any.whl b/dist/coursebox_testing-0.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..b2b828d3450243caf2b694369b65d7d2311cbaa5 GIT binary patch literal 6651 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 literal 0 HcmV?d00001 diff --git a/dist/coursebox_testing-0.1.0.tar.gz b/dist/coursebox_testing-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8e01652f51a8fe70ffd9e79bb3ca7be97eade700 GIT binary patch literal 6810 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 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt index 9e98f0e..daa9fbf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ tabulate pydocstyle darglint -interrogate \ No newline at end of file +interrogate diff --git a/setup.py b/setup.py index 8b7f890..f2b0d3d 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setuptools.setup( name="coursebox_testing", - version="0.0.3", + version="0.1.0", author="Tue Herlau", author_email="tuhe@dtu.dk", description="A course management system currently used at DTU (testing software)", diff --git a/src/coursebox_testing.egg-info/PKG-INFO b/src/coursebox_testing.egg-info/PKG-INFO index 4b3dd8a..c2216ec 100644 --- a/src/coursebox_testing.egg-info/PKG-INFO +++ b/src/coursebox_testing.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 -Name: coursebox-testing -Version: 0.0.3 +Name: coursebox_testing +Version: 0.1.0 Summary: A course management system currently used at DTU (testing software) Home-page: https://lab.compute.dtu.dk/tuhe/coursebox_testing Author: Tue Herlau @@ -13,22 +13,28 @@ Classifier: Operating System :: OS Independent Requires-Python: >=3.8 Description-Content-Type: text/markdown License-File: LICENSE +Requires-Dist: unitgrade +Requires-Dist: tabulate +Requires-Dist: pydocstyle +Requires-Dist: darglint -# Coursebox DTU (testing tools) -DTU course management software (testing plugins) +# Coursebox DTU +DTU course management software. ## Installation ```terminal -pip install git+https://gitlab.compute.dtu.dk/tuhe/coursebox_testing +pip install coursebox_testing ``` +## Usage +Lightweight testing framework. ## Citing ```bibtex -@online{coursebox, - title={Coursebox (0.1.1): \texttt{pip install coursebox}}, - url={https://lab.compute.dtu.dk/tuhe/coursebox}, - urldate = {2021-09-07}, +@online{coursebox_testing, + title={Coursebox_testing (0.0.3): \texttt{pip install coursebox_testing}}, + url={https://lab.compute.dtu.dk/tuhe/coursebox_testing}, + urldate = {2023-07-15}, month={9}, publisher={Technical University of Denmark (DTU)}, author={Tue Herlau}, diff --git a/src/coursebox_testing/__pycache__/__init__.cpython-311.pyc b/src/coursebox_testing/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb07a3524436c168970ebe50c272682b5987478c GIT binary patch literal 181 zcmZ3^%ge>Uz`)RyJ3WP&fq~&Mhy%lnP{wCA1_p-d3@Hr344RC7D;bKI7#J8ngCu`> z=x5~Trs|iJW~A!7<R_QrrskCt>nG=z78R!^<yXX)q!yQC=B4Ww7bRm6jgQaF%PfhH q*DI*}#bJ}1pHiBWYFEU{z`y{qx|pAVf#Cx)BO~Jn1{hHUawGsv3@%at literal 0 HcmV?d00001 diff --git a/src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc b/src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a54daab617b9aa0c5213055bb97a77116eb0aa27 GIT binary patch literal 189 zcmZ3^%ge>Uz`)=YKRpFRKL!yn%m`(CW@BJrn9h*G5X_*-=(m!gh>3xL;WJ3`SAc#- zer~FMNohu^zDs^`X>Mv>NwI!%erZv0YEphhd`W6?NoHQUesNJU7EzdNe0*kJW=VX! rUP0wA4x8Nkl+v73yCPNw1_qE5iuoBB7(OsFGBSQ(fDuK^3=9ka>0dEE literal 0 HcmV?d00001 diff --git a/src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc b/src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed30ef86b238a5f876435c78c871610552c3fb25 GIT binary patch literal 15069 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 Np-;F#X#6BNoB+#V4gLTC literal 0 HcmV?d00001 diff --git a/src/coursebox_testing/testing/testing.py b/src/coursebox_testing/testing/testing.py index 681e748..255a243 100644 --- a/src/coursebox_testing/testing/testing.py +++ b/src/coursebox_testing/testing/testing.py @@ -1,3 +1,5 @@ +from pydocstyle.checker import check +import fnmatch from subprocess import run import subprocess import time @@ -102,22 +104,32 @@ def check_py_script(student_dir, module): # raise e # return p, total, out -def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package="cp"): + +def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package="cp", exclude=None): + if exclude is None: + exclude = [] if student_dir_complete is None: + assert False # It is important to not import cp_box here during CI/CD. The coursebox packages is not/should not be installed. - from cp_box import cp_main + # from irlc? import cp_main from coursebox.core.info_paths import get_paths paths = get_paths() student_dir_complete = paths['02450students'] + "_complete" # At this point, also set up the studnets_complete repo. - from cp_box.material.build_documentation import deploy_students_complete + # from cp_box.material.build_documentation import deploy_students_complete + from coursebox.material.documentation import deploy_students_complete deploy_students_complete() - from pydocstyle.checker import check + n = 0 files_ = glob.glob(f"{student_dir_complete}/{package}/ex*/*.py", recursive=True) + glob.glob(f"{student_dir_complete}/{package}/project*/*.py", recursive=True) files_ = [f for f in files_ if not f.endswith("_grade.py")] + files_ = [f for f in files_ if not any([fnmatch.fnmatch(f, pat) for pat in exclude] ) ] + # for f in files_: + # print(f) + + files = [] for f in files_: with open(f, "r") as ff: @@ -189,7 +201,7 @@ def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package return n -def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if_no_projects=True, +def _run_student_tests(student_dir_base=None, weeks : dict=None, projects : dict=None, fail_if_no_projects=True, fail_if_no_weeks=True): """ TODO: Refactor this function to accept full module paths of tests as input, and move the cp.* specific stuff out. Possibly alternative is to automatically search for tests @@ -197,18 +209,34 @@ def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if """ # still got that common module. Eventually this should be an argument (probably). - from cp_box.common import projects_all - from cp_box.common import weeks_all + if projects is None: - projects = projects_all - else: - projects = {k: v for k, v in projects_all.items() if k in projects} + from coursebox.core.info_paths import core_conf + projects = core_conf['projects_all'] + # from irlc_box.common import projects_all + # projects = projects_all + # else: + # projects = {k: v for k, v in projects_all.items() if k in projects} if weeks is None: - weeks = weeks_all - else: - weeks = {k: v for k, v in weeks_all.items() if k in weeks} + from coursebox.core.info_paths import core_conf + weeks = core_conf['weeks_all'] + # from cp_box.common import weeks_all + # weeks = weeks_all + # else: + # weeks = {k: v for k, v in weeks_all.items() if k in weeks} + + # if projects is None: + # from coursebox.core.info_paths import core_conf + # projects = list(core_conf['projects_all'].keys()) + + # if weeks is None: + # weeks_all = core_conf['weeks_all'] + # weeks = weeks_all + # else: + # pass + # weeks = {k: weeks_all[k] for k in weeks} # if projects is None: # from coursebox.core.info_paths import core_conf @@ -231,7 +259,7 @@ def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if bases = {k: projects[k]['module_public'] for k in projects} # f"cp.project{k}.project{k}_tests" for k in projects if True} - bases_weekly = [weeks[k]['module_public'] for k in weeks] # f'cp.tests.tests_week{k:02d}' for k in weeks] + bases_weekly = [weeks[k]['module_public'] for k in weeks if 'module_public' in weeks[k]] # f'cp.tests.tests_week{k:02d}' for k in weeks] if fail_if_no_weeks and len(bases_weekly) == 0: raise Exception("No weeks found. Bad configuration.") -- GitLab