diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8b4a1f0441a19665ada111c0549434e29ba8d945..7bc3846d544454f2bbe83c7ba82f80ac0dd728be 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,11 +4,8 @@ <list default="true" id="5c346737-53d8-4e87-88c5-7be2c8e7baeb" name="Default" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/unitgrade.egg-info/PKG-INFO" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade.egg-info/PKG-INFO" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/unitgrade.egg-info/SOURCES.txt" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade.egg-info/SOURCES.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/unitgrade.egg-info/dependency_links.txt" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade.egg-info/dependency_links.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/unitgrade.egg-info/requires.txt" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade.egg-info/requires.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/unitgrade.egg-info/top_level.txt" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade.egg-info/top_level.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/unitgrade/framework.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade/framework.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/unitgrade/runners.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade/runners.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/unitgrade/utils.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade/utils.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/unitgrade/version.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/unitgrade/version.py" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> @@ -364,6 +361,16 @@ <line>62</line> <option name="timeStamp" value="90" /> </line-breakpoint> + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> + <url>file://$PROJECT_DIR$/src/unitgrade/framework.py</url> + <line>103</line> + <option name="timeStamp" value="91" /> + </line-breakpoint> + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> + <url>file://$PROJECT_DIR$/src/unitgrade/framework.py</url> + <line>100</line> + <option name="timeStamp" value="92" /> + </line-breakpoint> </breakpoints> </breakpoint-manager> </component> diff --git a/src/unitgrade.egg-info/PKG-INFO b/src/unitgrade.egg-info/PKG-INFO index 954edcd258013231326d319189d0716434052438..da6306eb5a5eb5319008f58f1a0b73eea3243dbb 100644 --- a/src/unitgrade.egg-info/PKG-INFO +++ b/src/unitgrade.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: unitgrade -Version: 0.1.24 +Version: 0.1.25 Summary: A student homework/exam evaluation framework build on pythons unittest framework. Home-page: https://lab.compute.dtu.dk/tuhe/unitgrade Author: Tue Herlau diff --git a/src/unitgrade/runners.py b/src/unitgrade/runners.py index 040dc1fe3e08aec727a9a64debb692f22b785048..dfd1c469e30f0acbe8b39e3e6086fcce6857f8a3 100644 --- a/src/unitgrade/runners.py +++ b/src/unitgrade/runners.py @@ -108,13 +108,12 @@ class UTextResult(unittest.TextTestResult): # For unittest framework where getDescription may return None. item_title = self.getDescription(test) self.item_title_print = " * q%i.%i) %s" % (UTextResult.number + 1, self.testsRun, item_title) - if self.show_progress_bar or True: - estimated_time = test.__class__._cache.get(((name, test._testMethodName), 'time'), 100) if hasattr(test.__class__, '_cache') else 4 - self.cc = ActiveProgress(t=estimated_time, title=self.item_title_print, show_progress_bar=self.show_progress_bar, file=sys.stdout) - else: - print(self.item_title_print + ('.' * max(0, self.nL - 4 - len(self.item_title_print))), end="") + # if self.show_progress_bar or True: + estimated_time = test.__class__._cache.get(((name, test._testMethodName), 'time'), 100) if hasattr(test.__class__, '_cache') else 4 + self.cc = ActiveProgress(t=estimated_time, title=self.item_title_print, show_progress_bar=self.show_progress_bar) + # else: + # print(self.item_title_print + ('.' * max(0, self.nL - 4 - len(self.item_title_print))), end="") self._test = test - # if not self.unmute: self._stdout = sys.stdout # Redundant. remove later. from unitgrade.utils import Logger @@ -125,9 +124,7 @@ class UTextResult(unittest.TextTestResult): buff = sys.stdout.log sys.stdout = self._stdout # redundant. buff.close() - from unitgrade.utils import Logger - super().stopTest(test) def _setupStdout(self): @@ -138,9 +135,10 @@ class UTextResult(unittest.TextTestResult): else: q_title_print = "<unnamed test. See unitgrade.framework.py>" - cc = ActiveProgress(t=self.setUpClass_time, title=q_title_print, show_progress_bar=self.show_progress_bar) + cc = ActiveProgress(t=self.setUpClass_time, title=q_title_print, show_progress_bar=self.show_progress_bar, mute_stdout=not self.unmute) self.cc = cc + def _restoreStdout(self): # Used when setting up the test. if self._previousTestClass is None: q_time = self.cc.terminate() diff --git a/src/unitgrade/utils.py b/src/unitgrade/utils.py index 23442d2d3bdee735866bd73f9a71103c05aeaaba..ea1869696280c8f81369ca21a45b932b357544f3 100644 --- a/src/unitgrade/utils.py +++ b/src/unitgrade/utils.py @@ -97,11 +97,11 @@ def rm_progress_bar(txt): class ActiveProgress(): - def __init__(self, t, start=True, title="my progress bar", show_progress_bar=True, file=None): + def __init__(self, t, start=True, title="my progress bar", show_progress_bar=True, file=None, mute_stdout=False): if file == None: file = sys.stdout self.file = file - # self.t = t + self.mute_stdout = mute_stdout self._running = False self.title = title self.dt = 0.025 @@ -113,6 +113,12 @@ class ActiveProgress(): self.start() def start(self): + if self.mute_stdout: + import io + # from unitgrade.utils import Logger + self._stdout = sys.stdout + sys.stdout = Logger(io.StringIO(), write_to_stdout=False) + self._running = True if self.show_progress_bar: self.thread = threading.Thread(target=self.run) @@ -133,6 +139,14 @@ class ActiveProgress(): self.pbar = None self.file.flush() + + if self.mute_stdout: + import io + # from unitgrade.utils import Logger + sys.stdout = self._stdout #= sys.stdout + + # sys.stdout = Logger(io.StringIO(), write_to_stdout=False) + return time.time() - self.time_started def run(self): diff --git a/src/unitgrade/version.py b/src/unitgrade/version.py index 34d32f95900aece1c72545c60701f303d61598d5..87f20bd201b737b587267dd73f786b6c88164dd3 100644 --- a/src/unitgrade/version.py +++ b/src/unitgrade/version.py @@ -1 +1 @@ -__version__ = "0.1.25" \ No newline at end of file +__version__ = "0.1.26" \ No newline at end of file