summaryrefslogtreecommitdiff
path: root/testapp/test_server.py
diff options
context:
space:
mode:
authorprathamesh2013-07-03 16:58:34 +0530
committerprathamesh2013-07-03 16:58:34 +0530
commit8de499263ec00be5e500693b8db7f4b5ee0d15bd (patch)
treea508cfbcd65d16ffb3801a218b6037a8b3bd555f /testapp/test_server.py
parent156bb47ecebcca190683b8e59f917a5b742d11fd (diff)
parentb522a1ba1c1edff7648c6c7d69fa2867a08b4100 (diff)
downloadonline_test-8de499263ec00be5e500693b8db7f4b5ee0d15bd.tar.gz
online_test-8de499263ec00be5e500693b8db7f4b5ee0d15bd.tar.bz2
online_test-8de499263ec00be5e500693b8db7f4b5ee0d15bd.zip
Merge branch 'fresh_java' of https://github.com/prathamesh920/online_test into deploy_server
Conflicts: testapp/templates/exam/question.html
Diffstat (limited to 'testapp/test_server.py')
-rw-r--r--testapp/test_server.py198
1 files changed, 187 insertions, 11 deletions
diff --git a/testapp/test_server.py b/testapp/test_server.py
index 0790816..2a17739 100644
--- a/testapp/test_server.py
+++ b/testapp/test_server.py
@@ -6,6 +6,7 @@ up the code server as::
"""
from exam.xmlrpc_clients import code_server
+
def check_result(result, check='correct answer'):
if check != 'correct answer':
assert result[0] == False
@@ -15,33 +16,206 @@ def check_result(result, check='correct answer'):
assert result[0], result[1]
assert check in result[1].lower(), result[1]
+
def test_python():
"""Test if server runs Python code as expected."""
src = 'while True: pass'
result = code_server.run_code(src, '', '/tmp', language="python")
check_result(result, 'more than ')
-
src = 'x = 1'
- result = code_server.run_code(src, 'assert x == 1', '/tmp',
+ result = code_server.run_code(src, 'assert x == 1', '/tmp',
language="python")
check_result(result, 'correct answer')
- result = code_server.run_code(src, 'assert x == 0', '/tmp',
+ result = code_server.run_code(src, 'assert x == 0', '/tmp',
language="python")
check_result(result, 'assertionerror')
src = 'abracadabra'
- result = code_server.run_code(src, 'assert x == 0', '/tmp',
+ result = code_server.run_code(src, 'assert x == 0', '/tmp',
language="python")
check_result(result, 'nameerror')
+
+def test_c():
+ """Test if server runs c code as expected."""
+ src = """
+ #include<stdiol.h>
+ int ad(int a, int b)
+ {return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C")
+ check_result(result, 'error')
+
+ src = """
+ int add(int a, int b)
+ {return a+b}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C")
+ check_result(result, 'compilation error')
+
+ src = """
+ int add(int a, int b)
+ {while(1>0){}
+ return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C")
+ check_result(result, 'more than')
+
+ src = """
+ int add(int a, int b)
+ {return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C")
+ check_result(result, 'correct answer')
+
+ src = """
+ #include<stdio.h>
+ int add(int a, int b)
+ {printf("All Correct");}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C")
+ check_result(result, 'incorrect')
+
+
+def test_cpp():
+ """Test if server runs c code as expected."""
+ src = """
+ int add(int a, int b)
+ {
+ return a+b
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C++")
+ check_result(result, 'error')
+
+ src = """
+ int add(int a, int b)
+ {
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C++")
+ check_result(result, 'correct answer')
+
+ src = """
+ int dd(int a, int b)
+ {
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C++")
+ check_result(result, 'error')
+
+ src = """
+ int add(int a, int b)
+ {
+ while(0==0)
+ {}
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp',
+ '/tmp', language="C++")
+ check_result(result, 'more than')
+
+
+def test_java():
+ """Test if server runs java code as expected."""
+ src = """
+ class Test
+ {
+ int square_num(int a)
+ {
+ return a*a;
+ }
+ }
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'correct answer')
+
+ src = """
+ class Test
+ {
+ int square_num(int a)
+ {
+ return b*b;
+ }
+ }
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'error')
+
+ src = """
+ class Test
+ {
+ int square_nu(int a)
+ {
+ return a*a;
+ }
+ }
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'error')
+
+ src = """
+ class Test
+ {
+ int square_num(int a)
+ {
+ while(0==0)
+ {}
+ }
+ }
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'more than')
+
+ src = """
+ class Test
+ {
+ int square_num(int a)
+ {
+ return a+b
+ }
+ }
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'error')
+
+ src = """
+ class Test
+ {
+ int square_num(int a)
+ {
+ return a+b
+
+ """
+ result = code_server.run_code(src, 'java_files/main_square.java',
+ '/tmp', language="java")
+ check_result(result, 'error')
+
+
def test_bash():
"""Test if server runs Bash code as expected."""
src = """
#!/bin/bash
[[ $# -eq 2 ]] && echo $(( $1 + $2 )) && exit $(( $1 + $2 ))
"""
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result)
@@ -49,15 +223,15 @@ def test_bash():
#!/bin/bash
[[ $# -eq 2 ]] && echo $(( $1 - $2 )) && exit $(( $1 - $2 ))
"""
- result = code_server.run_code(src,
- 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
+ result = code_server.run_code(src,
+ 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'error')
src = """\
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null ; done
"""
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'more than ')
@@ -65,15 +239,15 @@ def test_bash():
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null
'''
- result = code_server.run_code(src,
- 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
+ result = code_server.run_code(src,
+ 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'error')
src = '''# Enter your code here.
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null
'''
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'oserror')
@@ -81,3 +255,5 @@ if __name__ == '__main__':
test_python()
test_bash()
test_c()
+ test_cpp()
+ test_java()