summaryrefslogtreecommitdiff
path: root/yaksh/live_server_tests
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/live_server_tests')
-rw-r--r--yaksh/live_server_tests/load_test.py34
-rw-r--r--yaksh/live_server_tests/selenium_test.py16
2 files changed, 29 insertions, 21 deletions
diff --git a/yaksh/live_server_tests/load_test.py b/yaksh/live_server_tests/load_test.py
index 17934d4..21c25ba 100644
--- a/yaksh/live_server_tests/load_test.py
+++ b/yaksh/live_server_tests/load_test.py
@@ -9,11 +9,11 @@ from selenium.webdriver.firefox.webdriver import WebDriver
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from yaksh.models import User, Profile, Question, Quiz, Course, QuestionPaper, TestCase
-from selenium_test import SeleniumTest
-
from yaksh.code_server import ServerPool
from yaksh import settings
+from .selenium_test import SeleniumTest
+
class YakshSeleniumTests(StaticLiveServerTestCase):
@classmethod
@@ -26,44 +26,46 @@ class YakshSeleniumTests(StaticLiveServerTestCase):
"yaksh.cpp_code_evaluator.CppCodeEvaluator"
settings.code_evaluators['bash']['standardtestcase'] = \
"yaksh.bash_code_evaluator.BashCodeEvaluator"
- settings.SERVER_POOL_PORT = 53578
code_server_pool = ServerPool(ports=settings.SERVER_PORTS, pool_port=settings.SERVER_POOL_PORT)
cls.code_server_pool = code_server_pool
cls.code_server_thread = t = Thread(target=code_server_pool.run)
t.start()
- demo_student = User.objects.create_user(username='demo_student',
+ cls.demo_student = User.objects.create_user(username='demo_student',
password='demo_student',
email='demo_student@test.com'
)
- demo_student_profile = Profile.objects.create(user=demo_student,
+ cls.demo_student_profile = Profile.objects.create(user=cls.demo_student,
roll_number=3, institute='IIT',
department='Chemical', position='Student'
)
- demo_mod = User.objects.create_user(username='demo_mod',
+ cls.demo_mod = User.objects.create_user(username='demo_mod',
password='demo_mod',
email='demo_mod@test.com'
)
- demo_mod_profile = Profile.objects.create(user=demo_mod,
+ cls.demo_mod_profile = Profile.objects.create(user=cls.demo_mod,
roll_number=0, institute='IIT',
department='Chemical', position='Moderator'
)
course_obj = Course()
- course_obj.create_demo(demo_mod)
- demo_course = Course.objects.get(id=1)
+ course_obj.create_demo(cls.demo_mod)
+ cls.demo_course = Course.objects.get(id=1)
- demo_course.students.add(demo_student)
+ cls.demo_course.students.add(cls.demo_student)
@classmethod
def tearDownClass(cls):
- User.objects.all().delete()
- Question.objects.all().delete()
- Quiz.objects.all().delete()
- Course.objects.all().delete()
-
- settings.SERVER_POOL_PORT = 53579
+ # User.objects.all().delete()
+ # Question.objects.all().delete()
+ # Quiz.objects.all().delete()
+ # Course.objects.all().delete()
+ cls.demo_student.delete()
+ cls.demo_student_profile.delete()
+ cls.demo_mod.delete()
+ cls.demo_mod_profile.delete()
+ cls.demo_course.delete()
cls.code_server_pool.stop()
cls.code_server_thread.join()
diff --git a/yaksh/live_server_tests/selenium_test.py b/yaksh/live_server_tests/selenium_test.py
index 7eeb22c..e6908e7 100644
--- a/yaksh/live_server_tests/selenium_test.py
+++ b/yaksh/live_server_tests/selenium_test.py
@@ -8,6 +8,9 @@ from selenium.common.exceptions import WebDriverException
import multiprocessing
import argparse
+class SeleniumTestError(Exception):
+ pass
+
class SeleniumTest():
def __init__(self, url, quiz_name):
self.driver = webdriver.Firefox()
@@ -24,9 +27,12 @@ class SeleniumTest():
self.logout()
self.driver.close()
except Exception as e:
- with open("/tmp/yaksh_load_test_log.txt", "ab") as f:
- f.write('Username: {0}\nError: {1}\n'.format(username, e))
self.driver.close()
+ msg = ("An Error occurred while running the Selenium load"
+ " test on Yaksh!"
+ "Error:\n ".format(e))
+
+ raise SeleniumTestError()
def login(self, username, password):
# get the username, password and submit form elements
@@ -44,7 +50,7 @@ class SeleniumTest():
for count in range(loop_count):
self.driver.find_element_by_link_text(question_label).click()
submit_answer_elem = self.driver.find_element_by_id("check")
- self.driver.execute_script('editor.setValue({})'.format(answer))
+ self.driver.execute_script('global_editor.editor.setValue({});'.format(answer))
submit_answer_elem.click()
def test_c_question(self, question_label):
@@ -105,9 +111,9 @@ class SeleniumTest():
)
start_exam_elem.click()
- self.test_c_question(question_label=1)
+ self.test_c_question(question_label=2)
self.test_python_question(question_label=3)
- self.test_bash_question(question_label=2)
+ self.test_bash_question(question_label=1)
def close_quiz(self):
quit_link_elem = WebDriverWait(self.driver, 5).until(