Skip to content
Snippets Groups Projects
ug2report1_nohidden.py 3.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • tuhe's avatar
    tuhe committed
    # from unitgrade.unitgrade import QuestionGroup, Report, QPrintItem
    # from unitgrade.unitgrade_helpers import evaluate_report_student
    
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import UTestCase, cache
    
    tuhe's avatar
    tuhe committed
    # from unitgrade2.unitgrade2 import cache
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import methodsWithDecorator, hide
    
    tuhe's avatar
    tuhe committed
    
    
    
    import random
    
    tuhe's avatar
    tuhe committed
    from cs101courseware_example.homework1 import my_sum
    
    tuhe's avatar
    tuhe committed
    
    class GeneratorQuestion(UTestCase):
        def genTest(self, n):
            seq = [random.randint(1, 100000) for _ in range(n)]
            return my_sum(seq)
    
    
    
    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.a = self.a + 2
            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)
    
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import Report
    
    tuhe's avatar
    tuhe committed
    
    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.
    
    
    tuhe's avatar
    tuhe committed
        from src.unitgrade2 import evaluate_report_student
    
    tuhe's avatar
    tuhe committed
    
        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)