def test_conflicting_username(self):
        # add dummy user
        new_user = dict(
            username="******",
            email="*****@*****.**",
            password="******",
            confirm_password="******",
            submit="Sign Up",
        )
        test_post_request(self, "/register", new_user, models.User, 2)

        self.login()
        # test changing current_user's username with already registered user's username
        current_user = dict(username="******",
                            email="*****@*****.**",
                            submit="submit")
        self.assertRaises(
            AssertionError,
            test_post_request,
            self,
            "/account",
            current_user,
            models.User,
            1,
        )
    def test_update_question(self):
        # test valid data
        update_question = dict(
            question="moon is ...?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Application",
            imp=None,
            submit="submit",
            option1="Planet",
            option2="Satellite",
            option3="meteor",
            option4="star",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/update/2",
            update_question,
            models.Question,
            2,
        )

        # test invalid data
        response, _ = test_post_request(
            self, "/course/1/unit/1/question/mcq/update/100", update_question)
        self.assertIn(b"Question:100 Does not exist", response.data)
    def test_delete_course(self):
        BaseUser.setUp(self)
        self.login()
        # adding new course
        new_course = dict(course="maths")
        _, course = test_post_request(self, "/course/new", new_course,
                                      models.Course, 1)
        # Checking repr method
        self.assertEqual(str(course), "Course(maths)")

        # adding another course
        new_course = dict(course="science")
        _, course = test_post_request(self, "/course/new", new_course,
                                      models.Course, 2)
        # cheking repr method
        self.assertEqual(str(course), "Course(science)")

        # Delete course
        delete_list = [1, 2]
        self.client.post(
            "/course/delete/",
            data=json.dumps(delete_list),
            headers={"Content-Type": "application/json"},
        )
        c1 = self.db.session.query(models.Course).get(1)
        c2 = self.db.session.query(models.Course).get(2)
        self.assertIsNone(c1)
        self.assertIsNone(c2)
    def test_delete_unit(self):

        # Add new unit to course maths
        new_unit = dict(chapter_no=1, name="Permutations")
        _, res = test_post_request(self, "/course/1/unit/new", new_unit,
                                   models.Unit, 1)
        # Test repr method
        self.assertEqual(str(res), "Unit((1, 'Permutations'))")

        # Add second unit
        new_unit = dict(chapter_no=2, name="Combition")
        _, res = test_post_request(self, "/course/1/unit/new", new_unit,
                                   models.Unit, 2)
        # Test repr method
        self.assertEqual(str(res), "Unit((2, 'Combition'))")

        # Delete Unit
        delete_list = [2]
        self.client.post(
            "/course/1/unit/delete/",
            data=json.dumps(delete_list),
            headers={"Content-Type": "application/json"},
        )
        c1 = self.db.session.query(models.Unit).get(1)
        c2 = self.db.session.query(models.Unit).get(2)
        self.assertEqual(str(c1), "Unit((1, 'Permutations'))")
        self.assertIsNone(c2)
Exemplo n.º 5
0
    def test_update_question(self):
        # test valid data
        update_question = dict(
            question="moon is ...?",
            mark=8,
            difficulty=10,
            imp=None,
            submit="submit",
            option1="Planet",
            option2="Satellite",
            option3="meteor",
            option4="star",
        )
        test_post_request(
            self,
            "/course/1/question/mcq/update/2",
            update_question,
            models.MCQQuestion,
            2,
        )

        # test invalid data
        response, _ = test_post_request(self,
                                        "/course/1/question/mcq/update/8",
                                        update_question)
        self.assertIn(b"Question:8 Does not exist", response.data)
Exemplo n.º 6
0
    def setUp(self):
        BaseUnit.setUp(self)

        new_question = dict(
            question="Is it okay?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Comprehension",
            imp=None,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question, models.Question, 1)

        new_question = dict(
            question="Is it question?",
            mark=7,
            difficulty="Hard",
            cognitive_level="Application",
            imp=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question, models.Question, 2)

        new_question = dict(
            question="What is it?",
            mark=2,
            difficulty="Medium",
            cognitive_level="Knowledge",
            imp=None,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question, models.Question, 3)

        new_question = dict(
            question="What was that?",
            mark=6,
            difficulty="Medium",
            cognitive_level="Application",
            imp=None,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question, models.Question, 4)

        new_question = dict(
            question="How are you?",
            mark=2,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question, models.Question, 5)
Exemplo n.º 7
0
 def login(self):
     """[User login]
     """
     user = dict(
         email="*****@*****.**",
         password="******",
         remember=True,
         submit="Login",
     )
     test_post_request(self, "/login", user)
    def test_add_sub_question(self):
        # Test valid data
        new_question = dict(question="Is it okay?",
                            mark=8,
                            difficulty=10,
                            imp=True,
                            submit="submit")
        _, question = test_post_request(self, "/course/1/question/sub/new/",
                                        new_question, models.Question, 1)

        # Testing if repr method is working
        self.assertEqual(str(question), "Question(Is it okay?, 8, 10, True)")

        # Test invalid data
        new_question = dict(
            question="Isn't it okay?",
            mark=None,
            difficulty="1",
            imp=False,
            submit="submit",
        )

        self.assertRaises(
            AttributeError,
            test_post_request,
            self,
            "/course/1/question/sub/new/",
            new_question,
            models.Question,
            2,
        )
Exemplo n.º 9
0
    def setUp(self):
        """Setup for user

        Arguments:
            BaseDatabase {[type]} -- [description]
        """
        super().setUp()
        self.client = self.app.test_client()
        new_user = dict(
            username="******",
            email="*****@*****.**",
            password="******",
            confirm_password="******",
            submit="Sign Up",
        )
        test_post_request(self, "/register", new_user, models.User, 1)
 def test_mark_distribution_form(self):
     self.test_paper_generate_request()
     data = {
         "Unit:01": "30",
         "Knowledge": "10",
         "Comprehension": "10",
         "Application": "10",
         "Easy": "10",
         "Medium": "10",
         "Hard": "10",
         "Que.1.A": "5",
         "Que.2.A": "5",
         "Que.2.B": "5",
         "Que.3.A": "5",
         "Que.3.B": "5",
         "Que.3.C": "5",
         "sub": 15,
         "mcq": 15,
     }
     response, _ = test_post_request(self,
                                     "/course/1/papers/generate/form/",
                                     data)
     self.assertIn(b"<title>Mark Distribution</title>", response.data)
     response = self.client.post(
         "/course/1/papers/confirm/template/",
         data=json.dumps(dict(status="OK")),
         headers={"Content-Type": "application/json"},
     )
     self.assertIn(
         (b"You should be redirected automatically to target URL: "
          b"<a href=/course/1/papers/generate/ >"),
         response.data,
     )
Exemplo n.º 11
0
    def test_generate_and_confirm_paper(self):
        self.test_paper_generate_request()
        self.test_mark_distribution_form()
        data = {
            "name": "paper1",
            "term": "winter",
            "exam_date": "2020-10-15",
            "time_limit": "2",
        }
        test_post_request(self, "/course/1/papers/generate/", data, Paper, 1)

        # testing gerenated paper
        with self.mail.record_messages() as outbox:
            data = {"generate": "YES", "examiner_email": "*****@*****.**"}
            test_post_request(self, "papers/confirm/1", data=data)
            self.assertEqual(1, len(outbox))
            self.assertEqual("Paper for paper1", outbox[0].subject)
    def test_update_question(self):
        # test valid data
        update_question = dict(
            question="How many prime numbers between 1 to 100?",
            mark=5,
            difficulty=20,
            imp=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/question/sub/update/2",
                          update_question, models.Question, 2)

        # test invalid data
        response, _ = test_post_request(self,
                                        "/course/1/question/sub/update/8",
                                        update_question)
        self.assertIn(b"Question:8 Does not exist", response.data)
Exemplo n.º 13
0
    def test_profile(self):
        self.login()
        image_file = os.path.join(TEST_PATH, "users", "profile1.png")
        with open(image_file, "rb") as image:
            data = dict(
                username="******",
                email="*****@*****.**",
                picture=image,
                submit="submit",
            )
            test_post_request(self, "/account", data, models.User, 1)

        with self.client.get("/static/profile_pics/1.png") as response:
            self.assertGreater(len(response.data), 1)

        remove_profile = os.path.join(APP_PATH, "static", "profile_pics",
                                      "1.png")
        os.remove(remove_profile)
Exemplo n.º 14
0
    def setUp(self):
        BaseCourse.setUp(self)

        new_question = dict(question="Is it okay?",
                            mark=8,
                            difficulty=10,
                            imp=None,
                            submit="submit")
        test_post_request(self, "/course/1/question/sub/new/", new_question,
                          models.Question, 1)

        new_question = dict(question="Is it question?",
                            mark=7,
                            difficulty=50,
                            imp=True,
                            submit="submit")
        test_post_request(self, "/course/1/question/sub/new/", new_question,
                          models.Question, 2)

        new_question = dict(question="What is it?",
                            mark=2,
                            difficulty=70,
                            imp=None,
                            submit="submit")
        test_post_request(self, "/course/1/question/sub/new/", new_question,
                          models.Question, 3)

        new_question = dict(question="What was that?",
                            mark=6,
                            difficulty=20,
                            imp=None,
                            submit="submit")
        test_post_request(self, "/course/1/question/sub/new/", new_question,
                          models.Question, 4)

        new_question = dict(question="How are you?",
                            mark=2,
                            difficulty=40,
                            imp=True,
                            submit="submit")
        test_post_request(self, "/course/1/question/sub/new/", new_question,
                          models.Question, 5)
    def test_update_question(self):
        # test valid data
        update_question = dict(
            question="How many prime numbers between 1 to 100?",
            mark=5,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=True,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/update/2",
            update_question,
            models.Question,
            2,
        )

        # test invalid data
        response, _ = test_post_request(
            self, "/course/1/unit/1/question/sub/update/20", update_question)
        self.assertIn(b"Question:20 Does not exist", response.data)
    def test_forgot_password(self):
        # test valid user
        with self.mail.record_messages() as outbox:
            # test with valid token
            data = dict(email="*****@*****.**")
            response, _ = test_post_request(self, "/reset_password", data)
            self.assertIn(
                b"An email has been sent with instructions to reset your password.",
                response.data,
            )
            self.assertEqual(1, len(outbox))
            self.assertEqual("Password Reset Request", outbox[0].subject)
            self.assertEqual("*****@*****.**", outbox[0].recipients[0])
            regex = r"/reset_password/([^/]+) \)"
            link = re.search(regex, outbox[0].body)
            self.assertIsNotNone(link)
            token = link.group(1)

            new_password = dict(password="******",
                                confirm_password="******")
            response, _ = test_post_request(self, "/reset_password/" + token,
                                            new_password)
            self.assertIn(
                b"Your password has been updated! You are now able to log in",
                response.data,
            )

            user = dict(
                email="*****@*****.**",
                password="******",
                remember=True,
                submit="Login",
            )
            test_post_request(self, "/login", user)

            response = self.client.get("/home")
            soup = BeautifulSoup(response.data, "lxml")
            title = soup.find(("h1", {"class": "header"}))
            self.assertEqual(title.contents[0], "Recent")
            self.logout()

        # test invalid token
        response, _ = test_post_request(self, "/reset_password/fakeToken",
                                        new_password)
        self.assertIn(b"<title>SetNow : Reset Password</title>", response.data)
        # FIXME: add flash in frontend: enable this test once fixed
        # self.assertIn(b"That is an invalid or expired token", response.data)

        # test unregistered email
        data = dict(email="doesn'*****@*****.**")
        response, _ = test_post_request(self, "/reset_password", data)
        self.assertIn(
            b"There is no account with that email. You must register first.",
            response.data,
        )
 def test_contact_us(self):
     with self.mail.record_messages() as outbox:
         data = dict(
             name="Tester",
             email="*****@*****.**",
             mobile="123456789",
             subject="Test01",
             message="This is test mail",
         )
         response, _ = test_post_request(self, "/contact-us", data)
         self.assertIn(b"Get in touch", response.data)
         self.assertEqual(2, len(outbox))
         self.assertEqual("[SetNow Support] Re: Test01", outbox[1].subject)
         self.assertEqual("Test01", outbox[0].subject)
         self.assertEqual("*****@*****.**", outbox[1].sender)
         self.assertEqual("*****@*****.**", outbox[1].recipients[0])
         self.assertIn("This is test mail", outbox[0].html)
    def test_add_mcq_question(self):
        # test valid data
        new_mcq = dict(
            question="Rate it",
            mark=8,
            difficulty="Easy",
            cognitive_level="Application",
            imp=None,
            option1="10",
            option2="9",
            option3="8",
            option4="7",
        )
        _, mcq = test_post_request(self, "/course/1/unit/1/question/mcq/new/",
                                   new_mcq, Question, 1)
        # test repr method
        self.assertEqual(
            str(mcq),
            "Question(Rate it, 8, Easy, Application, mcq, False)",
        )
        # test invalid data
        new_mcq = dict(
            question=None,
            mark=8,
            difficulty="Easy",
            cognitive_level="Application",
            imp=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )

        self.assertRaises(
            AttributeError,
            test_post_request,
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_mcq,
            Question,
            2,
        )
    def test_mark_distribution_form(self):
        questions = [1, 2, 3]
        data = {
            "Unit:01": "30",
            "Knowledge": "10",
            "Comprehension": "10",
            "Application": "10",
            "Easy": "10",
            "Medium": "10",
            "Hard": "10",
            "Que.1.A": "5",
            "Que.2.A": "5",
            "Que.2.B": "5",
            "Que.3.A": "5",
            "Que.3.B": "5",
            "Que.3.C": "5",
        }

        token = json_url.dumps(dict(questions=questions, total_marks=30))
        response, _ = test_post_request(
            self, f"/course/1/papers/generate/form/{token}", data)
    def test_add_sub_question(self):
        # Test valid data
        new_question = dict(
            question="Is it okay?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Application",
            imp=True,
            submit="submit",
        )
        _, question = test_post_request(self,
                                        "/course/1/unit/1/question/sub/new/",
                                        new_question, Question, 1)

        # Testing if repr method is working
        self.assertEqual(
            str(question),
            "Question(Is it okay?, 8, Easy, Application, sub, True)",
        )

        # Test invalid data
        new_question = dict(
            question="Isn't it okay?",
            mark=None,
            imp=False,
            difficulty="Easy",
            cognitive_level="Application",
            submit="submit",
        )

        self.assertRaises(
            AttributeError,
            test_post_request,
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
            Question,
            2,
        )
    def test_add_mcq_question(self):
        # test valid data
        new_mcq = dict(
            question="Rate it",
            mark=8,
            difficulty=10,
            imp=None,
            option1="10",
            option2="9",
            option3="8",
            option4="7",
        )
        _, mcq = test_post_request(self, "/course/1/question/mcq/new/",
                                   new_mcq, models.MCQQuestion, 1)
        # test repr method
        self.assertEqual(str(mcq),
                         "MCQQuestion(Rate it, 8, 10, False, 10, 9, 8, 7)")
        # test invalid data
        new_mcq = dict(
            question=None,
            mark=8,
            difficulty=10,
            imp=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )

        self.assertRaises(
            AttributeError,
            test_post_request,
            self,
            "/course/1/question/mcq/new/",
            new_mcq,
            models.MCQQuestion,
            2,
        )
 def test_paper_generate_request(self):
     data = dict(questions=[1, 2, 3], total_marks=10)
     response, _ = test_post_request(self,
                                     "/course/1/papers/generate/request",
                                     data)
    def setUp(self):
        BaseUnit.setUp(self)

        new_question = dict(
            question="Is it okay?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
            models.Question,
            1,
        )

        new_question = dict(
            question="Is it question?",
            mark=7,
            difficulty="Medium",
            cognitive_level="Application",
            imp=True,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
            models.Question,
            2,
        )

        new_question = dict(
            question="What is it?",
            mark=2,
            difficulty="Hard",
            cognitive_level="Application",
            imp=None,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
            models.Question,
            3,
        )

        new_question = dict(
            question="What was that?",
            mark=6,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
            models.Question,
            4,
        )

        new_question = dict(
            question="How are you?",
            mark=2,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=True,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
            models.Question,
            5,
        )
Exemplo n.º 24
0
    def setUp(self):
        super().setUp()

        new_question = dict(
            question="Is it okay?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="Is it question?",
            mark=7,
            difficulty="Hard",
            cognitive_level="Application",
            imp=True,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="What is it?",
            mark=2,
            difficulty="Medium",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="What was that?",
            mark=6,
            difficulty="Medium",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="How are you?",
            mark=2,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=True,
            is_asked=True,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="is SEN easy?",
            mark=5,
            difficulty="Easy",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="is IT easy?",
            mark=5,
            difficulty="Medium",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="is engineering easy?",
            mark=5,
            difficulty="Hard",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="Comprehension sub hard",
            mark=5,
            difficulty="Hard",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(self, "/course/1/unit/1/question/sub/new/",
                          new_question)

        new_question = dict(
            question="this is one more really?",
            mark=5,
            difficulty="Hard",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
        )

        new_question = dict(
            question="Application med sub.",
            mark=5,
            difficulty="Medium",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
        )

        new_question = dict(
            question="Knowledge med sub.",
            mark=5,
            difficulty="Medium",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
        )

        new_question = dict(
            question="Comprehension sub easy",
            mark=5,
            difficulty="Easy",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
        )

        new_question = dict(
            question="Knowledge sub easy",
            mark=5,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/sub/new/",
            new_question,
        )
Exemplo n.º 25
0
 def setUp(self):
     super().setUp()
     new_unit = dict(chapter_no=1, name="Permutations")
     test_post_request(self, "/course/1/unit/new", new_unit, models.Unit, 1)
Exemplo n.º 26
0
 def setUp(self):
     """Set up a blank temp database before each test"""
     super().setUp()
     self.login()
     new_course = dict(course="maths")
     test_post_request(self, "/course/new", new_course, models.Course, 1)
 def test_update_account(self):
     self.login()
     update_user = dict(username="******",
                        email="*****@*****.**",
                        submit="submit")
     test_post_request(self, "/account", update_user, models.User, 1)
Exemplo n.º 28
0
    def setUp(self):
        super().setUp()

        new_question = dict(
            question="Is it okay?",
            mark=8,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Is it question?",
            mark=7,
            difficulty="Medium",
            cognitive_level="Application",
            imp=True,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="What is it?",
            mark=2,
            difficulty="Hard",
            cognitive_level="Application",
            imp=None,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="What was that?",
            mark=6,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="How are you?",
            mark=2,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=True,
            is_asked=True,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="is Project complete?",
            mark=5,
            difficulty="Easy",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )
        new_question = dict(
            question="is engineering complete?",
            mark=5,
            difficulty="Medium",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="did you get degree?",
            mark=5,
            difficulty="Hard",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Comprehension mcq hard",
            mark=5,
            difficulty="Hard",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Knowledge mcq hard",
            mark=5,
            difficulty="Hard",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Knowledge mcq med",
            mark=5,
            difficulty="Medium",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Application mcq med",
            mark=5,
            difficulty="Medium",
            cognitive_level="Application",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Comprehension mcq easy",
            mark=5,
            difficulty="Easy",
            cognitive_level="Comprehension",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )

        new_question = dict(
            question="Knowledge mcq easy",
            mark=5,
            difficulty="Easy",
            cognitive_level="Knowledge",
            imp=None,
            is_asked=False,
            submit="submit",
            option1="A",
            option2="B",
            option3="C",
            option4="D",
        )
        test_post_request(
            self,
            "/course/1/unit/1/question/mcq/new/",
            new_question,
        )