class EditExercisePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsTeacher()

    def testShouldSaveExercise(self):
        exerciseName = "Testiharjoitus"
        maxSubmissions = "5"
        maxPoints = "99"
        pointToPass = "******"
        exerciseNumber = 1

        editExercisePage = EditExercisePage(self.driver, exerciseNumber)

        editExercisePage.setExerciseName(exerciseName)
        editExercisePage.setMaxSubmissions(maxSubmissions)
        editExercisePage.setMaxPoints(maxPoints)
        editExercisePage.setPointsToPass(pointToPass)
        editExercisePage.submit()

        self.assertTrue(editExercisePage.isSuccessfulSave())

        editExercisePage = EditExercisePage(self.driver, exerciseNumber)
        self.assertEqual(editExercisePage.getExerciseName(), exerciseName)
        self.assertEqual(editExercisePage.getMaxSubmissions(), maxSubmissions)
        self.assertEqual(editExercisePage.getMaxPoints(), maxPoints)
        self.assertEqual(editExercisePage.getPointsToPass(), pointToPass)

    def tearDown(self):
        self.driver.close()
class MainNavigationTest(unittest.TestCase):
    baseUrl = BasePage.base_url + "/aplus1/basic_instance/"

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        LoginPage(self.driver).loginAsTeacher()

    def testNavigateToResults(self):
        BasePage(self.driver).clickResultsLink()
        self.assertEqual(self.baseUrl + 'user/results/', str(self.driver.current_url))

    #def testNavigateToUserPage(self):
    #    BasePage(self.driver).clickUserLink()
    #    self.assertEqual(self.baseUrl + 'user/notifications/', str(self.driver.current_url))

    def testNavigateToTeachersView(self):
        BasePage(self.driver).clickTeachersViewLink()
        self.assertEqual(self.baseUrl + 'teachers/', str(self.driver.current_url))

    # def testDownloadCalendar(self):
    #    BasePage(self.driver).clickCalendarFeedLink()
    #    self.assertEqual("Download calendar (ics)", str(self.driver.switch_to.active_element.text))

    def tearDown(self):
        self.driver.quit()
Exemple #3
0
class LoginTest(unittest.TestCase):
    logoutPageURI = '/accounts/logout'

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()

    def testLoginToTestCourseInstance(self):
        LoginPage(self.driver).loginToCourse(CourseName.APLUS)
        homePage = HomePage(self.driver, CourseName.APLUS)
        self.assertEqual(homePage.getCourseBanner(),
                         'aplus-001 My test course')
        self.assertTrue(
            LoginPage.defaultFullname in homePage.getLoggedInText())

    def testLoginToExampleHookCourseInstance(self):
        LoginPage(self.driver).loginToCourse(CourseName.HOOK)
        homePage = HomePage(self.driver, CourseName.HOOK)
        self.assertEqual(homePage.getCourseBanner(),
                         'aplus-001 My test course')
        self.assertTrue(
            LoginPage.defaultFullname in homePage.getLoggedInText())

    def testShouldThrowTimeoutExceptionOnWrongCredentials(self):
        loginPage = LoginPage(self.driver)
        try:
            loginPage.loginToCourse(CourseName.APLUS, 'fake', 'password')
        except Exception:
            return
        self.fail("There should have been an exception")

    def tearDown(self):
        self.driver.quit()
class UserPermissionsTest(unittest.TestCase):
    baseUrl = BasePage.base_url + "/aplus1/basic_instance/"

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()

    def testShouldHaveTeachersPermissions(self):
        LoginPage(self.driver).loginAsTeacher()
        self.assertEqual(self.baseUrl, str(self.driver.current_url))
        basePage = BasePage(self.driver)
        self.assertTrue(basePage.isElementPresent(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertTrue(basePage.isElementPresent(StaffPageLocators.SUBMISSION_LINKS))
        basePage.clickTeachersViewLink()
        self.assertEqual(self.baseUrl + 'teachers/', str(self.driver.current_url))

    def testShouldHaveAssistantsPermissions(self):
        LoginPage(self.driver).loginAsAssistant()
        self.assertEqual(self.baseUrl, str(self.driver.current_url))
        basePage = BasePage(self.driver)
        self.assertFalse(basePage.isElementPresent(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertTrue(basePage.isElementPresent(StaffPageLocators.SUBMISSION_LINKS))

    def testShouldHaveStudentsPermissions(self):
        LoginPage(self.driver).loginAsStudent()
        self.assertEqual(self.baseUrl, str(self.driver.current_url))
        basePage = BasePage(self.driver)
        self.assertFalse(basePage.isElementPresent(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertFalse(basePage.isElementPresent(StaffPageLocators.SUBMISSION_LINKS))

    def tearDown(self):
        self.driver.quit()
class EditModulePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsTeacher()

    def testShouldSaveModule(self):
        COURSE_NAME = "Testikurssi"
        POINTS_TO_PASS = "******"
        OPENING_TIME = "2014-01-01 00:00:00"
        CLOSING_TIME = "2016-01-01 00:00:00"
        MODULE_ID = 1

        editModulePage = EditModulePage(self.driver, MODULE_ID)

        editModulePage.setCourseName(COURSE_NAME)
        editModulePage.setPointsToPass(POINTS_TO_PASS)
        editModulePage.setOpeningTime(OPENING_TIME)
        editModulePage.setClosingTime(CLOSING_TIME)
        editModulePage.submit()

        self.assertTrue(editModulePage.isSuccessfulSave())

        editModulePage = EditModulePage(self.driver, MODULE_ID)
        self.assertEqual(editModulePage.getCourseName(), COURSE_NAME)
        self.assertEqual(editModulePage.getPointsToPass(), POINTS_TO_PASS)
        self.assertEqual(editModulePage.getOpeningTime(), OPENING_TIME)
        self.assertEqual(editModulePage.getClosingTime(), CLOSING_TIME)

    def tearDown(self):
        self.driver.quit()
class EditExercisePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsTeacher()

    def testShouldSaveExercise(self):
        exerciseName = "Testiharjoitus"
        maxSubmissions = "5"
        maxPoints = "99"
        pointToPass = "******"
        exerciseNumber = 1

        editExercisePage = EditExercisePage(self.driver, exerciseNumber)

        editExercisePage.setExerciseName(exerciseName)
        editExercisePage.setMaxSubmissions(maxSubmissions)
        editExercisePage.setMaxPoints(maxPoints)
        editExercisePage.setPointsToPass(pointToPass)
        editExercisePage.submit()

        self.assertTrue(editExercisePage.isSuccessfulSave())

        editExercisePage = EditExercisePage(self.driver, exerciseNumber)
        self.assertEqual(editExercisePage.getExerciseName(), exerciseName)
        self.assertEqual(editExercisePage.getMaxSubmissions(), maxSubmissions)
        self.assertEqual(editExercisePage.getMaxPoints(), maxPoints)
        self.assertEqual(editExercisePage.getPointsToPass(), pointToPass)

    def tearDown(self):
        self.driver.close()
class MainNavigationTest(unittest.TestCase):
    baseUrl = BasePage.base_url + "/aplus1/basic_instance/"

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver(headless=True)
        LoginPage(self.driver).loginAsTeacher()

    def testNavigateToResults(self):
        BasePage(self.driver).clickResultsLink()
        self.assertEqual(self.baseUrl + 'user/results/', str(self.driver.current_url))

    #def testNavigateToUserPage(self):
    #    BasePage(self.driver).clickUserLink()
    #    self.assertEqual(self.baseUrl + 'user/notifications/', str(self.driver.current_url))

    def testNavigateToTeachersView(self):
        BasePage(self.driver).clickTeachersViewLink()
        self.assertEqual(self.baseUrl + 'teachers/', str(self.driver.current_url))

    # def testDownloadCalendar(self):
    #    BasePage(self.driver).clickCalendarFeedLink()
    #    self.assertEqual("Download calendar (ics)", str(self.driver.switch_to.active_element.text))

    def tearDown(self):
        self.driver.quit()
Exemple #8
0
class LoginTest(unittest.TestCase):
    logoutPageURI = '/accounts/logout'

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()

    def testLoginToTestCourseInstance(self):
        LoginPage(self.driver).loginToCourse(CourseName.APLUS)
        homePage = HomePage(self.driver, CourseName.APLUS)
        self.assertEqual(homePage.getCourseBanner(), 'aplus-001 My test course')
        self.assertTrue(LoginPage.defaultUsername in homePage.getLoggedInText())

    def testLoginToExampleHookCourseInstance(self):
        LoginPage(self.driver).loginToCourse(CourseName.HOOK)
        homePage = HomePage(self.driver, CourseName.HOOK)
        self.assertEqual(homePage.getCourseBanner(), 'aplus-001 My test course')
        self.assertTrue(LoginPage.defaultUsername in homePage.getLoggedInText())

    def testShouldThrowTimeoutExceptionOnWrongCredentials(self):
        loginPage = LoginPage(self.driver)
        try:
            loginPage.loginToCourse(CourseName.APLUS, 'fake', 'password')
        except Exception:
            return
        self.fail("There should have been an exception")

    def tearDown(self):
        self.driver.close()
class UserPermissionsTest(unittest.TestCase):
    baseUrl = BasePage.base_url + "/aplus1/basic_instance/"

    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()

    def testShouldHaveTeachersPermissions(self):
        LoginPage(self.driver).loginAsTeacher()
        basePage = BasePage(self.driver)
        self.assertTrue(
            basePage.isElementVisible(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertTrue(
            basePage.isElementVisible(StaffPageLocators.SUBMISSION_LINKS))
        basePage.clickTeachersViewLink()
        self.assertEqual(self.baseUrl + 'teachers/',
                         str(self.driver.current_url))

    def testShouldHaveAssistantsPermissions(self):
        LoginPage(self.driver).loginAsAssistant()
        basePage = BasePage(self.driver)
        self.assertFalse(
            basePage.isElementVisible(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertTrue(
            basePage.isElementVisible(StaffPageLocators.SUBMISSION_LINKS))

    def testShouldHaveStudentsPermissions(self):
        LoginPage(self.driver).loginAsStudent()
        basePage = BasePage(self.driver)
        self.assertFalse(
            basePage.isElementVisible(BasePageLocators.TEACHERS_VIEW_LINK))
        self.assertFalse(
            basePage.isElementVisible(StaffPageLocators.SUBMISSION_LINKS))

    def tearDown(self):
        self.driver.close()
class EditModulePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver(headless=True)
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsTeacher()

    def testShouldSaveModule(self):
        COURSE_NAME = "Testikurssi"
        POINTS_TO_PASS = "******"
        OPENING_TIME = "2014-01-01 00:00:00"
        CLOSING_TIME = "2016-01-01 00:00:00"
        MODULE_ID = 1

        editModulePage = EditModulePage(self.driver, MODULE_ID)

        editModulePage.setCourseName(COURSE_NAME)
        editModulePage.setPointsToPass(POINTS_TO_PASS)
        #editModulePage.setOpeningTime(OPENING_TIME)
        #editModulePage.setClosingTime(CLOSING_TIME)
        editModulePage.submit()

        self.assertTrue(editModulePage.isSuccessfulSave())

        editModulePage = EditModulePage(self.driver, MODULE_ID)
        self.assertEqual(editModulePage.getCourseName(), COURSE_NAME)
        self.assertEqual(editModulePage.getPointsToPass(), POINTS_TO_PASS)
        #self.assertEqual(editModulePage.getOpeningTime(), OPENING_TIME)
        #self.assertEqual(editModulePage.getClosingTime(), CLOSING_TIME)

    def tearDown(self):
        self.driver.quit()
class HomePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsStudent()

    def testInitialScoreShouldBeZero(self):
        self.assertEqual("0 / 300", HomePage(self.driver).getMainScore())

    def tearDown(self):
        self.driver.quit()
Exemple #12
0
class HomePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsStudent()

    def testInitialScoreShouldBeZero(self):
        self.assertEqual("0 / 300", HomePage(self.driver).getMainScore())

    def tearDown(self):
        self.driver.close()
Exemple #13
0
class HomePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsStudent()

    def testInitialScoreShouldBeZero(self):
        self.assertEqual("0 / 300", HomePage(self.driver).getMainScore())

    def tearDown(self):
        self.driver.close()
class TeacherFeedbackTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver(headless=True)
        TestInitializer().recreateDatabase()

    def testStudentShouldGetFeedbackWithNotification(self) -> None:
        ASSISTANT_FEEDBACK_TEXT = "ASSISTANT_FEEDBACK"
        FEEDBACK_TEXT = "FEEDBACK"
        EXERCISE_NUMBER = "2"
        SUBMISSION_NUMBER = 1
        POINTS = "50"

        # Submit exercise
        LoginPage(self.driver).loginAsStudent()
        fileUploadGrader = FileUploadGrader(self.driver)
        fileUploadGrader.submit()
        fileUploadGrader.logout()

        # Check submissions
        LoginPage(self.driver).loginAsAssistant()
        submissionPage = SubmissionPage(self.driver,
                                        exerciseId=EXERCISE_NUMBER)
        self.assertEqual(submissionPage.getSubmissionCount(), 1)

        # Assess exercise
        inspectionPage = InspectionPage(self.driver,
                                        exerciseId=EXERCISE_NUMBER,
                                        submissionNumber=SUBMISSION_NUMBER)
        inspectionPage.clickAssessmentButton()
        inspectionPage.setAssistantFeedback(ASSISTANT_FEEDBACK_TEXT)
        inspectionPage.clickGraderFeedbackToggle()
        inspectionPage.setFeedback(FEEDBACK_TEXT)
        inspectionPage.setPoints(POINTS)
        inspectionPage.submit()
        inspectionPage.logout()

        # Check that student receives the correct assessment and a notification of it
        LoginPage(self.driver).loginAsStudent()
        homePage = HomePage(self.driver)
        self.assertTrue(homePage.hasNewNotifications())

        studentFeedbackPage = StudentFeedbackPage(
            self.driver,
            exerciseId=EXERCISE_NUMBER,
            submissionNumber=SUBMISSION_NUMBER)
        self.assertEqual(studentFeedbackPage.getAssistantFeedbackText(),
                         ASSISTANT_FEEDBACK_TEXT)
        self.assertEqual(studentFeedbackPage.getFeedbackText(), FEEDBACK_TEXT)
        self.assertEqual(FileUploadGrader(self.driver).getPoints(), POINTS)

    def tearDown(self):
        self.driver.quit()
Exemple #15
0
class SubmissionsPageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsAssistant()

    def testShouldContainAsManySubmissionsAsSubmitted(self):
        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("123test")
        firstExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(),
            1)

        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("Hello")
        firstExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(),
            2)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(-1)
        ajaxExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(),
            1)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(50)
        ajaxExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(),
            2)

        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("HelloA+")
        firstExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(),
            3)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(100)
        ajaxExercisePage.submit()
        self.assertEqual(
            SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(),
            3)

    def tearDown(self):
        self.driver.close()
Exemple #16
0
class StaffPageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        LoginPage(self.driver).loginAsAssistant()

    @unittest.skip
    def testShouldOpenAllAssistantsViewSubmissionPages(self):
        linkCount = len(AssistantsPage(self.driver).getSubmissionLinks())

        for x in range(0, linkCount):
            assistantsPage = AssistantsPage(self.driver)
            assistantsPage.clickSubmissionLink(x)
            self.assertTrue('/exercises/' + str(x + 1) + "/submissions/" in str(self.driver.current_url))

    def tearDown(self):
        self.driver.close()
Exemple #17
0
class StaffPageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        LoginPage(self.driver).loginAsAssistant()

    @unittest.skip
    def testShouldOpenAllAssistantsViewSubmissionPages(self):
        linkCount = len(AssistantsPage(self.driver).getSubmissionLinks())

        for x in range(0, linkCount):
            assistantsPage = AssistantsPage(self.driver)
            assistantsPage.clickSubmissionLink(x)
            self.assertTrue('/first-exercise-round/' + str(x + 1) +
                            "/submissions/" in str(self.driver.current_url))

    def tearDown(self):
        self.driver.close()
class TeacherFeedbackTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        TestInitializer().recreateDatabase()

    def testStudentShouldGetFeedbackWithNotification(self):
        ASSISTANT_FEEDBACK_TEXT = "ASSISTANT_FEEDBACK"
        FEEDBACK_TEXT = "FEEDBACK"
        EXERCISE_NUMBER = "2"
        SUBMISSION_NUMBER = 1
        POINTS = "50"

        # Submit exercise
        LoginPage(self.driver).loginAsStudent()
        fileUploadGrader = FileUploadGrader(self.driver)
        fileUploadGrader.submit()
        fileUploadGrader.logout()

        # Check submissions
        LoginPage(self.driver).loginAsAssistant()
        submissionPage = SubmissionPage(self.driver, exerciseId=EXERCISE_NUMBER)
        self.assertEqual(submissionPage.getSubmissionCount(), 1)

        # Assess exercise
        assessmentPage = AssessmentPage(self.driver, exerciseId=EXERCISE_NUMBER, submissionNumber=SUBMISSION_NUMBER)
        assessmentPage.setAssistantFeedback(ASSISTANT_FEEDBACK_TEXT)
        assessmentPage.setFeedback(FEEDBACK_TEXT)
        assessmentPage.setPoints(POINTS)
        assessmentPage.submit()
        assessmentPage.logout()

        # Check that student receives the correct assessment and a notification of it
        LoginPage(self.driver).loginAsStudent()
        homePage = HomePage(self.driver)
        self.assertTrue(homePage.hasNewNotifications())

        studentFeedbackPage = StudentFeedbackPage(self.driver, exerciseId=EXERCISE_NUMBER, submissionNumber=SUBMISSION_NUMBER)
        self.assertEqual(studentFeedbackPage.getAssistantFeedbackText(), ASSISTANT_FEEDBACK_TEXT)
        self.assertEqual(studentFeedbackPage.getFeedbackText(), FEEDBACK_TEXT)
        self.assertEqual(FileUploadGrader(self.driver).getPoints(), POINTS)

    def tearDown(self):
        self.driver.close()
class CourseArchivePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()

    def testApiDirectly(self):
        page = AbstractPage(self.driver)
        page.load("/api/v1/course/?format=json")
        data = page.getJSON()
        self.assertEqual(len(data["objects"]), 1)
        self.assertEqual(len(data["objects"][0]["instances"]), 2)

    @unittest.skip("unfixable jquery/ajax problem at plustest")
    def testShouldOpenCourseArchivePage(self):
        courseArchivePage = CourseArchivePage(self.driver)
        courseArchivePage.waitForAjax()
        courseArchivePage.getElement(CourseArchiveLocators.APLUS_LINK)
        courseArchivePage.getElement(CourseArchiveLocators.HOOK_LINK)

    def tearDown(self):
        self.driver.close()
Exemple #20
0
class CourseArchivePageTest(unittest.TestCase):
    def setUp(self):
        self.driver = TestInitializer().getDefaultDriver()

    def testApiDirectly(self):
        page = AbstractPage(self.driver)
        page.load("/api/v1/course/?format=json")
        data = page.getJSON()
        self.assertEqual(len(data["objects"]), 1)
        self.assertEqual(len(data["objects"][0]["instances"]), 2)

    @unittest.skip("unfixable jquery/ajax problem at plustest")
    def testShouldOpenCourseArchivePage(self):
        courseArchivePage = CourseArchivePage(self.driver)
        courseArchivePage.waitForAjax()
        courseArchivePage.getElement(CourseArchiveLocators.APLUS_LINK)
        courseArchivePage.getElement(CourseArchiveLocators.HOOK_LINK)

    def tearDown(self):
        self.driver.close()
class SubmissionsPageTest(unittest.TestCase):

    def setUp(self):
        self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
        TestInitializer().recreateDatabase()
        LoginPage(self.driver).loginAsAssistant()

    def testShouldContainAsManySubmissionsAsSubmitted(self):
        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("123test")
        firstExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(), 1)

        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("Hello")
        firstExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(), 2)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(-1)
        ajaxExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(), 1)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(50)
        ajaxExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(), 2)

        firstExercisePage = MyFirstExerciseGrader(self.driver)
        firstExercisePage.setText("HelloA+")
        firstExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="1").getSubmissionCount(), 3)

        ajaxExercisePage = MyAjaxExerciseGrader(self.driver)
        ajaxExercisePage.setText(100)
        ajaxExercisePage.submit()
        self.assertEqual(SubmissionPage(self.driver, exerciseId="3").getSubmissionCount(), 3)

    def tearDown(self):
        self.driver.close()
 def setUp(self):
     testHelper = TestInitializer()
     testHelper.recreateDatabase()
     self.driver = testHelper.getFirefoxDriverWithLoggingEnabled()
     LoginPage(self.driver).loginAsStudent()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     TestInitializer().recreateDatabase()
Exemple #24
0
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
Exemple #26
0
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
Exemple #27
0
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
     TestInitializer().recreateDatabase()
Exemple #28
0
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
     LoginPage(self.driver).loginAsAssistant()
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
     TestInitializer().recreateDatabase()
Exemple #30
0
 def setUp(self) -> None:
     self.driver = TestInitializer().getDefaultDriver(headless=True)
     TestInitializer().recreateDatabase()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     LoginPage(self.driver).loginAsTeacher()
 def setUp(self):
     testHelper = TestInitializer()
     testHelper.recreateDatabase()
     self.driver = testHelper.getDefaultDriver()
     LoginPage(self.driver).loginAsStudent()
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver(headless=True)
     TestInitializer().recreateDatabase()
     LoginPage(self.driver).loginAsTeacher()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     TestInitializer().recreateDatabase()
     LoginPage(self.driver).loginAsTeacher()
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
     LoginPage(self.driver).loginAsTeacher()
Exemple #37
0
class TeacherListTest(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = TestInitializer().getDefaultDriver(headless=True)
        TestInitializer().recreateDatabase()

    def testAnonymousCantAccess(self) -> None:
        self.assertTrue(TeacherListPage(self.driver).isElementPresent(CommonLocators.PERMISSION_DENIED_ACCESS_MODE))

    def testStudentsCantAccess(self) -> None:
        LoginPage(self.driver).loginAsStudent()
        self.assertTrue(TeacherListPage(self.driver).isElementPresent(CommonLocators.FORBIDDEN_PAGE))

    def testTeachersCantAccess(self) -> None:
        LoginPage(self.driver).loginAsTeacher()
        self.assertTrue(TeacherListPage(self.driver).isElementPresent(CommonLocators.FORBIDDEN_PAGE))

    def testSuperusersCanAccess(self) -> None:
        LoginPage(self.driver).loginAsSuperuser()
        self.assertFalse(TeacherListPage(self.driver).isElementPresent(CommonLocators.FORBIDDEN_PAGE))

    def testTableHasCorrectData(self) -> None:
        LoginPage(self.driver).loginAsSuperuser()

        list_data = [
                ['Teacher User', '', 'aplus-001 My test course: A+ Test Course Instance', '2020-09-27 09:00:00+00:00', '2023-09-27 09:00:00+00:00'],
                ['Teacher User', '', 'aplus-001 My test course: Hook Example', '2020-09-27 09:00:00+00:00', '2023-09-27 09:00:00+00:00'],
            ]
        list_data_with_assistants = [
                ['Teacher User', '', 'aplus-001 My test course: A+ Test Course Instance', '2020-09-27 09:00:00+00:00', '2023-09-27 09:00:00+00:00'],
                ['Assistant User', '', 'aplus-001 My test course: A+ Test Course Instance', '2020-09-27 09:00:00+00:00', '2023-09-27 09:00:00+00:00'],
                ['Teacher User', '', 'aplus-001 My test course: Hook Example', '2020-09-27 09:00:00+00:00', '2023-09-27 09:00:00+00:00'],
            ]

        ending_time = date.fromisoformat("2023-09-27")
        starting_time = date.fromisoformat("2020-09-27")

        early = starting_time - timedelta(days=1)
        middle_early = starting_time + timedelta(days=1)
        middle_late = ending_time - timedelta(days=1)
        late = ending_time + timedelta(days=1)

        data = TeacherListPage(self.driver, starting_time, starting_time).get_table_data()
        self.assertEqual(data, list_data)

        data = TeacherListPage(self.driver, ending_time, ending_time).get_table_data()
        self.assertEqual(data, list_data)

        data = TeacherListPage(self.driver, early, early).get_table_data()
        self.assertEqual(data, [])

        data = TeacherListPage(self.driver, late, late).get_table_data()
        self.assertEqual(data, [])

        data = TeacherListPage(self.driver, middle_late, late).get_table_data()
        self.assertEqual(data, list_data)

        data = TeacherListPage(self.driver, early, middle_early).get_table_data()
        self.assertEqual(data, list_data)

        data = TeacherListPage(self.driver, early, middle_early, True).get_table_data()
        self.assertEqual(data, list_data_with_assistants)

    def tearDown(self) -> None:
        self.driver.quit()
Exemple #38
0
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver(headless=True)
     LoginPage(self.driver).loginAsAssistant()
 def setUp(self):
     self.driver = TestInitializer().getFirefoxDriverWithLoggingEnabled()
     TestInitializer().recreateDatabase()
     LoginPage(self.driver).loginAsAssistant()
Exemple #40
0
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver(headless=True)
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     TestInitializer().recreateDatabase()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     TestInitializer().recreateDatabase()
     LoginPage(self.driver).loginAsStudent()
 def setUp(self):
     self.driver = TestInitializer().getDefaultDriver()
     LoginPage(self.driver).loginAsTeacher()
 def setUp(self):
     testHelper = TestInitializer()
     testHelper.recreateDatabase()
     self.driver = testHelper.getDefaultDriver()
     LoginPage(self.driver).loginAsStudent()
 def setUp(self):
     testInitializer = TestInitializer()
     self.driver = testInitializer.getFirefoxDriverWithLoggingEnabled()
     testInitializer.recreateDatabase()
     LoginPage(self.driver).loginAsStudent()