Select Git revision
ug2report1.py

tuhe authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ug2report1.py 3.77 KiB
# from unitgrade.unitgrade import QuestionGroup, Report, QPrintItem
# from unitgrade.unitgrade_helpers import evaluate_report_student
from cs202courseware import homework1
import unittest
from unitgrade2.unitgrade2 import wrapper, UTestCase, cache
# from unitgrade2.unitgrade2 import cache
from unitgrade2.unitgrade2 import methodsWithDecorator, hide
import random
from cs202courseware.homework1 import reverse_list, my_sum
class GeneratorQuestion(UTestCase):
def genTest(self, n):
seq = [random.randint(1, 100000) for _ in range(n)]
return my_sum(seq)
@hide
def test_sum(self):
random.seed(42)
self.assertEqualC(my_sum([1,1]))
self.assertEqualC(my_sum([7, 2, 4, -3, 1, 1, 5, 4]))
self.assertEqualC(self.genTest(10))
self.assertEqualC(my_sum([1]))
self.assertEqualC(my_sum([-5]))
for s in [4]: # [5, 100, 1000, 10000, 100000, 500000]:
self.assertEqualC(self.genTest(s))
class ListQuestion(UTestCase):
""" Docstring at top """
@classmethod
def setUpClass(cls) -> None:
z = 23424
# print(" calling setUpClass()...")
pass
def test_integers(self):
""" aa test_integers-short """
self.__class__.a = "fun1"
from cs101courseware_example.homework1 import reverse_list
self.assertEqual(reverse_list([1, 2, 3]), [3, 2, 1])
self.assertEqualC(reverse_list([1,2,3]))
self.assertEqualC(reverse_list(["23", "asdfsadf"]))
return dict(title="test integers...")
@cache
def my_funny_computation(self, a):
return a*2
def test_strings(self):
""" xxxxtest_integers-short """
# import time
# time.sleep(1.1)
a = self.my_funny_computation(2)
from cs101courseware_example.homework1 import reverse_list
l = ["hello", "world", "summer", "dog"]
self.assertEqual(reverse_list(l), list(reversed(l)))
def test_more_integerrs(self):
""" ccc test_integers-short """
self.assertEqual(2,2)
from unitgrade2.unitgrade2 import Report
class Report1(Report):
title = "CS 202 Report 1"
questions = [
(GeneratorQuestion, 10),
(ListQuestion, 5)
]
import cs202courseware
pack_imports = [cs202courseware] # Include this file in .token file
a = 234
def docker_test_uploads(student_id, student_file, source_repo_report_class, student_repo_report_class):
# The student file contains a list of all uploaded files.
source_base_dir = "" # Location of all source files for project. Must be the 'real' version required to get project to run.
# Or should it be? Why?
# Need a directory where we are going to work. must be the image location.
docker_image_location = ""
# Make a tmp location in docker directory.
docker_tmp_file_system = docker_image_location + "/tmp"
# This is where the docker file system is going to run.
import pickle
with open(student_file, 'rb') as f:
upload = pickle.load(f)
# report-location is given in the student repo (within their fs relative to root).
# Now we have the upload.
pass
if __name__ == "__main__":
"""
Capture output in TestCase
HTML test runner:
https://awesomeopensource.com/project/oldani/HtmlTestRunner
"""
import inspect
ls = list(methodsWithDecorator(GeneratorQuestion, hide))
for f in ls:
print(inspect.getsourcelines(f) ) # How to get all hidden questions.
from unitgrade2.unitgrade_helpers2 import evaluate_report_student
evaluate_report_student( Report1() )
# unittest.main(verbosity=2)
# deploy the report
from unitgrade_private2.hidden_create_files import setup_grade_file_report
setup_grade_file_report(Report1, minify=False, obfuscate=False, execute=False)